mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Add HTMLCanvasDataSource::Empty
that represent transparent black instead of HTMLCanvasDataSource::Image(None)
(#33519)
* `HTMLCanvasDataSource::Empty` that represent transparent black instead of Image(None)
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Fix warning from 3a0d27b231
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
This commit is contained in:
parent
bab769a7cf
commit
3e29131d64
7 changed files with 41 additions and 36 deletions
|
@ -1944,20 +1944,18 @@ impl Fragment {
|
|||
let image_key = match canvas_fragment_info.source {
|
||||
CanvasFragmentSource::WebGL(image_key) => image_key,
|
||||
CanvasFragmentSource::WebGPU(image_key) => image_key,
|
||||
CanvasFragmentSource::Image(ref ipc_renderer) => match *ipc_renderer {
|
||||
Some(ref ipc_renderer) => {
|
||||
let ipc_renderer = ipc_renderer.lock().unwrap();
|
||||
let (sender, receiver) = ipc::channel().unwrap();
|
||||
ipc_renderer
|
||||
.send(CanvasMsg::FromLayout(
|
||||
FromLayoutMsg::SendData(sender),
|
||||
canvas_fragment_info.canvas_id,
|
||||
))
|
||||
.unwrap();
|
||||
receiver.recv().unwrap().image_key
|
||||
},
|
||||
None => return,
|
||||
CanvasFragmentSource::Image(ref ipc_renderer) => {
|
||||
let ipc_renderer = ipc_renderer.lock().unwrap();
|
||||
let (sender, receiver) = ipc::channel().unwrap();
|
||||
ipc_renderer
|
||||
.send(CanvasMsg::FromLayout(
|
||||
FromLayoutMsg::SendData(sender),
|
||||
canvas_fragment_info.canvas_id,
|
||||
))
|
||||
.unwrap();
|
||||
receiver.recv().unwrap().image_key
|
||||
},
|
||||
CanvasFragmentSource::Empty => return,
|
||||
};
|
||||
|
||||
let base = create_base_display_item(state);
|
||||
|
|
|
@ -353,8 +353,10 @@ impl InlineAbsoluteFragmentInfo {
|
|||
#[derive(Clone)]
|
||||
pub enum CanvasFragmentSource {
|
||||
WebGL(ImageKey),
|
||||
Image(Option<Arc<Mutex<IpcSender<CanvasMsg>>>>),
|
||||
Image(Arc<Mutex<IpcSender<CanvasMsg>>>),
|
||||
WebGPU(ImageKey),
|
||||
/// Transparent black
|
||||
Empty,
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
|
@ -369,10 +371,11 @@ impl CanvasFragmentInfo {
|
|||
pub fn new(data: HTMLCanvasData) -> CanvasFragmentInfo {
|
||||
let source = match data.source {
|
||||
HTMLCanvasDataSource::WebGL(texture_id) => CanvasFragmentSource::WebGL(texture_id),
|
||||
HTMLCanvasDataSource::Image(ipc_sender) => CanvasFragmentSource::Image(
|
||||
ipc_sender.map(|renderer| Arc::new(Mutex::new(renderer))),
|
||||
),
|
||||
HTMLCanvasDataSource::Image(ipc_sender) => {
|
||||
CanvasFragmentSource::Image(Arc::new(Mutex::new(ipc_sender)))
|
||||
},
|
||||
HTMLCanvasDataSource::WebGPU(image_key) => CanvasFragmentSource::WebGPU(image_key),
|
||||
HTMLCanvasDataSource::Empty => CanvasFragmentSource::Empty,
|
||||
};
|
||||
|
||||
CanvasFragmentInfo {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue