diff --git a/components/shared/webrender/rendering_context.rs b/components/shared/webrender/rendering_context.rs index 3ea7cbe6ebc..96aa4cb32ee 100644 --- a/components/shared/webrender/rendering_context.rs +++ b/components/shared/webrender/rendering_context.rs @@ -90,6 +90,22 @@ impl RenderingContext { Ok(RenderingContext(Rc::new(data))) } + pub fn create_surface( + &self, + surface_type: SurfaceType, + ) -> Result { + let device = &mut self.0.device.borrow_mut(); + let context = &self.0.context.borrow(); + let surface_access = SurfaceAccess::GPUOnly; + device.create_surface(&context, surface_access, surface_type) + } + + pub fn destroy_surface(&self, mut surface: Surface) -> Result<(), Error> { + let device = &self.0.device.borrow(); + let context = &mut self.0.context.borrow_mut(); + device.destroy_surface(context, &mut surface) + } + pub fn create_surface_texture(&self, surface: Surface) -> Result { let device = &self.0.device.borrow(); let context = &mut self.0.context.borrow_mut();