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:
Martin Robinson 2024-05-28 14:48:55 +02:00 committed by GitHub
parent 277eb87cc0
commit 0289377091
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
14 changed files with 17 additions and 14 deletions

1
Cargo.lock generated
View file

@ -7180,6 +7180,7 @@ dependencies = [
"libc",
"log",
"serde",
"surfman",
"webrender_api",
]

View file

@ -8,7 +8,6 @@ use std::sync::{Arc, Mutex};
use canvas_traits::webgl::{webgl_channel, WebGLContextId, WebGLMsg, WebGLThreads};
use euclid::default::Size2D;
use fnv::FnvHashMap;
use gfx::rendering_context::RenderingContext;
use log::debug;
use sparkle::gl::GlType;
use surfman::chains::{SwapChainAPI, SwapChains, SwapChainsAPI};
@ -16,7 +15,8 @@ use surfman::{Device, SurfaceInfo, SurfaceTexture};
use webrender::RenderApiSender;
use webrender_api::DocumentId;
use webrender_traits::{
WebrenderExternalImageApi, WebrenderExternalImageRegistry, WebrenderImageSource,
RenderingContext, WebrenderExternalImageApi, WebrenderExternalImageRegistry,
WebrenderImageSource,
};
use webxr::SurfmanGL as WebXRSurfman;
use webxr_api::LayerGrandManager as WebXRLayerGrandManager;

View file

