aboutsummaryrefslogtreecommitdiff
path: root/ctru-sys/src/gpu/gx.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ctru-sys/src/gpu/gx.rs')
-rw-r--r--ctru-sys/src/gpu/gx.rs94
1 files changed, 94 insertions, 0 deletions
diff --git a/ctru-sys/src/gpu/gx.rs b/ctru-sys/src/gpu/gx.rs
new file mode 100644
index 0000000..69eeddf
--- /dev/null
+++ b/ctru-sys/src/gpu/gx.rs
@@ -0,0 +1,94 @@
+use ::Result;
+
+#[inline]
+pub fn GX_BUFFER_DIM(w: u32, h: u32) {
+ (((h)<<16)|((w)&0xFFFF));
+}
+
+#[repr(C)]
+pub enum GX_TRANSFER_FORMAT
+{
+ GX_TRANSFER_FMT_RGBA8 = 0,
+ GX_TRANSFER_FMT_RGB8 = 1,
+ GX_TRANSFER_FMT_RGB565 = 2,
+ GX_TRANSFER_FMT_RGB5A1 = 3,
+ GX_TRANSFER_FMT_RGBA4 = 4,
+}
+
+#[repr(C)]
+pub enum GX_TRANSFER_SCALE
+{
+ GX_TRANSFER_SCALE_NO = 0,
+ GX_TRANSFER_SCALE_X = 1,
+ GX_TRANSFER_SCALE_Y = 2,
+}
+
+#[repr(C)]
+pub enum GX_FILL_CONTROL {
+ GX_FILL_TRIGGER = 0x001,
+ GX_FILL_FINISHED = 0x002,
+ GX_FILL_16BIT_DEPTH = 0x000,
+ GX_FILL_24BIT_DEPTH = 0x100,
+ GX_FILL_32BIT_DEPTH = 0x200,
+}
+
+#[inline]
+pub fn GX_TRANSFER_FLIP_VERT(x: i32) {
+ ((x)<<0);
+}
+
+#[inline]
+pub fn GX_TRANSFER_OUT_TILED(x: i32) {
+ ((x)<<1);
+}
+
+#[inline]
+pub fn GX_TRANSFER_RAW_COPY(x: i32) {
+ ((x)<<3);
+}
+
+#[inline]
+pub fn GX_TRANSFER_IN_FORMAT(x: i32) {
+ ((x)<<8);
+}
+
+#[inline]
+pub fn GX_TRANSFER_OUT_FORMAT(x: i32) {
+ ((x)<<12);
+}
+
+#[inline]
+pub fn GX_TRANSFER_SCALING(x: i32) {
+ ((x)<<24);
+}
+
+#[inline]
+pub fn GX_CMDLIST_BIT0() {
+ (1u32<<(0));
+}
+
+#[inline]
+pub fn GX_CMNDLIST_FLUSH() {
+ (1u32<<(1));
+}
+
+extern "C" {
+ pub static mut gxCmdBuf: *mut u32;
+
+ pub fn GX_RequestDma(src: *mut u32, dst: *mut u32, length: u32)
+ -> Result;
+ pub fn GX_ProcessCommandList(buf0a: *mut u32, buf0s: u32, flags: u8)
+ -> Result;
+ pub fn GX_MemoryFill(buf0a: *mut u32, buf0v: u32, buf0e: *mut u32,
+ control0: u16, buf1a: *mut u32, buf1v: u32,
+ buf1e: *mut u32, control1: u16) -> Result;
+ pub fn GX_DisplayTransfer(inadr: *mut u32, indim: u32,
+ outadr: *mut u32, outdim: u32, flags: u32)
+ -> Result;
+ pub fn GX_TextureCopy(inadr: *mut u32, indim: u32, outadr: *mut u32,
+ outdim: u32, size: u32, flags: u32) -> Result;
+ pub fn GX_FlushCacheRegions(buf0a: *mut u32, buf0s: u32,
+ buf1a: *mut u32, buf1s: u32,
+ buf2a: *mut u32, buf2s: u32) -> Result;
+}
+