diff options
Diffstat (limited to 'components/canvas')
-rw-r--r-- | components/canvas/canvas_data.rs | 16 | ||||
-rw-r--r-- | components/canvas/canvas_paint_thread.rs | 10 | ||||
-rw-r--r-- | components/canvas/raqote_backend.rs | 18 | ||||
-rw-r--r-- | components/canvas/webgl_limits.rs | 4 | ||||
-rw-r--r-- | components/canvas/webgl_mode/inprocess.rs | 11 | ||||
-rw-r--r-- | components/canvas/webgl_thread.rs | 91 |
6 files changed, 61 insertions, 89 deletions
diff --git a/components/canvas/canvas_data.rs b/components/canvas/canvas_data.rs index e70602493fb..d75ef2529f0 100644 --- a/components/canvas/canvas_data.rs +++ b/components/canvas/canvas_data.rs @@ -2,8 +2,12 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -use crate::canvas_paint_thread::{AntialiasMode, ImageUpdate, WebrenderApi}; -use crate::raqote_backend::Repetition; +use std::cell::RefCell; +#[allow(unused_imports)] +use std::marker::PhantomData; +use std::mem; +use std::sync::{Arc, Mutex}; + use canvas_traits::canvas::*; use cssparser::RGBA; use euclid::default::{Point2D, Rect, Size2D, Transform2D, Vector2D}; @@ -20,17 +24,15 @@ use ipc_channel::ipc::{IpcSender, IpcSharedMemory}; use log::{debug, error, warn}; use num_traits::ToPrimitive; use servo_arc::Arc as ServoArc; -use std::cell::RefCell; -#[allow(unused_imports)] -use std::marker::PhantomData; -use std::mem; -use std::sync::{Arc, Mutex}; use style::properties::style_structs::Font as FontStyleStruct; use style::values::computed::font; use style_traits::values::ToCss; use webrender_api::units::{DeviceIntSize, RectExt as RectExt_}; use webrender_api::{ImageData, ImageDescriptor, ImageDescriptorFlags, ImageFormat, ImageKey}; +use crate::canvas_paint_thread::{AntialiasMode, ImageUpdate, WebrenderApi}; +use crate::raqote_backend::Repetition; + /// The canvas data stores a state machine for the current status of /// the path data and any relevant transformations that are /// applied to it. The Azure drawing API expects the path to be in diff --git a/components/canvas/canvas_paint_thread.rs b/components/canvas/canvas_paint_thread.rs index f2918f19c4b..7234aaed4ab 100644 --- a/components/canvas/canvas_paint_thread.rs +++ b/components/canvas/canvas_paint_thread.rs @@ -2,7 +2,10 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -use crate::canvas_data::*; +use std::borrow::ToOwned; +use std::collections::HashMap; +use std::thread; + use canvas_traits::canvas::*; use canvas_traits::ConstellationCanvasMsg; use crossbeam_channel::{select, unbounded, Sender}; @@ -11,11 +14,10 @@ use gfx::font_cache_thread::FontCacheThread; use ipc_channel::ipc::{self, IpcSender}; use ipc_channel::router::ROUTER; use log::warn; -use std::borrow::ToOwned; -use std::collections::HashMap; -use std::thread; use webrender_api::{ImageData, ImageDescriptor, ImageKey}; +use crate::canvas_data::*; + pub enum AntialiasMode { Default, None, diff --git a/components/canvas/raqote_backend.rs b/components/canvas/raqote_backend.rs index 1c81b6ea694..0cc22d410bb 100644 --- a/components/canvas/raqote_backend.rs +++ b/components/canvas/raqote_backend.rs @@ -2,13 +2,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -use crate::canvas_data; -use crate::canvas_data::{ - Backend, CanvasPaintState, Color, CompositionOp, DrawOptions, ExtendMode, Filter, - GenericDrawTarget, GenericPathBuilder, GradientStop, GradientStops, Path, SourceSurface, - StrokeOptions, SurfaceFormat, -}; -use crate::canvas_paint_thread::AntialiasMode; +use std::marker::PhantomData; + use canvas_traits::canvas::*; use cssparser::RGBA; use euclid::default::{Point2D, Rect, Size2D, Transform2D, Vector2D}; @@ -17,7 +12,14 @@ use font_kit::font::Font; use log::warn; use lyon_geom::Arc; use raqote::PathOp; -use std::marker::PhantomData; + +use crate::canvas_data; +use crate::canvas_data::{ + Backend, CanvasPaintState, Color, CompositionOp, DrawOptions, ExtendMode, Filter, + GenericDrawTarget, GenericPathBuilder, GradientStop, GradientStops, Path, SourceSurface, + StrokeOptions, SurfaceFormat, +}; +use crate::canvas_paint_thread::AntialiasMode; pub struct RaqoteBackend; diff --git a/components/canvas/webgl_limits.rs b/components/canvas/webgl_limits.rs index 803d5525259..94c52bc7934 100644 --- a/components/canvas/webgl_limits.rs +++ b/components/canvas/webgl_limits.rs @@ -4,9 +4,7 @@ use canvas_traits::webgl::{GLLimits, WebGLVersion}; use sparkle::gl; -use sparkle::gl::GLenum; -use sparkle::gl::Gl; -use sparkle::gl::GlType; +use sparkle::gl::{GLenum, Gl, GlType}; pub trait GLLimitsDetect { fn detect(gl: &Gl, webgl_version: WebGLVersion) -> Self; diff --git a/components/canvas/webgl_mode/inprocess.rs b/components/canvas/webgl_mode/inprocess.rs index 3835e414a43..749f0062aeb 100644 --- a/components/canvas/webgl_mode/inprocess.rs +++ b/components/canvas/webgl_mode/inprocess.rs @@ -2,15 +2,14 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -use crate::webgl_thread::{WebGLThread, WebGLThreadInit, WebXRBridgeInit}; -use canvas_traits::webgl::webgl_channel; -use canvas_traits::webgl::{WebGLContextId, WebGLMsg, WebGLThreads}; +use std::default::Default; +use std::sync::{Arc, Mutex}; + +use canvas_traits::webgl::{webgl_channel, WebGLContextId, WebGLMsg, WebGLThreads}; use euclid::default::Size2D; use fnv::FnvHashMap; use log::debug; use sparkle::gl::GlType; -use std::default::Default; -use std::sync::{Arc, Mutex}; use surfman::chains::{SwapChainAPI, SwapChains, SwapChainsAPI}; use surfman::{Device, SurfaceInfo, SurfaceTexture}; use webrender::RenderApiSender; @@ -22,6 +21,8 @@ use webrender_traits::{ use webxr::SurfmanGL as WebXRSurfman; use webxr_api::LayerGrandManager as WebXRLayerGrandManager; +use crate::webgl_thread::{WebGLThread, WebGLThreadInit, WebXRBridgeInit}; + pub struct WebGLComm { pub webgl_threads: WebGLThreads, pub image_handler: Box<dyn WebrenderExternalImageApi>, diff --git a/components/canvas/webgl_thread.rs b/components/canvas/webgl_thread.rs index e8636debf23..8e1e55f4c91 100644 --- a/components/canvas/webgl_thread.rs +++ b/components/canvas/webgl_thread.rs @@ -2,87 +2,54 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -use crate::webgl_limits::GLLimitsDetect; +use std::borrow::Cow; +use std::collections::HashMap; +use std::rc::Rc; +use std::sync::{Arc, Mutex}; +use std::{slice, thread}; + use bitflags::bitflags; use byteorder::{ByteOrder, NativeEndian, WriteBytesExt}; use canvas_traits::webgl; -use canvas_traits::webgl::webgl_channel; -use canvas_traits::webgl::ActiveAttribInfo; -use canvas_traits::webgl::ActiveUniformBlockInfo; -use canvas_traits::webgl::ActiveUniformInfo; -use canvas_traits::webgl::AlphaTreatment; -use canvas_traits::webgl::GLContextAttributes; -use canvas_traits::webgl::GLLimits; -use canvas_traits::webgl::GlType; -use canvas_traits::webgl::InternalFormatIntVec; -use canvas_traits::webgl::ProgramLinkInfo; -use canvas_traits::webgl::TexDataType; -use canvas_traits::webgl::TexFormat; -use canvas_traits::webgl::WebGLBufferId; -use canvas_traits::webgl::WebGLChan; -use canvas_traits::webgl::WebGLCommand; -use canvas_traits::webgl::WebGLCommandBacktrace; -use canvas_traits::webgl::WebGLContextId; -use canvas_traits::webgl::WebGLCreateContextResult; -use canvas_traits::webgl::WebGLFramebufferBindingRequest; -use canvas_traits::webgl::WebGLFramebufferId; -use canvas_traits::webgl::WebGLMsg; -use canvas_traits::webgl::WebGLMsgSender; -use canvas_traits::webgl::WebGLProgramId; -use canvas_traits::webgl::WebGLQueryId; -use canvas_traits::webgl::WebGLReceiver; -use canvas_traits::webgl::WebGLRenderbufferId; -use canvas_traits::webgl::WebGLSLVersion; -use canvas_traits::webgl::WebGLSamplerId; -use canvas_traits::webgl::WebGLSender; -use canvas_traits::webgl::WebGLShaderId; -use canvas_traits::webgl::WebGLSyncId; -use canvas_traits::webgl::WebGLTextureId; -use canvas_traits::webgl::WebGLVersion; -use canvas_traits::webgl::WebGLVertexArrayId; -use canvas_traits::webgl::WebXRCommand; -use canvas_traits::webgl::WebXRLayerManagerId; -use canvas_traits::webgl::YAxisTreatment; +use canvas_traits::webgl::{ + webgl_channel, ActiveAttribInfo, ActiveUniformBlockInfo, ActiveUniformInfo, AlphaTreatment, + GLContextAttributes, GLLimits, GlType, InternalFormatIntVec, ProgramLinkInfo, TexDataType, + TexFormat, WebGLBufferId, WebGLChan, WebGLCommand, WebGLCommandBacktrace, WebGLContextId, + WebGLCreateContextResult, WebGLFramebufferBindingRequest, WebGLFramebufferId, WebGLMsg, + WebGLMsgSender, WebGLProgramId, WebGLQueryId, WebGLReceiver, WebGLRenderbufferId, + WebGLSLVersion, WebGLSamplerId, WebGLSender, WebGLShaderId, WebGLSyncId, WebGLTextureId, + WebGLVersion, WebGLVertexArrayId, WebXRCommand, WebXRLayerManagerId, YAxisTreatment, +}; use euclid::default::Size2D; use fnv::FnvHashMap; use half::f16; use log::{debug, error, trace, warn}; use pixels::{self, PixelFormat}; use sparkle::gl; -use sparkle::gl::GLint; -use sparkle::gl::GLuint; -use sparkle::gl::Gl; -use std::borrow::Cow; -use std::collections::HashMap; -use std::rc::Rc; -use std::slice; -use std::sync::{Arc, Mutex}; -use std::thread; +use sparkle::gl::{GLint, GLuint, Gl}; use surfman::chains::{PreserveBuffer, SwapChains, SwapChainsAPI}; 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::{ - units::DeviceIntSize, DirtyRect, DocumentId, ExternalImageData, ExternalImageId, - ExternalImageType, ImageBufferKind, ImageData, ImageDescriptor, ImageDescriptorFlags, - ImageFormat, ImageKey, + DirtyRect, DocumentId, ExternalImageData, ExternalImageId, ExternalImageType, ImageBufferKind, + ImageData, ImageDescriptor, ImageDescriptorFlags, ImageFormat, ImageKey, }; use webrender_traits::{WebrenderExternalImageRegistry, WebrenderImageHandlerType}; use webxr::SurfmanGL as WebXRSurfman; -use webxr_api::ContextId as WebXRContextId; -use webxr_api::Error as WebXRError; -use webxr_api::GLContexts as WebXRContexts; -use webxr_api::GLTypes as WebXRTypes; -use webxr_api::LayerGrandManager as WebXRLayerGrandManager; -use webxr_api::LayerGrandManagerAPI as WebXRLayerGrandManagerAPI; -use webxr_api::LayerId as WebXRLayerId; -use webxr_api::LayerInit as WebXRLayerInit; -use webxr_api::LayerManager as WebXRLayerManager; -use webxr_api::LayerManagerAPI as WebXRLayerManagerAPI; -use webxr_api::LayerManagerFactory as WebXRLayerManagerFactory; -use webxr_api::SubImages as WebXRSubImages; +use webxr_api::{ + ContextId as WebXRContextId, Error as WebXRError, GLContexts as WebXRContexts, + GLTypes as WebXRTypes, LayerGrandManager as WebXRLayerGrandManager, + LayerGrandManagerAPI as WebXRLayerGrandManagerAPI, LayerId as WebXRLayerId, + LayerInit as WebXRLayerInit, LayerManager as WebXRLayerManager, + LayerManagerAPI as WebXRLayerManagerAPI, LayerManagerFactory as WebXRLayerManagerFactory, + SubImages as WebXRSubImages, +}; + +use crate::webgl_limits::GLLimitsDetect; #[cfg(feature = "xr-profile")] fn to_ms(ns: u64) -> f64 { |