From 344d1655420ba068ba6e80578dffc0e30544a53c Mon Sep 17 00:00:00 2001 From: Tony Wasserka Date: Sun, 1 Mar 2015 16:28:08 +0100 Subject: [PATCH] GPU: Support setting integer and boolean uniforms. --- libctru/include/3ds/gpu/gpu.h | 2 ++ libctru/source/gpu/gpu.c | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/libctru/include/3ds/gpu/gpu.h b/libctru/include/3ds/gpu/gpu.h index 5fd3071..e25c7de 100644 --- a/libctru/include/3ds/gpu/gpu.h +++ b/libctru/include/3ds/gpu/gpu.h @@ -190,6 +190,8 @@ typedef enum{ }GPU_Primitive_t; void GPU_SetUniform(u32 startreg, u32* data, u32 numreg); +void GPU_SetIntUniform(u32 startreg, u32 value); +void GPU_SetBoolUniforms(u32 values); void GPU_SetViewport(u32* depthBuffer, u32* colorBuffer, u32 x, u32 y, u32 w, u32 h); diff --git a/libctru/source/gpu/gpu.c b/libctru/source/gpu/gpu.c index ccde474..fab80ed 100644 --- a/libctru/source/gpu/gpu.c +++ b/libctru/source/gpu/gpu.c @@ -234,6 +234,16 @@ void GPU_SetUniform(u32 startreg, u32* data, u32 numreg) GPUCMD_Add(0x000F02C1, data, numreg*4); } +void GPU_SetIntUniform(u32 reg, u32 value) +{ + GPUCMD_AddSingleParam(0x000F02B1 + reg, value); +} + +void GPU_SetBoolUniforms(u32 values) +{ + GPUCMD_AddSingleParam(0x000F02B0, values); +} + //TODO : fix u32 f32tof24(float f) {