fix: bring back connection method to fix WebGL texture error (#35358)

* Bring back connection method to fix texture error

Signed-off-by: Wu Yuwei <yuweiwu@pm.me>

* Print GL info in log instead

Signed-off-by: Wu Yuwei <yuweiwu@pm.me>

---------

Signed-off-by: Wu Yuwei <yuweiwu@pm.me>
This commit is contained in:
Ngo Iok Ui (Wu Yu Wei) 2025-02-07 19:36:37 +09:00 committed by GitHub
parent 7a6953bc08
commit b5b69988cc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 15 additions and 1 deletions

View file

@ -48,7 +48,9 @@ impl WebGLComm {
let webxr_init = crate::webxr::WebXRBridgeInit::new(sender.clone());
#[cfg(feature = "webxr")]
let webxr_layer_grand_manager = webxr_init.layer_grand_manager();
let connection = surfman::Connection::new().expect("Failed to create connection");
let connection = rendering_context
.connection()
.expect("Failed to get connection");
let adapter = connection
.create_adapter()
.expect("Failed to create adapter");

View file

@ -408,6 +408,9 @@ impl IOCompositor {
version_string,
};
let gl = &compositor.webrender_gl;
info!("Running on {}", gl.get_string(gleam::gl::RENDERER));
info!("OpenGL Version {}", gl.get_string(gleam::gl::VERSION));
compositor.assert_gl_framebuffer_complete();
compositor
}

View file

@ -67,6 +67,11 @@ pub trait RenderingContext {
fn destroy_texture(&self, _surface_texture: SurfaceTexture) -> Option<Surface> {
None
}
/// The connection to the display server for WebGL. Default to `None`.
fn connection(&self) -> Option<Connection> {
None
}
}
/// A rendering context that uses the Surfman library to create and manage
@ -223,6 +228,10 @@ impl RenderingContext for SurfmanRenderingContext {
fn destroy_texture(&self, surface_texture: SurfaceTexture) -> Option<Surface> {
self.destroy_surface_texture(surface_texture).ok()
}
fn connection(&self) -> Option<Connection> {
Some(self.connection())
}
}
impl SurfmanRenderingContext {