Try to use WebRender types more

The newer versions of WebRender move types around between `webrender` and
`webrender_api` and this will reduce the churn during the upgrade.
This commit is contained in:
Martin Robinson 2023-07-10 15:54:39 +02:00
parent 1543912589
commit 3230162fd0
No known key found for this signature in database
GPG key ID: D56AA4FA55EFE6F8
39 changed files with 330 additions and 327 deletions

View file

@ -25,6 +25,10 @@ use ipc_channel::ipc;
use script_layout_interface::HTMLCanvasDataSource;
use std::cell::Cell;
use webgpu::{wgpu::id, wgt, WebGPU, WebGPURequest, PRESENTATION_BUFFER_COUNT};
use webrender_api::{
units, ExternalImageData, ExternalImageId, ExternalImageType, ImageData, ImageDescriptor,
ImageDescriptorFlags, ImageFormat, ImageKey,
};
#[derive(Clone, Copy, Debug, Eq, Hash, MallocSizeOf, Ord, PartialEq, PartialOrd)]
pub struct WebGPUContextId(pub u64);
@ -78,7 +82,7 @@ impl GPUCanvasContext {
let image_key = if self.webrender_image.get().is_some() {
self.webrender_image.get().unwrap()
} else {
webrender_api::ImageKey::DUMMY
ImageKey::DUMMY
};
HTMLCanvasDataSource::WebGPU(image_key)
}
@ -145,13 +149,13 @@ impl GPUCanvasContextMethods for GPUCanvasContext {
);
}
let image_desc = webrender_api::ImageDescriptor {
let image_desc = ImageDescriptor {
format: match descriptor.format {
GPUTextureFormat::Rgba8unorm => webrender_api::ImageFormat::RGBA8,
GPUTextureFormat::Bgra8unorm => webrender_api::ImageFormat::BGRA8,
GPUTextureFormat::Rgba8unorm => ImageFormat::RGBA8,
GPUTextureFormat::Bgra8unorm => ImageFormat::BGRA8,
_ => panic!("SwapChain format({:?}) not supported", descriptor.format),
},
size: webrender_api::units::DeviceIntSize::new(
size: units::DeviceIntSize::new(
self.size.get().width as i32,
self.size.get().height as i32,
),
@ -160,13 +164,13 @@ impl GPUCanvasContextMethods for GPUCanvasContext {
as i32,
),
offset: 0,
flags: webrender_api::ImageDescriptorFlags::from_bits(1).unwrap(),
flags: ImageDescriptorFlags::from_bits(1).unwrap(),
};
let image_data = webrender_api::ImageData::External(webrender_api::ExternalImageData {
id: webrender_api::ExternalImageId(self.context_id.0),
let image_data = ImageData::External(ExternalImageData {
id: ExternalImageId(self.context_id.0),
channel_index: 0,
image_type: webrender_api::ExternalImageType::Buffer,
image_type: ExternalImageType::Buffer,
});
let (sender, receiver) = ipc::channel().unwrap();

View file

@ -12,6 +12,7 @@ use crate::dom::gpucanvascontext::GPUCanvasContext;
use crate::dom::gputexture::GPUTexture;
use dom_struct::dom_struct;
use webgpu::{WebGPU, WebGPURequest, WebGPUTexture};
use webrender_api::ImageKey;
#[dom_struct]
pub struct GPUSwapChain {
@ -56,7 +57,7 @@ impl GPUSwapChain {
}
impl GPUSwapChain {
pub fn destroy(&self, external_id: u64, image_key: webrender_api::ImageKey) {
pub fn destroy(&self, external_id: u64, image_key: ImageKey) {
if let Err(e) = self.channel.0.send((
None,
WebGPURequest::DestroySwapChain {

View file

@ -83,6 +83,7 @@ use std::cell::Cell;
use std::cmp;
use std::ptr::{self, NonNull};
use std::rc::Rc;
use webrender_api::ImageKey;
// From the GLES 2.0.25 spec, page 85:
//
@ -165,7 +166,7 @@ pub struct WebGLRenderingContext {
#[ignore_malloc_size_of = "Channels are hard"]
webgl_sender: WebGLMessageSender,
#[ignore_malloc_size_of = "Defined in webrender"]
webrender_image: webrender_api::ImageKey,
webrender_image: ImageKey,
webgl_version: WebGLVersion,
glsl_version: WebGLSLVersion,
#[ignore_malloc_size_of = "Defined in surfman"]