aboutsummaryrefslogtreecommitdiffstats
path: root/components/canvas
diff options
context:
space:
mode:
Diffstat (limited to 'components/canvas')
-rw-r--r--components/canvas/canvas_data.rs16
-rw-r--r--components/canvas/canvas_paint_thread.rs10
-rw-r--r--components/canvas/raqote_backend.rs18
-rw-r--r--components/canvas/webgl_limits.rs4
-rw-r--r--components/canvas/webgl_mode/inprocess.rs11
-rw-r--r--components/canvas/webgl_thread.rs91
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 {