mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
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:
parent
1543912589
commit
3230162fd0
39 changed files with 330 additions and 327 deletions
|
@ -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();
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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"]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue