diff --git a/components/compositing/compositor.rs b/components/compositing/compositor.rs index b2b9f60d373..3e6e3ba74f8 100644 --- a/components/compositing/compositor.rs +++ b/components/compositing/compositor.rs @@ -192,12 +192,12 @@ pub struct IOCompositor { /// Offscreen framebuffer object to render our next frame to. /// We use this and `prev_offscreen_framebuffer` for double buffering when compositing to - /// [`CompositeTarget::Fbo`]. + /// [`CompositeTarget::OffscreenFbo`]. next_offscreen_framebuffer: OnceCell, /// Offscreen framebuffer object for our most-recently-completed frame. /// We use this and `next_offscreen_framebuffer` for double buffering when compositing to - /// [`CompositeTarget::Fbo`]. + /// [`CompositeTarget::OffscreenFbo`]. prev_offscreen_framebuffer: Option, /// Whether to invalidate `prev_offscreen_framebuffer` at the end of the next frame. @@ -342,12 +342,13 @@ impl PipelineDetails { #[derive(Clone, Debug, PartialEq)] pub enum CompositeTarget { - /// Draw directly to a window. - Window, + /// Draw to a OpenGL framebuffer object that will then be used by the compositor to composite + /// to [`RenderingContext::framebuffer_object`] + ContextFbo, /// Draw to an offscreen OpenGL framebuffer object, which can be retrieved once complete at /// [`IOCompositor::offscreen_framebuffer_id`]. - Fbo, + OffscreenFbo, /// Draw to an uncompressed image in shared memory. SharedMemory, @@ -2016,7 +2017,9 @@ impl IOCompositor { ) || self.exit_after_load; let use_offscreen_framebuffer = matches!( target, - CompositeTarget::SharedMemory | CompositeTarget::PngFile(_) | CompositeTarget::Fbo + CompositeTarget::SharedMemory | + CompositeTarget::PngFile(_) | + CompositeTarget::OffscreenFbo ); if wait_for_stable_image { @@ -2089,8 +2092,8 @@ impl IOCompositor { }; let rv = match target { - CompositeTarget::Window => None, - CompositeTarget::Fbo => { + CompositeTarget::ContextFbo => None, + CompositeTarget::OffscreenFbo => { self.next_offscreen_framebuffer .get() .expect("Guaranteed by needs_fbo") @@ -2244,7 +2247,7 @@ impl IOCompositor { } /// Return the OpenGL framebuffer name of the most-recently-completed frame when compositing to - /// [`CompositeTarget::Fbo`], or None otherwise. + /// [`CompositeTarget::OffscreenFbo`], or None otherwise. pub fn offscreen_framebuffer_id(&self) -> Option { self.prev_offscreen_framebuffer .as_ref() diff --git a/components/servo/examples/winit_minimal.rs b/components/servo/examples/winit_minimal.rs index 2e702b18ee4..8a7ea1a78d5 100644 --- a/components/servo/examples/winit_minimal.rs +++ b/components/servo/examples/winit_minimal.rs @@ -100,7 +100,7 @@ impl ApplicationHandler for App { }), window_delegate.clone(), Default::default(), - compositing::CompositeTarget::Window, + compositing::CompositeTarget::ContextFbo, ); servo.setup_logging(); let webviews = vec![servo.new_webview( diff --git a/components/servo/lib.rs b/components/servo/lib.rs index 24584d563cc..94594e60945 100644 --- a/components/servo/lib.rs +++ b/components/servo/lib.rs @@ -1016,7 +1016,7 @@ impl Servo { } /// Return the OpenGL framebuffer name of the most-recently-completed frame when compositing to - /// [`CompositeTarget::Fbo`], or None otherwise. + /// [`CompositeTarget::OffscreenFbo`], or None otherwise. pub fn offscreen_framebuffer_id(&self) -> Option { self.compositor.borrow().offscreen_framebuffer_id() } diff --git a/ports/servoshell/desktop/app.rs b/ports/servoshell/desktop/app.rs index 1f3a0a4b186..c69cf30a283 100644 --- a/ports/servoshell/desktop/app.rs +++ b/ports/servoshell/desktop/app.rs @@ -209,9 +209,9 @@ impl App { let embedder = Box::new(EmbedderCallbacks::new(self.waker.clone(), xr_discovery)); let composite_target = if self.minibrowser.is_some() { - CompositeTarget::Fbo + CompositeTarget::OffscreenFbo } else { - CompositeTarget::Window + CompositeTarget::ContextFbo }; let servo = Servo::new( self.opts.clone(), diff --git a/ports/servoshell/egl/android/simpleservo.rs b/ports/servoshell/egl/android/simpleservo.rs index 03286bd4427..0c377d3c93c 100644 --- a/ports/servoshell/egl/android/simpleservo.rs +++ b/ports/servoshell/egl/android/simpleservo.rs @@ -113,7 +113,7 @@ pub fn init( embedder_callbacks, window_callbacks.clone(), None, - CompositeTarget::Window, + CompositeTarget::ContextFbo, ); SERVO.with(|s| { diff --git a/ports/servoshell/egl/ohos/simpleservo.rs b/ports/servoshell/egl/ohos/simpleservo.rs index ff0a37c6105..3869e7cfdde 100644 --- a/ports/servoshell/egl/ohos/simpleservo.rs +++ b/ports/servoshell/egl/ohos/simpleservo.rs @@ -114,7 +114,7 @@ pub fn init( embedder_callbacks, window_callbacks.clone(), None, /* user_agent */ - CompositeTarget::Window, + CompositeTarget::ContextFbo, ); let servo_glue = ServoGlue::new(