diff --git a/src/backend/egl/display.rs b/src/backend/egl/display.rs index 43fae36..5af7b61 100644 --- a/src/backend/egl/display.rs +++ b/src/backend/egl/display.rs @@ -180,6 +180,7 @@ impl> EGLDisplay { ) -> Result<(PixelFormat, ffi::egl::types::EGLConfig), Error> { let descriptor = { let mut out: Vec = Vec::with_capacity(37); + let surface_type = self.native.borrow().surface_type(); if self.egl_version >= (1, 2) { trace!(self.logger, "Setting COLOR_BUFFER_TYPE to RGB_BUFFER"); @@ -187,12 +188,12 @@ impl> EGLDisplay { out.push(ffi::egl::RGB_BUFFER as c_int); } - trace!(self.logger, "Setting SURFACE_TYPE to WINDOW"); + trace!(self.logger, "Setting SURFACE_TYPE to {}", surface_type); out.push(ffi::egl::SURFACE_TYPE as c_int); // TODO: Some versions of Mesa report a BAD_ATTRIBUTE error // if we ask for PBUFFER_BIT as well as WINDOW_BIT - out.push((ffi::egl::WINDOW_BIT) as c_int); + out.push(surface_type); match attributes.version { Some((3, _)) => { diff --git a/src/backend/egl/native.rs b/src/backend/egl/native.rs index 6497331..28dcd70 100644 --- a/src/backend/egl/native.rs +++ b/src/backend/egl/native.rs @@ -133,6 +133,10 @@ pub unsafe trait NativeDisplay { fn attributes(&self) -> Vec { vec![ffi::egl::NONE as ffi::EGLint] } + /// Type of surfaces created + fn surface_type(&self) -> ffi::EGLint { + ffi::egl::WINDOW_BIT as ffi::EGLint + } /// Create a surface fn create_surface(&mut self, args: Self::Arguments) -> Result; }