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:
Samson 2024-09-22 16:04:53 +02:00 committed by GitHub
parent bab769a7cf
commit 3e29131d64
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 41 additions and 36 deletions

View file

@ -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 {