]> Chaos Git - corbenik/ctrulib.git/commitdiff
GPUCMD_GetBuffer, GPUCMD_AddRawCommands
authorsmea <smealum@gmail.com>
Sun, 9 Nov 2014 08:40:23 +0000 (00:40 -0800)
committersmea <smealum@gmail.com>
Sun, 9 Nov 2014 08:40:23 +0000 (00:40 -0800)
libctru/include/3ds/gpu/gpu.h
libctru/source/gpu/gpu.c

index dc0628de2e2401274f57e0f4c1b11267db795e97..c865867eadf34964383a902ab4cb3bd76d659c90 100644 (file)
@@ -4,6 +4,8 @@ void GPU_Init(Handle *gsphandle);
 void GPU_Reset(u32* gxbuf, u32* gpuBuf, u32 gpuBufSize);
 
 void GPUCMD_SetBuffer(u32* adr, u32 size, u32 offset);
+void GPUCMD_GetBuffer(u32** adr, u32* size, u32* offset);
+void GPUCMD_AddRawCommands(u32* cmd, u32 size);
 void GPUCMD_Run(u32* gxbuf);
 void GPUCMD_FlushAndRun(u32* gxbuf);
 void GPUCMD_Add(u32 cmd, u32* param, u32 paramlength);
index 8f1b7bc951e14968219ce1fa89f18863894a9ffa..d3ff287d6b9f03f88c66e229ccba09ada69dbc10 100644 (file)
@@ -26,6 +26,21 @@ void GPUCMD_SetBuffer(u32* adr, u32 size, u32 offset)
        gpuCmdBufOffset=offset;
 }
 
+void GPUCMD_GetBuffer(u32** adr, u32* size, u32* offset)
+{
+       if(adr)*adr=gpuCmdBuf;
+       if(size)*size=gpuCmdBufSize;
+       if(offset)*offset=gpuCmdBufOffset;
+}
+
+void GPUCMD_AddRawCommands(u32* cmd, u32 size)
+{
+       if(!cmd || !size)return;
+
+       memcpy(&gpuCmdBuf[gpuCmdBufOffset], cmd, size*4);
+       gpuCmdBufOffset+=size;
+}
+
 void GPUCMD_Run(u32* gxbuf)
 {
        GX_SetCommandList_First(gxbuf, gpuCmdBuf, gpuCmdBufOffset*4, NULL, 0, NULL, 0);