From 828500256c64a7cac486e891dc90946cd5d6af53 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Fri, 24 Apr 2015 14:12:57 +0200 Subject: Add draft for the EGL API --- src/api/egl/ffi.rs | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/api/egl/ffi.rs (limited to 'src/api/egl/ffi.rs') diff --git a/src/api/egl/ffi.rs b/src/api/egl/ffi.rs new file mode 100644 index 0000000..e3cf32e --- /dev/null +++ b/src/api/egl/ffi.rs @@ -0,0 +1,41 @@ +use libc; + +#[cfg(target_os = "windows")] +extern crate winapi; +#[cfg(target_os = "linux")] +use api::x11::ffi; +#[cfg(target_os = "android")] +use api::android::ffi; + +pub mod egl { + pub type khronos_utime_nanoseconds_t = super::khronos_utime_nanoseconds_t; + pub type khronos_uint64_t = super::khronos_uint64_t; + pub type khronos_ssize_t = super::khronos_ssize_t; + pub type EGLNativeDisplayType = super::EGLNativeDisplayType; + pub type EGLNativePixmapType = super::EGLNativePixmapType; + pub type EGLNativeWindowType = super::EGLNativeWindowType; + pub type EGLint = super::EGLint; + pub type NativeDisplayType = super::EGLNativeDisplayType; + pub type NativePixmapType = super::EGLNativePixmapType; + pub type NativeWindowType = super::EGLNativeWindowType; + + include!(concat!(env!("OUT_DIR"), "/egl_bindings.rs")); +} + +pub type khronos_utime_nanoseconds_t = khronos_uint64_t; +pub type khronos_uint64_t = libc::uint64_t; +pub type khronos_ssize_t = libc::c_long; +pub type EGLint = libc::int32_t; +pub type EGLNativeDisplayType = *const libc::c_void; +pub type EGLNativePixmapType = *const libc::c_void; // FIXME: egl_native_pixmap_t instead + +#[cfg(target_os = "windows")] +pub type EGLNativeWindowType = winapi::HWND; +#[cfg(target_os = "linux")] +pub type EGLNativeWindowType = ffi::Window; +#[cfg(target_os = "android")] +pub type EGLNativeWindowType = *const ffi::ANativeWindow; + +#[cfg(not(target_os = "windows"))] +#[link(name = "EGL")] +extern {} -- cgit v1.2.3