render: Bail on attempts on panicking recursive render, part 2.
This commit is contained in:
parent
8d6241c9c4
commit
bdc041677a
|
@ -1022,15 +1022,17 @@ impl<'gc> BitmapData<'gc> {
|
||||||
render_context.commands.push_blend_mode(blend_mode);
|
render_context.commands.push_blend_mode(blend_mode);
|
||||||
match &mut source {
|
match &mut source {
|
||||||
IBitmapDrawable::BitmapData(data) => {
|
IBitmapDrawable::BitmapData(data) => {
|
||||||
let mut bitmap_data = data.write(context.gc_context);
|
// if try_write fails,
|
||||||
|
// this is caused by recursive render attempt. TODO: support this.
|
||||||
bitmap_data.update_dirty_texture(&mut render_context);
|
if let Ok(mut bitmap_data) = data.try_write(context.gc_context) {
|
||||||
let bitmap_handle = bitmap_data.bitmap_handle(render_context.renderer).unwrap();
|
bitmap_data.update_dirty_texture(&mut render_context);
|
||||||
render_context.commands.render_bitmap(
|
let bitmap_handle = bitmap_data.bitmap_handle(render_context.renderer).unwrap();
|
||||||
bitmap_handle,
|
render_context.commands.render_bitmap(
|
||||||
render_context.transform_stack.transform(),
|
bitmap_handle,
|
||||||
smoothing,
|
render_context.transform_stack.transform(),
|
||||||
);
|
smoothing,
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
IBitmapDrawable::DisplayObject(object) => {
|
IBitmapDrawable::DisplayObject(object) => {
|
||||||
// Note that we do *not* use `render_base`,
|
// Note that we do *not* use `render_base`,
|
||||||
|
|
Loading…
Reference in New Issue