From 5693fbcce3ca04aa7a26920add40ea770419f3ea Mon Sep 17 00:00:00 2001 From: Glenn Watson Date: Fri, 24 Oct 2014 15:20:25 +1000 Subject: [PATCH 1/2] Add accessor for underlying display handle on Linux. Although unimplemented on other platforms, this applies to at least android as well. --- src/android/mod.rs | 4 ++++ src/lib.rs | 8 ++++++++ src/osx/mod.rs | 4 ++++ src/win32/mod.rs | 4 ++++ src/x11/window/mod.rs | 4 ++++ 5 files changed, 24 insertions(+) diff --git a/src/android/mod.rs b/src/android/mod.rs index d900abe2..ef2e5e01 100644 --- a/src/android/mod.rs +++ b/src/android/mod.rs @@ -186,6 +186,10 @@ impl Window { ffi::egl::SwapBuffers(self.display, self.surface); } } + + pub fn platform_display(&self) -> *mut libc::c_void { + unimplemented!() + } } #[unsafe_destructor] diff --git a/src/lib.rs b/src/lib.rs index 041ebeb4..33c66db3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -341,6 +341,14 @@ impl Window { pub fn swap_buffers(&self) { self.window.swap_buffers() } + + /// Gets the native platform specific display for this window. + /// This is typically only required when integrating with + /// other libraries that need this information. + #[inline] + pub fn platform_display(&self) -> *mut libc::c_void { + self.window.platform_display() + } } /// Represents a headless OpenGL context. diff --git a/src/osx/mod.rs b/src/osx/mod.rs index dfd2eb85..2ad1ba39 100644 --- a/src/osx/mod.rs +++ b/src/osx/mod.rs @@ -337,4 +337,8 @@ impl Window { pub fn swap_buffers(&self) { unsafe { self.context.flushBuffer(); } } + + pub fn platform_display(&self) -> *mut libc::c_void { + unimplemented!() + } } diff --git a/src/win32/mod.rs b/src/win32/mod.rs index c3da891e..5ce9677e 100644 --- a/src/win32/mod.rs +++ b/src/win32/mod.rs @@ -233,6 +233,10 @@ impl Window { ffi::SwapBuffers(self.hdc); } } + + pub fn platform_display(&self) -> *mut libc::c_void { + unimplemented!() + } } #[unsafe_destructor] diff --git a/src/x11/window/mod.rs b/src/x11/window/mod.rs index cb73958c..3d69a3e6 100644 --- a/src/x11/window/mod.rs +++ b/src/x11/window/mod.rs @@ -469,6 +469,10 @@ impl Window { pub fn swap_buffers(&self) { unsafe { ffi::glx::SwapBuffers(self.display, self.window) } } + + pub fn platform_display(&self) -> *mut libc::c_void { + self.display as *mut libc::c_void + } } impl Drop for Window { From 21e3ff99fa5628011fe226dd13a87e09f0f33330 Mon Sep 17 00:00:00 2001 From: Glenn Watson Date: Fri, 24 Oct 2014 18:12:03 +1000 Subject: [PATCH 2/2] Make platform data function as unsafe. --- src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 33c66db3..868d4c0f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -346,7 +346,7 @@ impl Window { /// This is typically only required when integrating with /// other libraries that need this information. #[inline] - pub fn platform_display(&self) -> *mut libc::c_void { + pub unsafe fn platform_display(&self) -> *mut libc::c_void { self.window.platform_display() } }