diff --git a/Cargo.lock b/Cargo.lock index 5b7540b4ccb..37cd396840c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -640,8 +640,6 @@ dependencies = [ "style", "style_traits", "surfman", - "surfman-chains", - "surfman-chains-api", "time 0.1.45", "webrender", "webrender_api", @@ -5346,8 +5344,6 @@ dependencies = [ "servo-media", "sparkle", "surfman", - "surfman-chains", - "surfman-chains-api", "webxr", ] @@ -6034,9 +6030,9 @@ dependencies = [ [[package]] name = "surfman" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23cf77d20c00c8355323883b3ab476057430bd4c752c6b5cff4fabc9aa5786e9" +checksum = "ca39befaf946247c5d3323465a9ec86c4a05523bb87a0d3eb07e71c15181a338" dependencies = [ "bitflags 1.3.2", "cfg_aliases", @@ -6045,6 +6041,7 @@ dependencies = [ "core-foundation 0.9.3", "core-graphics", "euclid", + "fnv", "gl_generator 0.14.0", "io-surface", "lazy_static", @@ -6055,6 +6052,7 @@ dependencies = [ "objc", "raw-window-handle 0.5.0", "servo-display-link", + "sparkle", "wayland-sys 0.30.1", "winapi", "winit", @@ -6062,26 +6060,6 @@ dependencies = [ "x11", ] -[[package]] -name = "surfman-chains" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "896f2c9668d2b6b1cc6634bcba84b6e80147c2c9243dfde6dedf782756f9a19c" -dependencies = [ - "euclid", - "fnv", - "log", - "sparkle", - "surfman", - "surfman-chains-api", -] - -[[package]] -name = "surfman-chains-api" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1005da1169286262ef5d9d130bc120a447a99bdd6bb29a06a79ac4cd149a39dc" - [[package]] name = "svg_fmt" version = "0.4.0" @@ -7063,7 +7041,6 @@ version = "0.0.1" dependencies = [ "euclid", "surfman", - "surfman-chains", ] [[package]] @@ -7077,7 +7054,7 @@ dependencies = [ [[package]] name = "webxr" version = "0.0.1" -source = "git+https://github.com/servo/webxr#798bf4da505a8d82e9f0bebfaf651f2133d89e3f" +source = "git+https://github.com/servo/webxr#d817d07133dac7eac0eb5f6c5b9dddc1477b535a" dependencies = [ "android_injected_glue", "bindgen", @@ -7089,7 +7066,6 @@ dependencies = [ "serde", "sparkle", "surfman", - "surfman-chains", "time 0.1.45", "webxr-api", ] @@ -7097,7 +7073,7 @@ dependencies = [ [[package]] name = "webxr-api" version = "0.0.1" -source = "git+https://github.com/servo/webxr#798bf4da505a8d82e9f0bebfaf651f2133d89e3f" +source = "git+https://github.com/servo/webxr#d817d07133dac7eac0eb5f6c5b9dddc1477b535a" dependencies = [ "euclid", "ipc-channel", diff --git a/Cargo.toml b/Cargo.toml index ef6983cdb9d..45a472b3cc1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,9 +71,8 @@ smallvec = "1.9" sparkle = "0.1.25" string_cache = "0.8" string_cache_codegen = "0.5" -surfman = "0.7" -surfman-chains = "0.8" -surfman-chains-api = "0.2" +# NOTE: the sm-angle feature only enables angle on windows, not other platforms! +surfman = { version = "0.8", features = ["chains", "sm-angle", "sm-angle-default"] } thin-slice = "0.1.0" time = "0.1.41" tokio = "1" @@ -114,7 +113,6 @@ mio = { git = "https://github.com/servo/mio.git", branch = "servo-mio-0.6.22" } # fork that bumps crates since the original repo is archived. immeta = { git = "https://github.com/fabricedesre/immeta.git" } - # This is required because we want all dependencies that use WebRender to # use our vendored version. [patch."https://github.com/servo/webrender"] diff --git a/components/canvas/Cargo.toml b/components/canvas/Cargo.toml index f7ff8629da4..0b3413f984f 100644 --- a/components/canvas/Cargo.toml +++ b/components/canvas/Cargo.toml @@ -39,10 +39,7 @@ servo_config = { path = "../config" } sparkle = { workspace = true } style = { path = "../style" } style_traits = { path = "../style_traits" } -# NOTE: the sm-angle feature only enables angle on windows, not other platforms! -surfman = { workspace = true, features = ["sm-angle","sm-angle-default"] } -surfman-chains = { workspace = true } -surfman-chains-api = { workspace = true } +surfman = { workspace = true } time = { workspace = true, optional = true } webrender = { workspace = true } webrender_api = { workspace = true } diff --git a/components/canvas/webgl_mode/inprocess.rs b/components/canvas/webgl_mode/inprocess.rs index 4b7fa73b79c..985ca90763a 100644 --- a/components/canvas/webgl_mode/inprocess.rs +++ b/components/canvas/webgl_mode/inprocess.rs @@ -10,12 +10,8 @@ use fnv::FnvHashMap; use sparkle::gl::GlType; use std::default::Default; use std::sync::{Arc, Mutex}; -use surfman::Device; -use surfman::SurfaceInfo; -use surfman::SurfaceTexture; -use surfman_chains::SwapChains; -use surfman_chains_api::SwapChainAPI; -use surfman_chains_api::SwapChainsAPI; +use surfman::chains::{SwapChainAPI, SwapChains, SwapChainsAPI}; +use surfman::{Device, SurfaceInfo, SurfaceTexture}; use webrender_api::{DocumentId, RenderApiSender}; use webrender_surfman::WebrenderSurfman; use webrender_traits::{ diff --git a/components/canvas/webgl_thread.rs b/components/canvas/webgl_thread.rs index d979ef3301b..eec824f3cf2 100644 --- a/components/canvas/webgl_thread.rs +++ b/components/canvas/webgl_thread.rs @@ -56,19 +56,11 @@ use std::rc::Rc; use std::slice; use std::sync::{Arc, Mutex}; use std::thread; -use surfman; -use surfman::Adapter; -use surfman::Connection; -use surfman::Context; -use surfman::ContextAttributeFlags; -use surfman::ContextAttributes; -use surfman::Device; -use surfman::GLVersion; -use surfman::SurfaceAccess; -use surfman::SurfaceInfo; -use surfman::SurfaceType; -use surfman_chains::SwapChains; -use surfman_chains_api::SwapChainsAPI; +use surfman::chains::{PreserveBuffer, SwapChains, SwapChainsAPI}; +use surfman::{ + self, Adapter, Connection, Context, ContextAttributeFlags, ContextAttributes, Device, + GLVersion, SurfaceAccess, SurfaceInfo, SurfaceType, +}; use webrender_api::{ units::DeviceIntSize, DirtyRect, DocumentId, ExternalImageData, ExternalImageId, ExternalImageType, ImageData, ImageDescriptor, ImageDescriptorFlags, ImageFormat, ImageKey, @@ -829,9 +821,9 @@ impl WebGLThread { &mut self.device, &mut data.ctx, if data.attributes.preserve_drawing_buffer { - surfman_chains::PreserveBuffer::Yes(&*data.gl) + PreserveBuffer::Yes(&*data.gl) } else { - surfman_chains::PreserveBuffer::No + PreserveBuffer::No }, ) .unwrap(); diff --git a/components/webrender_surfman/Cargo.toml b/components/webrender_surfman/Cargo.toml index f196ec1f43b..13469c9d40d 100644 --- a/components/webrender_surfman/Cargo.toml +++ b/components/webrender_surfman/Cargo.toml @@ -13,5 +13,4 @@ path = "lib.rs" [dependencies] euclid = { workspace = true } surfman = { workspace = true } -surfman-chains = { workspace = true } diff --git a/components/webrender_surfman/lib.rs b/components/webrender_surfman/lib.rs index 8942cf42b0d..004bf9e048c 100644 --- a/components/webrender_surfman/lib.rs +++ b/components/webrender_surfman/lib.rs @@ -9,24 +9,12 @@ use euclid::default::Size2D; use std::cell::RefCell; use std::ffi::c_void; use std::rc::Rc; -use surfman::Adapter; -use surfman::Connection; -use surfman::Context; -use surfman::ContextAttributeFlags; -use surfman::ContextAttributes; -use surfman::Device; -use surfman::Error; -use surfman::GLApi; -use surfman::GLVersion; -use surfman::NativeContext; -use surfman::NativeDevice; -use surfman::NativeWidget; -use surfman::Surface; -use surfman::SurfaceAccess; -use surfman::SurfaceInfo; -use surfman::SurfaceTexture; -use surfman::SurfaceType; -use surfman_chains::SwapChain; +use surfman::chains::{PreserveBuffer, SwapChain}; +use surfman::{ + Adapter, Connection, Context, ContextAttributeFlags, ContextAttributes, Device, Error, GLApi, + GLVersion, NativeContext, NativeDevice, NativeWidget, Surface, SurfaceAccess, SurfaceInfo, + SurfaceTexture, SurfaceType, +}; /// A bridge between webrender and surfman // TODO: move this into a different crate so that script doesn't depend on surfman @@ -150,7 +138,7 @@ impl WebrenderSurfman { let ref mut device = self.0.device.borrow_mut(); let ref mut context = self.0.context.borrow_mut(); if let Some(ref swap_chain) = self.0.swap_chain { - return swap_chain.swap_buffers(device, context, surfman_chains::PreserveBuffer::No); + return swap_chain.swap_buffers(device, context, PreserveBuffer::No); } let mut surface = device.unbind_surface_from_context(context)?.unwrap(); device.present_surface(context, &mut surface)?; diff --git a/ports/gstplugin/Cargo.toml b/ports/gstplugin/Cargo.toml index 1d1ed7768e3..a8db373fa1b 100644 --- a/ports/gstplugin/Cargo.toml +++ b/ports/gstplugin/Cargo.toml @@ -30,8 +30,6 @@ log = { workspace = true } servo-media = { git = "https://github.com/servo/media" } sparkle = { workspace = true } surfman = { workspace = true } -surfman-chains = { workspace = true } -surfman-chains-api = { workspace = true } webxr = { git = "https://github.com/servo/webxr", features = ["glwindow"] } [build-dependencies] diff --git a/ports/gstplugin/servowebsrc.rs b/ports/gstplugin/servowebsrc.rs index ef050d4e2cb..41442fff53b 100644 --- a/ports/gstplugin/servowebsrc.rs +++ b/ports/gstplugin/servowebsrc.rs @@ -88,13 +88,12 @@ use sparkle::gl; use sparkle::gl::types::GLuint; use sparkle::gl::Gl; +use surfman::chains::{SwapChain, SwapChainAPI}; use surfman::Connection; use surfman::Context; use surfman::Device; use surfman::SurfaceAccess; use surfman::SurfaceType; -use surfman_chains::SwapChain; -use surfman_chains_api::SwapChainAPI; use std::cell::RefCell; use std::collections::HashMap;