aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Cargo.toml3
-rw-r--r--examples/support/mod.rs4
-rw-r--r--src/api/caca/mod.rs2
-rw-r--r--src/api/emscripten/mod.rs39
-rw-r--r--src/api/osmesa/mod.rs2
-rw-r--r--src/lib.rs2
-rw-r--r--src/platform/emscripten/mod.rs11
-rw-r--r--src/platform/mod.rs5
8 files changed, 49 insertions, 19 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 95d135e..0c73c6a 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -19,9 +19,6 @@ shared_library = "0.1.0"
gl_generator = "0.4"
khronos_api = "1.0"
-[dev-dependencies]
-clock_ticks = "0.1.0"
-
[target.arm-linux-androideabi.dependencies.android_glue]
version = "0.1"
diff --git a/examples/support/mod.rs b/examples/support/mod.rs
index ebbe379..a51ca24 100644
--- a/examples/support/mod.rs
+++ b/examples/support/mod.rs
@@ -24,11 +24,11 @@ pub fn load(window: &glutin::Window) -> Context {
unsafe {
let vs = gl.CreateShader(gl::VERTEX_SHADER);
- gl.ShaderSource(vs, 1, [VS_SRC.as_ptr() as *const i8].as_ptr(), ptr::null());
+ gl.ShaderSource(vs, 1, [VS_SRC.as_ptr() as *const _].as_ptr(), ptr::null());
gl.CompileShader(vs);
let fs = gl.CreateShader(gl::FRAGMENT_SHADER);
- gl.ShaderSource(fs, 1, [FS_SRC.as_ptr() as *const i8].as_ptr(), ptr::null());
+ gl.ShaderSource(fs, 1, [FS_SRC.as_ptr() as *const _].as_ptr(), ptr::null());
gl.CompileShader(fs);
let program = gl.CreateProgram();
diff --git a/src/api/caca/mod.rs b/src/api/caca/mod.rs
index 687c66f..e73fa6c 100644
--- a/src/api/caca/mod.rs
+++ b/src/api/caca/mod.rs
@@ -1,4 +1,4 @@
-#![cfg(any(target_os = "linux", target_os = "freebsd"))]
+#![cfg(any(target_os = "linux", target_os = "dragonfly", target_os = "freebsd"))]
#![allow(unused_variables, dead_code)]
use libc;
diff --git a/src/api/emscripten/mod.rs b/src/api/emscripten/mod.rs
index 61d8c8c..67f57d1 100644
--- a/src/api/emscripten/mod.rs
+++ b/src/api/emscripten/mod.rs
@@ -2,11 +2,17 @@
use std::ffi::CString;
use libc;
-use {Event, BuilderAttribs, CreationError, MouseCursor};
use Api;
-use PixelFormat;
+use Event;
+use CreationError;
use ContextError;
+use CursorState;
+use GlAttributes;
use GlContext;
+use MouseCursor;
+use PixelFormat;
+use PixelFormatRequirements;
+use WindowAttributes;
use std::collections::VecDeque;
@@ -52,6 +58,7 @@ impl WindowProxy {
}
}
+#[derive(Clone)]
pub struct MonitorId;
#[inline]
@@ -73,13 +80,20 @@ impl MonitorId {
}
#[inline]
+ pub fn get_native_identifier(&self) -> ::native_monitor::NativeMonitorId {
+ ::native_monitor::NativeMonitorId::Unavailable
+ }
+
+ #[inline]
pub fn get_dimensions(&self) -> (u32, u32) {
unimplemented!()
}
}
impl Window {
- pub fn new(builder: BuilderAttribs) -> Result<Window, CreationError> {
+ pub fn new(window: &WindowAttributes, pf_reqs: &PixelFormatRequirements,
+ opengl: &GlAttributes<&Window>) -> Result<Window, CreationError>
+ {
// getting the default values of attributes
let mut attributes = unsafe {
use std::mem;
@@ -198,14 +212,23 @@ impl Window {
}
#[inline]
- pub fn set_cursor(&self, _cursor: MouseCursor) {
- unimplemented!()
+ pub fn set_cursor(&self, cursor: MouseCursor) {
+ }
+
+ #[inline]
+ pub fn set_cursor_state(&self, state: CursorState) -> Result<(), String> {
+ Ok(())
}
#[inline]
pub fn hidpi_factor(&self) -> f32 {
1.0
}
+
+ #[inline]
+ pub fn set_cursor_position(&self, x: i32, y: i32) -> Result<(), ()> {
+ Ok(())
+ }
}
impl GlContext for Window {
@@ -222,11 +245,11 @@ impl GlContext for Window {
}
fn get_proc_address(&self, addr: &str) -> *const () {
- let addr = CString::new(addr.as_bytes()).unwrap();
- let addr = addr.as_ptr();
+ let addr = CString::new(addr).unwrap();
unsafe {
- ffi::emscripten_GetProcAddress(addr) as *const _
+ // FIXME: if `as_ptr()` is used, then wrong data is passed to emscripten
+ ffi::emscripten_GetProcAddress(addr.into_raw() as *const _) as *const _
}
}
diff --git a/src/api/osmesa/mod.rs b/src/api/osmesa/mod.rs
index 02c43a1..7ef243a 100644
--- a/src/api/osmesa/mod.rs
+++ b/src/api/osmesa/mod.rs
@@ -1,4 +1,4 @@
-#![cfg(any(target_os = "linux", target_os = "freebsd", target_os = "dragonfly"))]
+#![cfg(any(target_os = "linux", target_os = "dragonfly", target_os = "freebsd"))]
extern crate osmesa_sys;
diff --git a/src/lib.rs b/src/lib.rs
index 2bd7fe3..a27aa72 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -54,7 +54,7 @@ extern crate cocoa;
extern crate core_foundation;
#[cfg(target_os = "macos")]
extern crate core_graphics;
-#[cfg(any(target_os = "linux", target_os = "freebsd", target_os = "dragonfly"))]
+#[cfg(any(target_os = "linux", target_os = "dragonfly", target_os = "freebsd"))]
extern crate x11_dl;
#[cfg(any(target_os = "linux", target_os = "freebsd", target_os = "dragonfly"))]
#[macro_use(wayland_env)]
diff --git a/src/platform/emscripten/mod.rs b/src/platform/emscripten/mod.rs
index 270cdaf..1a78dfb 100644
--- a/src/platform/emscripten/mod.rs
+++ b/src/platform/emscripten/mod.rs
@@ -1,7 +1,12 @@
#![cfg(target_os = "emscripten")]
+use Api;
use ContextError;
+use CreationError;
+use GlAttributes;
use GlContext;
+use PixelFormat;
+use PixelFormatRequirements;
pub use api::emscripten::{Window, WindowProxy, MonitorId, get_available_monitors};
pub use api::emscripten::{get_primary_monitor, WaitEventsIterator, PollEventsIterator};
@@ -11,8 +16,10 @@ pub struct HeadlessContext(Window);
impl HeadlessContext {
/// See the docs in the crate root file.
#[inline]
- pub fn new(builder: BuilderAttribs) -> Result<HeadlessContext, CreationError> {
- Window::new(builder).map(|w| HeadlessContext(w))
+ pub fn new(_: (u32, u32), _: &PixelFormatRequirements, _: &GlAttributes<&HeadlessContext>)
+ -> Result<HeadlessContext, CreationError>
+ {
+ unimplemented!()
}
}
diff --git a/src/platform/mod.rs b/src/platform/mod.rs
index 4855765..8527da2 100644
--- a/src/platform/mod.rs
+++ b/src/platform/mod.rs
@@ -15,8 +15,11 @@ mod platform;
#[cfg(target_os = "ios")]
#[path="ios/mod.rs"]
mod platform;
+#[cfg(target_os = "emscripten")]
+#[path="emscripten/mod.rs"]
+mod platform;
#[cfg(all(not(target_os = "ios"), not(target_os = "windows"), not(target_os = "linux"),
not(target_os = "macos"), not(target_os = "android"), not(target_os = "dragonfly"),
- not(target_os = "freebsd")))]
+ not(target_os = "freebsd"), not(target_os = "emscripten")))]
use this_platform_is_not_supported;