diff options
Diffstat (limited to 'components/canvas')
-rw-r--r-- | components/canvas/webgl_mode/inprocess.rs | 3 | ||||
-rw-r--r-- | components/canvas/webgl_thread.rs | 36 |
2 files changed, 17 insertions, 22 deletions
diff --git a/components/canvas/webgl_mode/inprocess.rs b/components/canvas/webgl_mode/inprocess.rs index 749f0062aeb..aad799776db 100644 --- a/components/canvas/webgl_mode/inprocess.rs +++ b/components/canvas/webgl_mode/inprocess.rs @@ -12,8 +12,7 @@ use log::debug; use sparkle::gl::GlType; use surfman::chains::{SwapChainAPI, SwapChains, SwapChainsAPI}; use surfman::{Device, SurfaceInfo, SurfaceTexture}; -use webrender::RenderApiSender; -use webrender_api::DocumentId; +use webrender_api::{DocumentId, RenderApiSender}; use webrender_surfman::WebrenderSurfman; use webrender_traits::{ WebrenderExternalImageApi, WebrenderExternalImageRegistry, WebrenderImageSource, diff --git a/components/canvas/webgl_thread.rs b/components/canvas/webgl_thread.rs index 8e1e55f4c91..eacc94c590b 100644 --- a/components/canvas/webgl_thread.rs +++ b/components/canvas/webgl_thread.rs @@ -32,11 +32,10 @@ use surfman::{ self, Adapter, Connection, Context, ContextAttributeFlags, ContextAttributes, Device, GLVersion, SurfaceAccess, SurfaceInfo, SurfaceType, }; -use webrender::{RenderApi, RenderApiSender, Transaction}; -use webrender_api::units::DeviceIntSize; use webrender_api::{ - DirtyRect, DocumentId, ExternalImageData, ExternalImageId, ExternalImageType, ImageBufferKind, - ImageData, ImageDescriptor, ImageDescriptorFlags, ImageFormat, ImageKey, + units::DeviceIntSize, DirtyRect, DocumentId, ExternalImageData, ExternalImageId, + ExternalImageType, ImageData, ImageDescriptor, ImageDescriptorFlags, ImageFormat, ImageKey, + RenderApi, RenderApiSender, TextureTarget, Transaction, }; use webrender_traits::{WebrenderExternalImageRegistry, WebrenderImageHandlerType}; use webxr::SurfmanGL as WebXRSurfman; @@ -576,7 +575,7 @@ impl WebGLThread { let descriptor_attributes = self.device.context_descriptor_attributes(&descriptor); let gl_version = descriptor_attributes.version; let has_alpha = requested_flags.contains(ContextAttributeFlags::ALPHA); - let image_buffer_kind = current_wr_image_buffer_kind(&self.device); + let texture_target = current_wr_texture_target(&self.device); self.device.make_context_current(&ctx).unwrap(); let framebuffer = self @@ -635,7 +634,7 @@ impl WebGLThread { size.to_i32(), has_alpha, id, - image_buffer_kind, + texture_target, ); self.cached_context_info @@ -691,7 +690,7 @@ impl WebGLThread { .state .requested_flags .contains(ContextAttributeFlags::ALPHA); - let image_buffer_kind = current_wr_image_buffer_kind(&self.device); + let texture_target = current_wr_texture_target(&self.device); Self::update_wr_external_image( &mut self.webrender_api, self.webrender_doc, @@ -699,7 +698,7 @@ impl WebGLThread { has_alpha, context_id, info.image_key, - image_buffer_kind, + texture_target, ); debug_assert_eq!(data.gl.get_error(), gl::NO_ERROR); @@ -895,10 +894,10 @@ impl WebGLThread { size: Size2D<i32>, alpha: bool, context_id: WebGLContextId, - image_buffer_kind: ImageBufferKind, + target: TextureTarget, ) -> ImageKey { let descriptor = Self::image_descriptor(size, alpha); - let data = Self::external_image_data(context_id, image_buffer_kind); + let data = Self::external_image_data(context_id, target); let image_key = webrender_api.generate_image_key(); let mut txn = Transaction::new(); @@ -916,10 +915,10 @@ impl WebGLThread { alpha: bool, context_id: WebGLContextId, image_key: ImageKey, - image_buffer_kind: ImageBufferKind, + target: TextureTarget, ) { let descriptor = Self::image_descriptor(size, alpha); - let data = Self::external_image_data(context_id, image_buffer_kind); + let data = Self::external_image_data(context_id, target); let mut txn = Transaction::new(); txn.update_image(image_key, descriptor, data, &DirtyRect::All); @@ -940,14 +939,11 @@ impl WebGLThread { } /// Helper function to create a `ImageData::External` instance. - fn external_image_data( - context_id: WebGLContextId, - image_buffer_kind: ImageBufferKind, - ) -> ImageData { + fn external_image_data(context_id: WebGLContextId, target: TextureTarget) -> ImageData { let data = ExternalImageData { id: ExternalImageId(context_id.0 as u64), channel_index: 0, - image_type: ExternalImageType::TextureHandle(image_buffer_kind), + image_type: ExternalImageType::TextureHandle(target), }; ImageData::External(data) } @@ -977,10 +973,10 @@ struct WebGLContextInfo { } // TODO(pcwalton): Add `GL_TEXTURE_EXTERNAL_OES`? -fn current_wr_image_buffer_kind(device: &Device) -> ImageBufferKind { +fn current_wr_texture_target(device: &Device) -> TextureTarget { match device.surface_gl_texture_target() { - gl::TEXTURE_RECTANGLE => ImageBufferKind::TextureRect, - _ => ImageBufferKind::Texture2D, + gl::TEXTURE_RECTANGLE => TextureTarget::Rect, + _ => TextureTarget::Default, } } |