aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md28
-rw-r--r--src/win32/ffi.rs19
2 files changed, 31 insertions, 16 deletions
diff --git a/README.md b/README.md
index 6c96e54..1dd1ae5 100644
--- a/README.md
+++ b/README.md
@@ -36,3 +36,31 @@ fn main() {
}
}
```
+
+## Platform-specific notes
+
+### Android
+
+ - To compile the examples for android, initialize the submodules, go to `deps/apk-builder/apk-builder` and run `cargo build`, then go back to `gl-init` and call `ANDROID_HOME=/path/to/sdk NDK_HOME=/path/to/ndk NDK_STANDALONE=/path/to/standalone cargo test --no-run --target=arm-linux-androideabi`
+ - Events are not implemented
+
+### Emscripten
+
+ - Work will start when Emscripten gets updated to LLVM 3.5 (which should happen soon)
+
+### OS/X
+
+ - This library compiles for OS/X but calling any function will fail
+ - Some low-level issues related to Objective C bindings make the implementation difficult to write
+ - Looking for contributors
+
+### Win32
+
+ - Pixel formats are not implemented
+ - If you don't have MinGW installed, you will need to provide `libgdi32.a` and `libopengl32.a` ; you can put them in `C:\Users\you\.rust`
+
+### X11
+
+ - Some input events are not implemented
+ - Pixel formats not implemented
+ - The implementation probably needs a cleanup
diff --git a/src/win32/ffi.rs b/src/win32/ffi.rs
index 6eb6563..d86dfa2 100644
--- a/src/win32/ffi.rs
+++ b/src/win32/ffi.rs
@@ -1,7 +1,6 @@
#![allow(dead_code)]
-#![allow(non_snake_case_functions)]
+#![allow(non_snake_case)]
#![allow(non_camel_case_types)]
-#![allow(uppercase_variables)]
use libc;
@@ -33,7 +32,7 @@ pub type HMENU = HANDLE;
pub type HMODULE = HINSTANCE;
pub type HWND = HANDLE;
pub type LONG = libc::c_long;
-pub type LONG_PTR = int;
+pub type LONG_PTR = libc::intptr_t;
pub type LPARAM = LONG_PTR;
pub type LPCSTR = *const libc::c_char;
pub type LPCWSTR = *const WCHAR;
@@ -44,7 +43,7 @@ pub type LPWSTR = *mut WCHAR;
pub type LRESULT = LONG_PTR;
pub type PVOID = *const libc::c_void;
pub type UINT = libc::c_uint;
-pub type UINT_PTR = int;
+pub type UINT_PTR = libc::intptr_t;
pub type WCHAR = libc::wchar_t;
pub type WORD = libc::c_ushort;
pub type WPARAM = UINT_PTR;
@@ -630,20 +629,8 @@ pub struct DISPLAY_DEVICEW {
pub type LPMSG = *mut MSG;
-#[link(name = "advapi32")]
-#[link(name = "comctl32")]
-#[link(name = "comdlg32")]
#[link(name = "gdi32")]
-#[link(name = "kernel32")]
-#[link(name = "odbc32")]
-#[link(name = "odbccp32")]
-#[link(name = "ole32")]
-#[link(name = "oleaut32")]
#[link(name = "Opengl32")]
-#[link(name = "shell32")]
-#[link(name = "user32")]
-#[link(name = "uuid")]
-#[link(name = "winspool")]
extern "system" {
// http://msdn.microsoft.com/en-us/library/windows/desktop/ms632667(v=vs.85).aspx
pub fn AdjustWindowRectEx(lpRect: *mut RECT, dwStyle: DWORD, bMenu: BOOL,