@ -21,7 +21,6 @@ use crossbeam_channel::Sender;
use embedder_traits::Cursor;
use euclid::{Point2D, Rect, Scale, Transform3D, Vector2D};
use fnv::{FnvHashMap, FnvHashSet};
use gfx::rendering_context::RenderingContext;
use image::{DynamicImage, ImageFormat};
use ipc_channel::ipc;
use libc::c_void;
@ -49,7 +48,8 @@ use webrender_api::{
use webrender_traits::display_list::{HitTestInfo, ScrollTree};
use webrender_traits::{
CanvasToCompositorMsg, CompositorHitTestResult, FontToCompositorMsg, ImageUpdate,
NetToCompositorMsg, ScriptToCompositorMsg, SerializedImageUpdate, UntrustedNodeAddress,
NetToCompositorMsg, RenderingContext, ScriptToCompositorMsg, SerializedImageUpdate,
UntrustedNodeAddress,
};
use crate::gl::RenderTargetInfo;

View file

@ -8,10 +8,10 @@ use std::rc::Rc;
use compositing_traits::{CompositorProxy, CompositorReceiver, ConstellationMsg};
use crossbeam_channel::Sender;
use gfx::rendering_context::RenderingContext;
use profile_traits::{mem, time};
use webrender::RenderApi;
use webrender_api::DocumentId;
use webrender_traits::RenderingContext;
pub use crate::compositor::{CompositeTarget, IOCompositor, ShutdownState};

View file

@ -10,7 +10,6 @@ use std::time::Duration;
use base::id::{PipelineId, TopLevelBrowsingContextId};
use embedder_traits::{EmbedderProxy, EventLoopWaker};
use euclid::Scale;
use gfx::rendering_context::RenderingContext;
use keyboard_types::KeyboardEvent;
use libc::c_void;
use script_traits::{
@ -22,6 +21,7 @@ use servo_url::ServoUrl;
use style_traits::DevicePixel;
use webrender_api::units::{DeviceIntPoint, DeviceIntRect, DeviceIntSize, DevicePoint, DeviceRect};
use webrender_api::ScrollLocation;
use webrender_traits::RenderingContext;
#[derive(Clone)]
pub enum MouseWindowEvent {

View file

@ -11,5 +11,4 @@ pub mod font_store;
pub mod font_template;
#[allow(unsafe_code)]
pub mod platform;
pub mod rendering_context;
pub mod text;

View file

@ -65,8 +65,6 @@ use euclid::Scale;
))]
use gaol::sandbox::{ChildSandbox, ChildSandboxMethods};
use gfx::font_cache_thread::FontCacheThread;
pub use gfx::rendering_context;
use gfx::rendering_context::RenderingContext;
pub use gleam::gl;
use ipc_channel::ipc::{self, IpcSender};
use log::{error, trace, warn, Log, Metadata, Record};
@ -94,7 +92,7 @@ use webrender_api::{
NativeFontHandle,
};
use webrender_traits::{
CanvasToCompositorMsg, FontToCompositorMsg, ImageUpdate, WebRenderFontApi,
CanvasToCompositorMsg, FontToCompositorMsg, ImageUpdate, RenderingContext, WebRenderFontApi,
WebrenderExternalImageHandlers, WebrenderExternalImageRegistry, WebrenderImageHandlerType,
};
pub use {

View file

@ -20,3 +20,5 @@ log = { workspace = true }
libc = { workspace = true }
webrender_api = { workspace = true }
serde = { workspace = true }
surfman = { workspace = true }

View file

@ -5,6 +5,7 @@
#![deny(unsafe_code)]
pub mod display_list;
pub mod rendering_context;
use std::collections::HashMap;
use std::sync::{Arc, Mutex};
@ -26,6 +27,8 @@ use webrender_api::{
ImageKey, NativeFontHandle, PipelineId as WebRenderPipelineId,
};
pub use crate::rendering_context::RenderingContext;
/// This trait is used as a bridge between the different GL clients
/// in Servo that handles WebRender ExternalImages and the WebRender
/// ExternalImageHandler API.

View file

@ -30,7 +30,6 @@ use servo::embedder_traits::{
};
use servo::euclid::{Point2D, Rect, Scale, Size2D, Vector2D};
use servo::keyboard_types::{Key, KeyState, KeyboardEvent};
use servo::rendering_context::RenderingContext;
pub use servo::script_traits::{MediaSessionActionType, MouseButton};
use servo::script_traits::{TouchEventType, TouchId, TraversalDirection};
use servo::servo_config::{opts, pref};
@ -38,6 +37,7 @@ use servo::servo_url::ServoUrl;
pub use servo::webrender_api::units::DeviceIntRect;
use servo::webrender_api::units::DevicePixel;
use servo::webrender_api::ScrollLocation;
use servo::webrender_traits::RenderingContext;
use servo::{self, gl, Servo, TopLevelBrowsingContextId};
use surfman::{Connection, SurfaceType};

View file

@ -16,13 +16,13 @@ use servo::compositing::windowing::{
};
use servo::embedder_traits::Cursor;
use servo::keyboard_types::{Key, KeyState, KeyboardEvent};
use servo::rendering_context::RenderingContext;
use servo::script_traits::{TouchEventType, WheelDelta, WheelMode};
use servo::servo_config::{opts, pref};
use servo::servo_geometry::DeviceIndependentPixel;
use servo::style_traits::DevicePixel;
use servo::webrender_api::units::{DeviceIntPoint, DeviceIntRect, DeviceIntSize};
use servo::webrender_api::ScrollLocation;
use servo::webrender_traits::RenderingContext;
use surfman::{Connection, Context, Device, SurfaceType};
#[cfg(target_os = "windows")]
use winapi;

View file

@ -14,10 +14,10 @@ use log::warn;
use servo::compositing::windowing::{
AnimationState, EmbedderCoordinates, EmbedderEvent, WindowMethods,
};
use servo::rendering_context::RenderingContext;
use servo::servo_geometry::DeviceIndependentPixel;
use servo::style_traits::DevicePixel;
use servo::webrender_api::units::{DeviceIntRect, DeviceIntSize};
use servo::webrender_traits::RenderingContext;
use surfman::{Connection, Context, Device, SurfaceType};
use crate::events_loop::WakerEvent;

View file

@ -18,11 +18,11 @@ use gleam::gl;
use glow::NativeFramebuffer;
use log::{trace, warn};
use servo::compositing::windowing::EmbedderEvent;
use servo::rendering_context::RenderingContext;
use servo::script_traits::TraversalDirection;
use servo::servo_geometry::DeviceIndependentPixel;
use servo::servo_url::ServoUrl;
use servo::style_traits::DevicePixel;
use servo::webrender_traits::RenderingContext;
use winit::event::{ElementState, MouseButton};
use crate::egui_glue::EguiGlow;