mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-04-20 20:49:12 +12:00
[PICA] Implement drawArrays, get our first triangle data
This commit is contained in:
parent
eb536ee147
commit
00d82ca6ed
4 changed files with 21 additions and 0 deletions
|
@ -1,4 +1,5 @@
|
|||
#include "PICA/gpu.hpp"
|
||||
#include "PICA/regs.hpp"
|
||||
#include <cstdio>
|
||||
|
||||
void GPU::reset() {
|
||||
|
@ -9,4 +10,11 @@ void GPU::reset() {
|
|||
|
||||
void GPU::clearBuffer(u32 startAddress, u32 endAddress, u32 value, u32 control) {
|
||||
printf("GPU: Clear buffer\nStart: %08X End: %08X\nValue: %08X Control: %08X\n", startAddress, endAddress, value, control);
|
||||
}
|
||||
|
||||
void GPU::drawArrays() {
|
||||
const u32 vertexCount = regs[PICAInternalRegs::VertexCountReg];
|
||||
const u32 vertexOffset = regs[PICAInternalRegs::VertexOffsetReg];
|
||||
|
||||
printf("PICA::DrawArrays(vertex count = %d, vertexOffset = %d)\n", vertexCount, vertexOffset);
|
||||
}
|
|
@ -34,10 +34,15 @@ void GPU::writeInternalReg(u32 index, u32 value, u32 mask) {
|
|||
|
||||
u32 currentValue = regs[index];
|
||||
u32 newValue = (currentValue & ~mask) | (value & mask); // Only overwrite the bits specified by "mask"
|
||||
regs[index] = newValue;
|
||||
|
||||
// TODO: Figure out if things like the shader index use the unmasked value or the masked one
|
||||
// We currently use the unmasked value like Citra does
|
||||
switch (index) {
|
||||
case SignalDrawArrays:
|
||||
if (value != 0) drawArrays();
|
||||
break;
|
||||
|
||||
case VertexShaderTransferEnd:
|
||||
if (value != 0) shaderUnit.vs.finalize();
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue