diff options
| author | Ronald Kinard <[email protected]> | 2015-06-09 23:47:10 -0500 |
|---|---|---|
| committer | Ronald Kinard <[email protected]> | 2015-06-09 23:47:10 -0500 |
| commit | 4eb7e5ecf62146fd4c924fdf67cb934fc689319e (patch) | |
| tree | 84f0976d6f19dd80b20c1cd4e6a1dc9c45a955af /src/raw/gpu/shader_program.rs | |
| parent | Add bindgen-generated ctru binding. (diff) | |
| download | ctru-rs-4eb7e5ecf62146fd4c924fdf67cb934fc689319e.tar.xz ctru-rs-4eb7e5ecf62146fd4c924fdf67cb934fc689319e.zip | |
Add linkage for a large number of ctrulib stuff.
Diffstat (limited to 'src/raw/gpu/shader_program.rs')
| -rw-r--r-- | src/raw/gpu/shader_program.rs | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/raw/gpu/shader_program.rs b/src/raw/gpu/shader_program.rs new file mode 100644 index 0000000..0b20676 --- /dev/null +++ b/src/raw/gpu/shader_program.rs @@ -0,0 +1,42 @@ +use super::shbin::*; + +#[repr(C)] +#[derive(Copy)] +pub struct float24Uniform_s { + id: u32, + data: [u32; 3usize] +} + +#[repr(C)] +#[derive(Copy)] +pub struct shaderInstance_s { + pub dvle: *mut DVLE_s; + pub boolUniforms: u16, + pub intUniforms: [u32; 4usize], + pub float24Uniforms: *mut float24Uniform_s, + pub numFloat24Uniforms: u8, +} + +#[repr(C)] +#[derive(Copy)] +pub struct shaderProgram_s { + pub vertexShader: *mut shaderInstance_s, + pub geometryShader: *mut shaderInstance_s, + pub geometryShaderInputStride: u8, +} + +use ctru::Result; + +#[link(name = "ctru")] +extern "C" { + pub fn shaderInstanceInit(si: *mut shaderInstance_s, dvle: *mut DVLE_s) -> Result; + pub fn shaderInstanceFree(si: *mut shaderInstance_s) -> Result; + pub fn shaderInstanceSetBool(si: *mut shaderInstance_s, id: ::libc::c_int, value: u8) -> Result; + pub fn shaderInstanceGetBool(si: *mut shaderInstance_s, id: ::libc::c_int, value: *mut u8) -> Result; + pub fn shaderInstanceGetUniformLocation(si: *mut shaderInstance_s, name: *const ::libc::c_char) -> Result; + pub fn shaderProgramInit(sp: *mut shaderProgram_s) -> Result; + pub fn shaderProgramFree(sp: *mut shaderProgram_s) -> Result; + pub fn shaderProgramSetVsh(sp: *mut shaderProgram_s, dvle: *mut DVLE_s) -> Result; + pub fn shaderProgramSetGsh(sp: *mut shaderProgram_s, dvle: *mut DVLE_s, stride: _u8) -> Result; + pub fn shaderProgramUse(sp: *mut shaderProgram_s) -> Result; +} |