mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
canvas: Do not update ImageKey during canvas layout (#35719)
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
This commit is contained in:
parent
f31043602a
commit
6f6840d63c
17 changed files with 90 additions and 126 deletions
|
@ -12,7 +12,6 @@ use serde::{Deserialize, Serialize};
|
|||
use serde_bytes::ByteBuf;
|
||||
use style::color::AbsoluteColor;
|
||||
use style::properties::style_structs::Font as FontStyleStruct;
|
||||
use webrender_api::ImageKey;
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||
pub enum FillRule {
|
||||
|
@ -32,11 +31,6 @@ pub enum CanvasMsg {
|
|||
Close(CanvasId),
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||
pub struct CanvasImageData {
|
||||
pub image_key: ImageKey,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
pub enum Canvas2dMsg {
|
||||
Arc(Point2D<f32>, f32, f32, f32, bool),
|
||||
|
@ -84,7 +78,7 @@ pub enum Canvas2dMsg {
|
|||
|
||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||
pub enum FromLayoutMsg {
|
||||
SendData(IpcSender<CanvasImageData>),
|
||||
UpdateImage(IpcSender<()>),
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
use crossbeam_channel::Sender;
|
||||
use euclid::default::Size2D;
|
||||
use webrender_api::ImageKey;
|
||||
|
||||
use crate::canvas::CanvasId;
|
||||
|
||||
|
@ -17,7 +18,7 @@ pub mod webgl;
|
|||
|
||||
pub enum ConstellationCanvasMsg {
|
||||
Create {
|
||||
id_sender: Sender<CanvasId>,
|
||||
sender: Sender<(CanvasId, ImageKey)>,
|
||||
size: Size2D<u64>,
|
||||
},
|
||||
Exit,
|
||||
|
|
|
@ -25,6 +25,7 @@ use servo_url::{ImmutableOrigin, ServoUrl};
|
|||
use style_traits::CSSPixel;
|
||||
#[cfg(feature = "webgpu")]
|
||||
use webgpu::{WebGPU, WebGPUResponse, wgc};
|
||||
use webrender_api::ImageKey;
|
||||
|
||||
use crate::mem::MemoryReportResult;
|
||||
use crate::{
|
||||
|
@ -144,7 +145,7 @@ pub enum ScriptMsg {
|
|||
/// 2D canvases may use the GPU and we don't want to give untrusted content access to the GPU.)
|
||||
CreateCanvasPaintThread(
|
||||
UntypedSize2D<u64>,
|
||||
IpcSender<(IpcSender<CanvasMsg>, CanvasId)>,
|
||||
IpcSender<(IpcSender<CanvasMsg>, CanvasId, ImageKey)>,
|
||||
),
|
||||
/// Notifies the constellation that this frame has received focus.
|
||||
Focus,
|
||||
|
|
|
@ -120,7 +120,7 @@ pub enum LayoutElementType {
|
|||
|
||||
pub enum HTMLCanvasDataSource {
|
||||
WebGL(ImageKey),
|
||||
Image(IpcSender<CanvasMsg>),
|
||||
Image((ImageKey, CanvasId, IpcSender<CanvasMsg>)),
|
||||
WebGPU(ImageKey),
|
||||
/// transparent black
|
||||
Empty,
|
||||
|
@ -130,7 +130,6 @@ pub struct HTMLCanvasData {
|
|||
pub source: HTMLCanvasDataSource,
|
||||
pub width: u32,
|
||||
pub height: u32,
|
||||
pub canvas_id: CanvasId,
|
||||
}
|
||||
|
||||
pub struct SVGSVGData {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue