aboutsummaryrefslogtreecommitdiff
path: root/src/raw/gpu/shader_program.rs
diff options
context:
space:
mode:
authorRonald Kinard <[email protected]>2015-06-09 23:47:10 -0500
committerRonald Kinard <[email protected]>2015-06-09 23:47:10 -0500
commit4eb7e5ecf62146fd4c924fdf67cb934fc689319e (patch)
tree84f0976d6f19dd80b20c1cd4e6a1dc9c45a955af /src/raw/gpu/shader_program.rs
parentAdd bindgen-generated ctru binding. (diff)
downloadctru-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.rs42
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;
+}