diff options
author | Pierre Krieger <pierre.krieger1708@gmail.com> | 2015-04-24 14:12:57 +0200 |
---|---|---|
committer | Pierre Krieger <pierre.krieger1708@gmail.com> | 2015-04-24 14:12:57 +0200 |
commit | 828500256c64a7cac486e891dc90946cd5d6af53 (patch) | |
tree | d99a2a0fd8e810f90a9378f976dd36d33f87ff29 /src/api/egl/ffi.rs | |
parent | fa4aa36c9ee56dbcc35be3fe868e77c3561e2433 (diff) | |
download | glutin-828500256c64a7cac486e891dc90946cd5d6af53.tar.gz glutin-828500256c64a7cac486e891dc90946cd5d6af53.zip |
Add draft for the EGL API
Diffstat (limited to 'src/api/egl/ffi.rs')
-rw-r--r-- | src/api/egl/ffi.rs | 41 |
1 files changed, 41 insertions, 0 deletions
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 {} |