backend.graphics: port no-feature code to wayland-rs 0.20

This commit is contained in:
Victor Berger 2018-04-17 19:17:11 +02:00
parent cb4b783dc2
commit f9dbabce56
2 changed files with 13 additions and 13 deletions

View File

@ -17,7 +17,7 @@ use nix::libc::c_uint;
use std::fmt;
use std::rc::{Rc, Weak};
use wayland_server::{Display, Resource};
use wayland_server::protocol::wl_buffer::WlBuffer;
use wayland_server::protocol::wl_buffer::{self, WlBuffer};
use wayland_sys::server::wl_display;
/// Error that can occur when accessing an EGL buffer
@ -25,7 +25,7 @@ pub enum BufferAccessError {
/// The corresponding Context is not alive anymore
ContextLost,
/// This buffer is not managed by the EGL buffer
NotManaged(WlBuffer),
NotManaged(Resource<WlBuffer>),
/// Failed to create EGLImages from the buffer
EGLImageCreationFailed,
/// The required EGL extension is not supported by the underlying EGL implementation
@ -175,7 +175,7 @@ pub struct EGLImages {
/// Format of these images
pub format: Format,
images: Vec<EGLImage>,
buffer: WlBuffer,
buffer: Resource<WlBuffer>,
}
impl EGLImages {
@ -225,7 +225,7 @@ impl Drop for EGLImages {
}
}
}
self.buffer.release();
self.buffer.send(wl_buffer::Event::Release);
}
}
@ -266,14 +266,14 @@ impl EGLDisplay {
/// a `BufferAccessError::NotManaged(WlBuffer)` is returned with the original buffer
/// to render it another way.
pub fn egl_buffer_contents(
&self, buffer: WlBuffer
&self, buffer: Resource<WlBuffer>
) -> ::std::result::Result<EGLImages, BufferAccessError> {
if let Some(display) = self.0.upgrade() {
let mut format: i32 = 0;
if unsafe {
ffi::egl::QueryWaylandBufferWL(
*display,
buffer.ptr() as *mut _,
buffer.c_ptr() as *mut _,
ffi::egl::EGL_TEXTURE_FORMAT,
&mut format as *mut _,
) == 0
@ -294,7 +294,7 @@ impl EGLDisplay {
if unsafe {
ffi::egl::QueryWaylandBufferWL(
*display,
buffer.ptr() as *mut _,
buffer.c_ptr() as *mut _,
ffi::egl::WIDTH as i32,
&mut width as *mut _,
) == 0
@ -306,7 +306,7 @@ impl EGLDisplay {
if unsafe {
ffi::egl::QueryWaylandBufferWL(
*display,
buffer.ptr() as *mut _,
buffer.c_ptr() as *mut _,
ffi::egl::HEIGHT as i32,
&mut height as *mut _,
) == 0
@ -318,7 +318,7 @@ impl EGLDisplay {
if unsafe {
ffi::egl::QueryWaylandBufferWL(
*display,
buffer.ptr() as *mut _,
buffer.c_ptr() as *mut _,
ffi::egl::WAYLAND_Y_INVERTED_WL,
&mut inverted as *mut _,
) != 0
@ -339,7 +339,7 @@ impl EGLDisplay {
*display,
ffi::egl::NO_CONTEXT,
ffi::egl::WAYLAND_BUFFER_WL,
buffer.ptr() as *mut _,
buffer.c_ptr() as *mut _,
out.as_ptr(),
)
};
@ -394,10 +394,10 @@ impl<B: native::Backend, N: native::NativeDisplay<B>> EGLWaylandExtensions for E
if !self.egl_to_texture_support {
bail!(ErrorKind::EglExtensionNotSupported(&["GL_OES_EGL_image"]));
}
let res = unsafe { ffi::egl::BindWaylandDisplayWL(*self.display, display.ptr() as *mut _) };
let res = unsafe { ffi::egl::BindWaylandDisplayWL(*self.display, display.c_ptr() as *mut _) };
if res == 0 {
bail!(ErrorKind::OtherEGLDisplayAlreadyBound);
}
Ok(EGLDisplay::new(self, unsafe { display.ptr() }))
Ok(EGLDisplay::new(self, display.c_ptr()))
}
}

View File

@ -15,7 +15,7 @@
//! - libinput
pub mod input;
//pub mod graphics;
pub mod graphics;
//#[cfg(feature = "backend_winit")]
//pub mod winit;