mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Move RenderingContext
to webrender_traits
(#32386)
The `gfx_traits` crate is gradually become just about text and fonts and this is one of the few things there that is standing in the way of this. Eventually `webrender_traits` will be the general cross-process compositor API, so this sort of makes sense as well.
This commit is contained in:
parent
277eb87cc0
commit
0289377091
14 changed files with 17 additions and 14 deletions
1
Cargo.lock
generated
1
Cargo.lock
generated
|
@ -7180,6 +7180,7 @@ dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
"log",
|
"log",
|
||||||
"serde",
|
"serde",
|
||||||
|
"surfman",
|
||||||
"webrender_api",
|
"webrender_api",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,6 @@ use std::sync::{Arc, Mutex};
|
||||||
use canvas_traits::webgl::{webgl_channel, WebGLContextId, WebGLMsg, WebGLThreads};
|
use canvas_traits::webgl::{webgl_channel, WebGLContextId, WebGLMsg, WebGLThreads};
|
||||||
use euclid::default::Size2D;
|
use euclid::default::Size2D;
|
||||||
use fnv::FnvHashMap;
|
use fnv::FnvHashMap;
|
||||||
use gfx::rendering_context::RenderingContext;
|
|
||||||
use log::debug;
|
use log::debug;
|
||||||
use sparkle::gl::GlType;
|
use sparkle::gl::GlType;
|
||||||
use surfman::chains::{SwapChainAPI, SwapChains, SwapChainsAPI};
|
use surfman::chains::{SwapChainAPI, SwapChains, SwapChainsAPI};
|
||||||
|
@ -16,7 +15,8 @@ use surfman::{Device, SurfaceInfo, SurfaceTexture};
|
||||||
use webrender::RenderApiSender;
|
use webrender::RenderApiSender;
|
||||||
use webrender_api::DocumentId;
|
use webrender_api::DocumentId;
|
||||||
use webrender_traits::{
|
use webrender_traits::{
|
||||||
WebrenderExternalImageApi, WebrenderExternalImageRegistry, WebrenderImageSource,
|
RenderingContext, WebrenderExternalImageApi, WebrenderExternalImageRegistry,
|
||||||
|
WebrenderImageSource,
|
||||||
};
|
};
|
||||||
use webxr::SurfmanGL as WebXRSurfman;
|
use webxr::SurfmanGL as WebXRSurfman;
|
||||||
use webxr_api::LayerGrandManager as WebXRLayerGrandManager;
|
use webxr_api::LayerGrandManager as WebXRLayerGrandManager;
|
||||||
|
|
|
@ -21,7 +21,6 @@ use crossbeam_channel::Sender;
|
||||||
use embedder_traits::Cursor;
|
use embedder_traits::Cursor;
|
||||||
use euclid::{Point2D, Rect, Scale, Transform3D, Vector2D};
|
use euclid::{Point2D, Rect, Scale, Transform3D, Vector2D};
|
||||||
use fnv::{FnvHashMap, FnvHashSet};
|
use fnv::{FnvHashMap, FnvHashSet};
|
||||||
use gfx::rendering_context::RenderingContext;
|
|
||||||
use image::{DynamicImage, ImageFormat};
|
use image::{DynamicImage, ImageFormat};
|
||||||
use ipc_channel::ipc;
|
use ipc_channel::ipc;
|
||||||
use libc::c_void;
|
use libc::c_void;
|
||||||
|
@ -49,7 +48,8 @@ use webrender_api::{
|
||||||
use webrender_traits::display_list::{HitTestInfo, ScrollTree};
|
use webrender_traits::display_list::{HitTestInfo, ScrollTree};
|
||||||
use webrender_traits::{
|
use webrender_traits::{
|
||||||
CanvasToCompositorMsg, CompositorHitTestResult, FontToCompositorMsg, ImageUpdate,
|
CanvasToCompositorMsg, CompositorHitTestResult, FontToCompositorMsg, ImageUpdate,
|
||||||
NetToCompositorMsg, ScriptToCompositorMsg, SerializedImageUpdate, UntrustedNodeAddress,
|
NetToCompositorMsg, RenderingContext, ScriptToCompositorMsg, SerializedImageUpdate,
|
||||||
|
UntrustedNodeAddress,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::gl::RenderTargetInfo;
|
use crate::gl::RenderTargetInfo;
|
||||||
|
|
|
@ -8,10 +8,10 @@ use std::rc::Rc;
|
||||||
|
|
||||||
use compositing_traits::{CompositorProxy, CompositorReceiver, ConstellationMsg};
|
use compositing_traits::{CompositorProxy, CompositorReceiver, ConstellationMsg};
|
||||||
use crossbeam_channel::Sender;
|
use crossbeam_channel::Sender;
|
||||||
use gfx::rendering_context::RenderingContext;
|
|
||||||
use profile_traits::{mem, time};
|
use profile_traits::{mem, time};
|
||||||
use webrender::RenderApi;
|
use webrender::RenderApi;
|
||||||
use webrender_api::DocumentId;
|
use webrender_api::DocumentId;
|
||||||
|
use webrender_traits::RenderingContext;
|
||||||
|
|
||||||
pub use crate::compositor::{CompositeTarget, IOCompositor, ShutdownState};
|
pub use crate::compositor::{CompositeTarget, IOCompositor, ShutdownState};
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,6 @@ use std::time::Duration;
|
||||||
use base::id::{PipelineId, TopLevelBrowsingContextId};
|
use base::id::{PipelineId, TopLevelBrowsingContextId};
|
||||||
use embedder_traits::{EmbedderProxy, EventLoopWaker};
|
use embedder_traits::{EmbedderProxy, EventLoopWaker};
|
||||||
use euclid::Scale;
|
use euclid::Scale;
|
||||||
use gfx::rendering_context::RenderingContext;
|
|
||||||
use keyboard_types::KeyboardEvent;
|
use keyboard_types::KeyboardEvent;
|
||||||
use libc::c_void;
|
use libc::c_void;
|
||||||
use script_traits::{
|
use script_traits::{
|
||||||
|
@ -22,6 +21,7 @@ use servo_url::ServoUrl;
|
||||||
use style_traits::DevicePixel;
|
use style_traits::DevicePixel;
|
||||||
use webrender_api::units::{DeviceIntPoint, DeviceIntRect, DeviceIntSize, DevicePoint, DeviceRect};
|
use webrender_api::units::{DeviceIntPoint, DeviceIntRect, DeviceIntSize, DevicePoint, DeviceRect};
|
||||||
use webrender_api::ScrollLocation;
|
use webrender_api::ScrollLocation;
|
||||||
|
use webrender_traits::RenderingContext;
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub enum MouseWindowEvent {
|
pub enum MouseWindowEvent {
|
||||||
|
|
|
@ -11,5 +11,4 @@ pub mod font_store;
|
||||||
pub mod font_template;
|
pub mod font_template;
|
||||||
#[allow(unsafe_code)]
|
#[allow(unsafe_code)]
|
||||||
pub mod platform;
|
pub mod platform;
|
||||||
pub mod rendering_context;
|
|
||||||
pub mod text;
|
pub mod text;
|
||||||
|
|
|
@ -65,8 +65,6 @@ use euclid::Scale;
|
||||||
))]
|
))]
|
||||||
use gaol::sandbox::{ChildSandbox, ChildSandboxMethods};
|
use gaol::sandbox::{ChildSandbox, ChildSandboxMethods};
|
||||||
use gfx::font_cache_thread::FontCacheThread;
|
use gfx::font_cache_thread::FontCacheThread;
|
||||||
pub use gfx::rendering_context;
|
|
||||||
use gfx::rendering_context::RenderingContext;
|
|
||||||
pub use gleam::gl;
|
pub use gleam::gl;
|
||||||
use ipc_channel::ipc::{self, IpcSender};
|
use ipc_channel::ipc::{self, IpcSender};
|
||||||
use log::{error, trace, warn, Log, Metadata, Record};
|
use log::{error, trace, warn, Log, Metadata, Record};
|
||||||
|
@ -94,7 +92,7 @@ use webrender_api::{
|
||||||
NativeFontHandle,
|
NativeFontHandle,
|
||||||
};
|
};
|
||||||
use webrender_traits::{
|
use webrender_traits::{
|
||||||
CanvasToCompositorMsg, FontToCompositorMsg, ImageUpdate, WebRenderFontApi,
|
CanvasToCompositorMsg, FontToCompositorMsg, ImageUpdate, RenderingContext, WebRenderFontApi,
|
||||||
WebrenderExternalImageHandlers, WebrenderExternalImageRegistry, WebrenderImageHandlerType,
|
WebrenderExternalImageHandlers, WebrenderExternalImageRegistry, WebrenderImageHandlerType,
|
||||||
};
|
};
|
||||||
pub use {
|
pub use {
|
||||||
|
|
|
@ -20,3 +20,5 @@ log = { workspace = true }
|
||||||
libc = { workspace = true }
|
libc = { workspace = true }
|
||||||
webrender_api = { workspace = true }
|
webrender_api = { workspace = true }
|
||||||
serde = { workspace = true }
|
serde = { workspace = true }
|
||||||
|
surfman = { workspace = true }
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#![deny(unsafe_code)]
|
#![deny(unsafe_code)]
|
||||||
|
|
||||||
pub mod display_list;
|
pub mod display_list;
|
||||||
|
pub mod rendering_context;
|
||||||
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::sync::{Arc, Mutex};
|
use std::sync::{Arc, Mutex};
|
||||||
|
@ -26,6 +27,8 @@ use webrender_api::{
|
||||||
ImageKey, NativeFontHandle, PipelineId as WebRenderPipelineId,
|
ImageKey, NativeFontHandle, PipelineId as WebRenderPipelineId,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pub use crate::rendering_context::RenderingContext;
|
||||||
|
|
||||||
/// This trait is used as a bridge between the different GL clients
|
/// This trait is used as a bridge between the different GL clients
|
||||||
/// in Servo that handles WebRender ExternalImages and the WebRender
|
/// in Servo that handles WebRender ExternalImages and the WebRender
|
||||||
/// ExternalImageHandler API.
|
/// ExternalImageHandler API.
|
||||||
|
|
|
@ -30,7 +30,6 @@ use servo::embedder_traits::{
|
||||||
};
|
};
|
||||||
use servo::euclid::{Point2D, Rect, Scale, Size2D, Vector2D};
|
use servo::euclid::{Point2D, Rect, Scale, Size2D, Vector2D};
|
||||||
use servo::keyboard_types::{Key, KeyState, KeyboardEvent};
|
use servo::keyboard_types::{Key, KeyState, KeyboardEvent};
|
||||||
use servo::rendering_context::RenderingContext;
|
|
||||||
pub use servo::script_traits::{MediaSessionActionType, MouseButton};
|
pub use servo::script_traits::{MediaSessionActionType, MouseButton};
|
||||||
use servo::script_traits::{TouchEventType, TouchId, TraversalDirection};
|
use servo::script_traits::{TouchEventType, TouchId, TraversalDirection};
|
||||||
use servo::servo_config::{opts, pref};
|
use servo::servo_config::{opts, pref};
|
||||||
|
@ -38,6 +37,7 @@ use servo::servo_url::ServoUrl;
|
||||||
pub use servo::webrender_api::units::DeviceIntRect;
|
pub use servo::webrender_api::units::DeviceIntRect;
|
||||||
use servo::webrender_api::units::DevicePixel;
|
use servo::webrender_api::units::DevicePixel;
|
||||||
use servo::webrender_api::ScrollLocation;
|
use servo::webrender_api::ScrollLocation;
|
||||||
|
use servo::webrender_traits::RenderingContext;
|
||||||
use servo::{self, gl, Servo, TopLevelBrowsingContextId};
|
use servo::{self, gl, Servo, TopLevelBrowsingContextId};
|
||||||
use surfman::{Connection, SurfaceType};
|
use surfman::{Connection, SurfaceType};
|
||||||
|
|
||||||
|
|
|
@ -16,13 +16,13 @@ use servo::compositing::windowing::{
|
||||||
};
|
};
|
||||||
use servo::embedder_traits::Cursor;
|
use servo::embedder_traits::Cursor;
|
||||||
use servo::keyboard_types::{Key, KeyState, KeyboardEvent};
|
use servo::keyboard_types::{Key, KeyState, KeyboardEvent};
|
||||||
use servo::rendering_context::RenderingContext;
|
|
||||||
use servo::script_traits::{TouchEventType, WheelDelta, WheelMode};
|
use servo::script_traits::{TouchEventType, WheelDelta, WheelMode};
|
||||||
use servo::servo_config::{opts, pref};
|
use servo::servo_config::{opts, pref};
|
||||||
use servo::servo_geometry::DeviceIndependentPixel;
|
use servo::servo_geometry::DeviceIndependentPixel;
|
||||||
use servo::style_traits::DevicePixel;
|
use servo::style_traits::DevicePixel;
|
||||||
use servo::webrender_api::units::{DeviceIntPoint, DeviceIntRect, DeviceIntSize};
|
use servo::webrender_api::units::{DeviceIntPoint, DeviceIntRect, DeviceIntSize};
|
||||||
use servo::webrender_api::ScrollLocation;
|
use servo::webrender_api::ScrollLocation;
|
||||||
|
use servo::webrender_traits::RenderingContext;
|
||||||
use surfman::{Connection, Context, Device, SurfaceType};
|
use surfman::{Connection, Context, Device, SurfaceType};
|
||||||
#[cfg(target_os = "windows")]
|
#[cfg(target_os = "windows")]
|
||||||
use winapi;
|
use winapi;
|
||||||
|
|
|
@ -14,10 +14,10 @@ use log::warn;
|
||||||
use servo::compositing::windowing::{
|
use servo::compositing::windowing::{
|
||||||
AnimationState, EmbedderCoordinates, EmbedderEvent, WindowMethods,
|
AnimationState, EmbedderCoordinates, EmbedderEvent, WindowMethods,
|
||||||
};
|
};
|
||||||
use servo::rendering_context::RenderingContext;
|
|
||||||
use servo::servo_geometry::DeviceIndependentPixel;
|
use servo::servo_geometry::DeviceIndependentPixel;
|
||||||
use servo::style_traits::DevicePixel;
|
use servo::style_traits::DevicePixel;
|
||||||
use servo::webrender_api::units::{DeviceIntRect, DeviceIntSize};
|
use servo::webrender_api::units::{DeviceIntRect, DeviceIntSize};
|
||||||
|
use servo::webrender_traits::RenderingContext;
|
||||||
use surfman::{Connection, Context, Device, SurfaceType};
|
use surfman::{Connection, Context, Device, SurfaceType};
|
||||||
|
|
||||||
use crate::events_loop::WakerEvent;
|
use crate::events_loop::WakerEvent;
|
||||||
|
|
|
@ -18,11 +18,11 @@ use gleam::gl;
|
||||||
use glow::NativeFramebuffer;
|
use glow::NativeFramebuffer;
|
||||||
use log::{trace, warn};
|
use log::{trace, warn};
|
||||||
use servo::compositing::windowing::EmbedderEvent;
|
use servo::compositing::windowing::EmbedderEvent;
|
||||||
use servo::rendering_context::RenderingContext;
|
|
||||||
use servo::script_traits::TraversalDirection;
|
use servo::script_traits::TraversalDirection;
|
||||||
use servo::servo_geometry::DeviceIndependentPixel;
|
use servo::servo_geometry::DeviceIndependentPixel;
|
||||||
use servo::servo_url::ServoUrl;
|
use servo::servo_url::ServoUrl;
|
||||||
use servo::style_traits::DevicePixel;
|
use servo::style_traits::DevicePixel;
|
||||||
|
use servo::webrender_traits::RenderingContext;
|
||||||
use winit::event::{ElementState, MouseButton};
|
use winit::event::{ElementState, MouseButton};
|
||||||
|
|
||||||
use crate::egui_glue::EguiGlow;
|
use crate::egui_glue::EguiGlow;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue