diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/egl/ffi.rs | 150 | ||||
-rw-r--r-- | src/egl/mod.rs | 150 | ||||
-rw-r--r-- | src/lib.rs | 3 |
3 files changed, 0 insertions, 303 deletions
diff --git a/src/egl/ffi.rs b/src/egl/ffi.rs deleted file mode 100644 index 4b62e22..0000000 --- a/src/egl/ffi.rs +++ /dev/null @@ -1,150 +0,0 @@ -#![allow(dead_code)] -#![allow(non_snake_case_functions)] -#![allow(non_camel_case_types)] - -use libc; - -pub type EGLBoolean = libc::c_int; -pub type EGLint = i32; -pub type EGLDisplay = *const libc::c_void; -pub type EGLConfig = *const libc::c_void; -pub type EGLSurface = *const libc::c_void; -pub type EGLContext = *const libc::c_void; - -pub static EGL_DEFAULT_DISPLAY: EGLint = 0; -/*pub static EGL_NO_CONTEXT: EGLContext = { use std::ptr; ptr::null() }; -pub static EGL_NO_DISPLAY: EGLDisplay = { use std::ptr; ptr::null() }; -pub static EGL_NO_SURFACE: EGLSurface = { use std::ptr; ptr::null() };*/ - -pub static EGL_VERSION_1_0: EGLint = 1; -pub static EGL_VERSION_1_1: EGLint = 1; - -pub static EGL_FALSE: EGLint = 0; -pub static EGL_TRUE: EGLint = 1; - -pub static EGL_SUCCESS: EGLint = 0x3000; -pub static EGL_NOT_INITIALIZED: EGLint = 0x3001; -pub static EGL_BAD_ACCESS: EGLint = 0x3002; -pub static EGL_BAD_ALLOC: EGLint = 0x3003; -pub static EGL_BAD_ATTRIBUTE: EGLint = 0x3004; -pub static EGL_BAD_CONFIG: EGLint = 0x3005; -pub static EGL_BAD_CONTEXT: EGLint = 0x3006; -pub static EGL_BAD_CURRENT_SURFACE: EGLint = 0x3007; -pub static EGL_BAD_DISPLAY: EGLint = 0x3008; -pub static EGL_BAD_MATCH: EGLint = 0x3009; -pub static EGL_BAD_NATIVE_PIXMAP: EGLint = 0x300A; -pub static EGL_BAD_NATIVE_WINDOW: EGLint = 0x300B; -pub static EGL_BAD_PARAMETER: EGLint = 0x300C; -pub static EGL_BAD_SURFACE: EGLint = 0x300D; -pub static EGL_CONTEXT_LOST: EGLint = 0x300E; - -pub static EGL_BUFFER_SIZE: EGLint = 0x3020; -pub static EGL_ALPHA_SIZE: EGLint = 0x3021; -pub static EGL_BLUE_SIZE: EGLint = 0x3022; -pub static EGL_GREEN_SIZE: EGLint = 0x3023; -pub static EGL_RED_SIZE: EGLint = 0x3024; -pub static EGL_DEPTH_SIZE: EGLint = 0x3025; -pub static EGL_STENCIL_SIZE: EGLint = 0x3026; -pub static EGL_CONFIG_CAVEAT: EGLint = 0x3027; -pub static EGL_CONFIG_ID: EGLint = 0x3028; -pub static EGL_LEVEL: EGLint = 0x3029; -pub static EGL_MAX_PBUFFER_HEIGHT: EGLint = 0x302A; -pub static EGL_MAX_PBUFFER_PIXELS: EGLint = 0x302B; -pub static EGL_MAX_PBUFFER_WIDTH: EGLint = 0x302C; -pub static EGL_NATIVE_RENDERABLE: EGLint = 0x302D; -pub static EGL_NATIVE_VISUAL_ID: EGLint = 0x302E; -pub static EGL_NATIVE_VISUAL_TYPE: EGLint = 0x302F; -/*pub static EGL_PRESERVED_RESOURCES: EGLint = 0x3030;*/ -pub static EGL_SAMPLES: EGLint = 0x3031; -pub static EGL_SAMPLE_BUFFERS: EGLint = 0x3032; -pub static EGL_SURFACE_TYPE: EGLint = 0x3033; -pub static EGL_TRANSPARENT_TYPE: EGLint = 0x3034; -pub static EGL_TRANSPARENT_BLUE_VALUE: EGLint = 0x3035; -pub static EGL_TRANSPARENT_GREEN_VALUE: EGLint = 0x3036; -pub static EGL_TRANSPARENT_RED_VALUE: EGLint = 0x3037; -pub static EGL_NONE: EGLint = 0x3038 /* Also a config value */; -pub static EGL_BIND_TO_TEXTURE_RGB: EGLint = 0x3039; -pub static EGL_BIND_TO_TEXTURE_RGBA: EGLint = 0x303A; -pub static EGL_MIN_SWAP_INTERVAL: EGLint = 0x303B; -pub static EGL_MAX_SWAP_INTERVAL: EGLint = 0x303C; - - -pub static EGL_DONT_CARE: EGLint = -1; -pub static EGL_SLOW_CONFIG: EGLint = 0x3050 /* EGL_CONFIG_CAVEAT value */; -pub static EGL_NON_CONFORMANT_CONFIG: EGLint = 0x3051 /* " */; -pub static EGL_TRANSPARENT_RGB: EGLint = 0x3052 /* EGL_TRANSPARENT_TYPE value */; -pub static EGL_NO_TEXTURE: EGLint = 0x305C /* EGL_TEXTURE_FORMAT/TARGET value */; -pub static EGL_TEXTURE_RGB: EGLint = 0x305D /* EGL_TEXTURE_FORMAT value */; -pub static EGL_TEXTURE_RGBA: EGLint = 0x305E /* " */; -pub static EGL_TEXTURE_2D: EGLint = 0x305F /* EGL_TEXTURE_TARGET value */; - -pub static EGL_PBUFFER_BIT: EGLint = 0x01 /* EGL_SURFACE_TYPE mask bit */; -pub static EGL_PIXMAP_BIT: EGLint = 0x02 /* " */; -pub static EGL_WINDOW_BIT: EGLint = 0x04 /* " */; - -pub static EGL_VENDOR: EGLint = 0x3053 /* eglQueryString target */; -pub static EGL_VERSION: EGLint = 0x3054 /* " */; -pub static EGL_EXTENSIONS: EGLint = 0x3055 /* " */; - -pub static EGL_HEIGHT: EGLint = 0x3056; -pub static EGL_WIDTH: EGLint = 0x3057; -pub static EGL_LARGEST_PBUFFER: EGLint = 0x3058; -pub static EGL_TEXTURE_FORMAT: EGLint = 0x3080 /* For pbuffers bound as textures */; -pub static EGL_TEXTURE_TARGET: EGLint = 0x3081 /* " */; -pub static EGL_MIPMAP_TEXTURE: EGLint = 0x3082 /* " */; -pub static EGL_MIPMAP_LEVEL: EGLint = 0x3083 /* " */; - -pub static EGL_BACK_BUFFER: EGLint = 0x3084; - -pub static EGL_DRAW: EGLint = 0x3059; -pub static EGL_READ: EGLint = 0x305A; - -pub static EGL_CORE_NATIVE_ENGINE: EGLint = 0x305B; - -extern { - pub fn eglGetError() -> EGLint; - - pub fn eglGetDisplay(display: *const ()/*NativeDisplayType*/) -> EGLDisplay; - pub fn eglInitialize(dpy: EGLDisplay, major: *mut EGLint, minor: *mut EGLint) -> EGLBoolean; - pub fn eglTerminate(dpy: EGLDisplay) -> EGLBoolean; - pub fn eglQueryString(dpy: EGLDisplay, name: EGLint) -> *const libc::c_char; - pub fn eglGetProcAddress(procname: *const libc::c_char) -> *const (); - - pub fn eglGetConfigs(dpy: EGLDisplay, configs: *mut EGLConfig, config_size: EGLint, - num_config: *mut EGLint) -> EGLBoolean; - pub fn eglChooseConfig(dpy: EGLDisplay, attrib_list: *const EGLint, configs: *mut EGLConfig, - config_size: EGLint, num_config: *mut EGLint) -> EGLBoolean; - pub fn eglGetConfigAttrib(dpy: EGLDisplay, config: EGLConfig, attribute: EGLint, - value: *mut EGLint) -> EGLBoolean; - - //pub fn eglCreateWindowSurface(dpy: EGLDisplay, EGLConfig config, window: NativeWindowType, attrib_list: *const EGLint) -> EGLSurface; - //pub fn eglCreatePixmapSurface(dpy: EGLDisplay, EGLConfig config, pixmap: NativePixmapType, attrib_list: *const EGLint) -> EGLSurface; - pub fn eglCreatePbufferSurface(dpy: EGLDisplay, config: EGLConfig, - attrib_list: *const EGLint) -> EGLSurface; - pub fn eglDestroySurface(dpy: EGLDisplay, surface: EGLSurface) -> EGLBoolean; - pub fn eglQuerySurface(dpy: EGLDisplay, surface: EGLSurface, attribute: EGLint, - value: *mut EGLint) -> EGLBoolean; - - pub fn eglSurfaceAttrib(dpy: EGLDisplay, surface: EGLSurface, attribute: EGLint, - value: EGLint) -> EGLBoolean; - pub fn eglBindTexImage(dpy: EGLDisplay, surface: EGLSurface, buffer: EGLint) -> EGLBoolean; - pub fn eglReleaseTexImage(dpy: EGLDisplay, surface: EGLSurface, buffer: EGLint) -> EGLBoolean; - - pub fn eglSwapInterval(dpy: EGLDisplay, interval: EGLint) -> EGLBoolean; - - pub fn eglCreateContext(dpy: EGLDisplay, config: EGLConfig, share_list: EGLContext, - attrib_list: *const EGLint) -> EGLContext; - pub fn eglDestroyContext(dpy: EGLDisplay, ctx: EGLContext) -> EGLBoolean; - pub fn eglMakeCurrent(dpy: EGLDisplay, draw: EGLSurface, read: EGLSurface, - ctx: EGLContext) -> EGLBoolean; - pub fn eglGetCurrentContext() -> EGLContext; - pub fn eglGetCurrentSurface(readdraw: EGLint) -> EGLSurface; - pub fn eglGetCurrentDisplay() -> EGLDisplay; - pub fn eglQueryContext(dpy: EGLDisplay, ctx: EGLContext, attribute: EGLint, - value: *mut EGLint) -> EGLBoolean; - - pub fn eglWaitGL() -> EGLBoolean; - pub fn eglWaitNative(engine: EGLint) -> EGLBoolean; - pub fn eglSwapBuffers(dpy: EGLDisplay, draw: EGLSurface) -> EGLBoolean; - //pub fn eglCopyBuffers(dpy: EGLDisplay, surface: EGLSurface, target: NativePixmapType) -> EGLBoolean; -} diff --git a/src/egl/mod.rs b/src/egl/mod.rs deleted file mode 100644 index 22ede27..0000000 --- a/src/egl/mod.rs +++ /dev/null @@ -1,150 +0,0 @@ -use {Event, Hints, MonitorID}; - -mod ffi; - -pub struct Window { - display: ffi::EGLDisplay, - context: ffi::EGLContext, - //surface: ffi::EGLSurface, -} - -impl Window { - pub fn new(_dimensions: Option<(uint, uint)>, _title: &str, - _hints: &Hints, _monitor: Option<MonitorID>) - -> Result<Window, String> - { - use std::{mem, ptr}; - - let display = unsafe { - let display = ffi::eglGetDisplay(mem::transmute(ffi::EGL_DEFAULT_DISPLAY)); - if display.is_null() { - return Err("No EGL display connection available".to_string()); - } - display - }; - - let (_major, _minor) = unsafe { - let mut major: ffi::EGLint = mem::uninitialized(); - let mut minor: ffi::EGLint = mem::uninitialized(); - - if ffi::eglInitialize(display, &mut major, &mut minor) != ffi::EGL_TRUE { - return Err(format!("eglInitialize failed")) - } - - (major, minor) - }; - - let config = unsafe { - let attribute_list = [ - ffi::EGL_RED_SIZE, 1, - ffi::EGL_GREEN_SIZE, 1, - ffi::EGL_BLUE_SIZE, 1, - ffi::EGL_NONE - ]; - - let mut num_config: ffi::EGLint = mem::uninitialized(); - let mut config: ffi::EGLConfig = mem::uninitialized(); - if ffi::eglChooseConfig(display, attribute_list.as_ptr(), &mut config, 1, - &mut num_config) != ffi::EGL_TRUE - { - return Err(format!("eglChooseConfig failed")) - } - - if num_config <= 0 { - return Err(format!("eglChooseConfig returned no available config")) - } - - config - }; - - let context = unsafe { - let context = ffi::eglCreateContext(display, config, ptr::null(), ptr::null()); - if context.is_null() { - return Err(format!("eglCreateContext failed")) - } - context - }; - - /*let surface = unsafe { - let surface = ffi::eglCreateWindowSurface(display, config, native_window, ptr::null()); - if surface.is_null() { - return Err(format!("eglCreateWindowSurface failed")) - } - surface - };*/ - - Ok(Window { - display: display, - context: context, - //surface: surface, - }) - } - - pub fn is_closed(&self) -> bool { - false - } - - pub fn set_title(&self, _: &str) { - } - - pub fn get_position(&self) -> Option<(int, int)> { - None - } - - pub fn set_position(&self, _x: uint, _y: uint) { - } - - pub fn get_inner_size(&self) -> Option<(uint, uint)> { - unimplemented!() - } - - pub fn get_outer_size(&self) -> Option<(uint, uint)> { - unimplemented!() - } - - pub fn set_inner_size(&self, _x: uint, _y: uint) { - } - - pub fn poll_events(&self) -> Vec<Event> { - Vec::new() - } - - pub fn wait_events(&self) -> Vec<Event> { - Vec::new() - } - - pub fn make_current(&self) { - unimplemented!() - /*unsafe { - ffi::eglMakeCurrent(self.display, self.surface, self.surface, self.context); - }*/ - } - - pub fn get_proc_address(&self, addr: &str) -> *const () { - use std::c_str::ToCStr; - - unsafe { - addr.with_c_str(|s| { - ffi::eglGetProcAddress(s) as *const () - }) - } - } - - pub fn swap_buffers(&self) { - unimplemented!() - /*unsafe { - ffi::eglSwapBuffers(self.display, self.surface); - }*/ - } -} - -#[unsafe_destructor] -impl Drop for Window { - fn drop(&mut self) { - unsafe { - //ffi::eglDestroySurface(self.display, self.surface); - ffi::eglDestroyContext(self.display, self.context); - ffi::eglTerminate(self.display); - } - } -} @@ -43,9 +43,6 @@ mod osx; #[cfg(target_os = "android")] mod android; -#[allow(dead_code)] -//mod egl; - mod events; #[cfg(not(target_os = "windows"), not(target_os = "linux"), not(target_os = "macos"), not(target_os = "android"))] |