diff options
| author | Ronald Kinard <[email protected]> | 2016-05-03 01:15:18 -0500 |
|---|---|---|
| committer | Ronald Kinard <[email protected]> | 2016-05-03 01:15:18 -0500 |
| commit | ff5a09832fe4534f657b3dcd80dff9e178ee0d70 (patch) | |
| tree | af443f2e659a288b45cc5db980f1ae6180739163 /ctru-sys/src/gpu/shaderProgram.rs | |
| parent | Whoops, that's zlib, not BSD-3. (diff) | |
| parent | Update AUTHORS.md (diff) | |
| download | ctru-rs-ff5a09832fe4534f657b3dcd80dff9e178ee0d70.tar.xz ctru-rs-ff5a09832fe4534f657b3dcd80dff9e178ee0d70.zip | |
Merge pull request #4 from FenrirWolf/master
Compatibility fixes + new bindings + refactoring
Diffstat (limited to 'ctru-sys/src/gpu/shaderProgram.rs')
| -rw-r--r-- | ctru-sys/src/gpu/shaderProgram.rs | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/ctru-sys/src/gpu/shaderProgram.rs b/ctru-sys/src/gpu/shaderProgram.rs new file mode 100644 index 0000000..f81f772 --- /dev/null +++ b/ctru-sys/src/gpu/shaderProgram.rs @@ -0,0 +1,89 @@ +use ::Result; +use ::types::*; +use gpu::shbin::*; + + +#[repr(C)] +#[derive(Copy)] +pub struct Struct_Unnamed1 { + pub id: u32, + pub data: [u32; 3usize], +} +impl ::core::clone::Clone for Struct_Unnamed1 { + fn clone(&self) -> Self { *self } +} +impl ::core::default::Default for Struct_Unnamed1 { + fn default() -> Self { unsafe { ::core::mem::zeroed() } } +} +pub type float24Uniform_s = Struct_Unnamed1; +#[repr(C)] +#[derive(Copy)] +pub struct Struct_Unnamed2 { + pub dvle: *mut DVLE_s, + pub boolUniforms: u16, + pub boolUniformMask: u16, + pub intUniforms: [u32; 4usize], + pub float24Uniforms: *mut float24Uniform_s, + pub intUniformMask: u8, + pub numFloat24Uniforms: u8, +} +impl ::core::clone::Clone for Struct_Unnamed2 { + fn clone(&self) -> Self { *self } +} +impl ::core::default::Default for Struct_Unnamed2 { + fn default() -> Self { unsafe { ::core::mem::zeroed() } } +} +pub type shaderInstance_s = Struct_Unnamed2; +#[repr(C)] +#[derive(Copy)] +pub struct Struct_Unnamed3 { + pub vertexShader: *mut shaderInstance_s, + pub geometryShader: *mut shaderInstance_s, + pub geoShaderInputPermutation: [u32; 2usize], + pub geoShaderInputStride: u8, + pub geoShaderMode: u8, +} +impl ::core::clone::Clone for Struct_Unnamed3 { + fn clone(&self) -> Self { *self } +} +impl ::core::default::Default for Struct_Unnamed3 { + fn default() -> Self { unsafe { ::core::mem::zeroed() } } +} +pub type shaderProgram_s = Struct_Unnamed3; +#[derive(Clone, Copy)] +#[repr(u32)] +pub enum Enum_Unnamed4 { + GSH_NORMAL = 0, + GSH_PARTICLE = 1, + GSH_SUBDIVISION_LOOP = 2, + GSH_SUBDIVISION_CATMULL_CLARK = 3, +} +pub type geoShaderMode = Enum_Unnamed4; +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: i32, value: u8) + -> Result; + pub fn shaderInstanceGetBool(si: *mut shaderInstance_s, + id: i32, value: *mut u8) + -> Result; + pub fn shaderInstanceGetUniformLocation(si: *mut shaderInstance_s, + name: + *const u8) + -> s8; + 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 shaderProgramSetGshInputPermutation(sp: *mut shaderProgram_s, + permutation: u64) -> Result; + pub fn shaderProgramSetGshMode(sp: *mut shaderProgram_s, + mode: geoShaderMode) -> Result; + pub fn shaderProgramConfigure(sp: *mut shaderProgram_s, sendVshCode: u8, + sendGshCode: u8) -> Result; + pub fn shaderProgramUse(sp: *mut shaderProgram_s) -> Result; +} |