diff options
-rw-r--r-- | README.md | 28 | ||||
-rw-r--r-- | src/win32/ffi.rs | 19 |
2 files changed, 31 insertions, 16 deletions
@@ -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, |