diff options
Diffstat (limited to 'sys/src/lib.rs')
| -rw-r--r-- | sys/src/lib.rs | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/sys/src/lib.rs b/sys/src/lib.rs index ddce186..6d20488 100644 --- a/sys/src/lib.rs +++ b/sys/src/lib.rs @@ -1,4 +1,5 @@ -use std::ffi::{c_uchar, c_uint, c_void}; +use std::ffi::{c_int, c_uint, c_void}; +use std::num::NonZeroU32; use std::os::raw::c_char; mod renderer; @@ -9,18 +10,24 @@ pub use window::{Window, WindowConfig, WindowEvent}; type CRenderer = *mut (); type CWindow = *mut (); +type CVertexBuffer = c_int; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] #[repr(C)] pub struct RendererConfig { pub width: c_uint, pub height: c_uint, - pub instance_capacity: c_uint, - pub fullscreen: bool, pub vsync: bool, } #[repr(C)] +pub struct DrawCommand { + vertex_count: c_uint, + start: c_uint, + end: c_uint, +} + +#[repr(C)] pub struct Vertex { x: f32, y: f32, @@ -31,9 +38,6 @@ pub struct Vertex { color1_g: f32, color1_b: f32, color1_a: f32, - normal_x: f32, - normal_y: f32, - normal_z: f32, } #[derive(Debug, Clone, Copy)] @@ -63,8 +67,8 @@ pub enum CWindowEvent { extern "C" { fn new_renderer(config: RendererConfig, window: CWindow) -> CRenderer; fn resize_renderer(renderer: CRenderer, width: c_uint, height: c_uint); + fn is_vsync_available(renderer: CRenderer) -> bool; fn set_vsync(renderer: CRenderer, vsync: bool); - //fn create_vertex_buffer(renderer: CRenderer, count: c_uint, instances: *const Vertex); fn set_camera( renderer: CRenderer, x: f32, @@ -74,6 +78,12 @@ extern "C" { width: f32, height: f32, ); + //fn create_mesh( + // renderer: CRenderer, + // vertex_count: c_uint, + // vertices: *const Vertex, + //) -> CVertexBuffer; + fn destroy_vertex_buffer(renderer: CRenderer, buffer: CVertexBuffer); fn render_frame(renderer: CRenderer); fn destroy_renderer(renderer: CRenderer); @@ -96,3 +106,11 @@ unsafe extern "C" fn alligator_run_closure(closure: *mut c_void, event: CWindowE let closure: &mut &mut dyn FnMut(CWindowEvent) = unsafe { &mut *closure.cast() }; closure(event) } + +// avoid linking errors in windows + +#[no_mangle] +extern "C" fn __imp__CrtDbgReport() {} + +#[no_mangle] +extern "C" fn __imp__invalid_parameter() {} |
