]> Chaos Git - corbenik/ctrulib.git/commitdiff
GPU : GPU_DepthRange && GPU_SetTexture
authorsmea <smealum@gmail.com>
Thu, 13 Mar 2014 18:54:52 +0000 (19:54 +0100)
committersmea <smealum@gmail.com>
Thu, 13 Mar 2014 18:54:52 +0000 (19:54 +0100)
libctru/include/ctr/GPU.h
libctru/source/GPU.c

index 1a9e3b6ae54fbe229174a3ab722772e65fab7e9f..1e3e55bbd7b5e975c8c64e4115fe42964b9a2e88 100644 (file)
@@ -10,7 +10,25 @@ void GPUCMD_Add(u32 cmd, u32* param, u32 paramlength);
 void GPUCMD_AddSingleParam(u32 cmd, u32 param);
 void GPUCMD_Finalize();
 
+typedef enum{
+       GPU_RGBA8=0x0,
+       GPU_RGB8=0x1,
+       GPU_RGBA5551=0x2,
+       GPU_RGB565=0x3,
+       GPU_RGBA4=0x4,
+       GPU_LA8=0x5,
+       GPU_HILO8=0x6,
+       GPU_L8=0x7,
+       GPU_A8=0x8,
+       GPU_LA4=0x9,
+       GPU_L4=0xA,
+       GPU_ETC1=0xB,
+       GPU_ETC1A4=0xC
+}GPU_TEXCOLOR;
+
 void GPU_SetUniform(u32 startreg, u32* data, u32 numreg);
 void GPU_SetViewport(u32* depthBuffer, u32* colorBuffer, u32 x, u32 y, u32 w, u32 h);
+void GPU_DepthRange(float nearVal, float farVal);
+void GPU_SetTexture(u32* data, u16 width, u16 height, u32 param, GPU_TEXCOLOR colorType);
 
 #endif
index e7af93908459bc6ab40b9ba7d91c3964b424eece..7302e3d760de1e090edb3eae4f8e07e3cf4fb541 100644 (file)
@@ -268,3 +268,18 @@ void GPU_SetViewport(u32* depthBuffer, u32* colorBuffer, u32 x, u32 y, u32 w, u3
        param[0x2]=((h-1)<<16)|((w-1)&0xFFFF);
        GPUCMD_Add(0x800F0065, param, 0x00000003);
 }
+
+void GPU_DepthRange(float nearVal, float farVal)
+{
+       GPUCMD_AddSingleParam(0x000F006D, 0x00000001); //?
+       GPUCMD_AddSingleParam(0x000F004D, f32tof24(nearVal));
+       GPUCMD_AddSingleParam(0x000F004E, f32tof24(farVal));
+}
+
+void GPU_SetTexture(u32* data, u16 width, u16 height, u32 param, GPU_TEXCOLOR colorType)
+{
+       GPUCMD_AddSingleParam(0x000F008E, colorType);
+       GPUCMD_AddSingleParam(0x000F0085, ((u32)data)>>3);
+       GPUCMD_AddSingleParam(0x000F0082, (width)|(height<<16));
+       GPUCMD_AddSingleParam(0x000F0083, param);
+}