Wii U: Less reliance on GX2R

This commit is contained in:
UnknownShadow200 2025-09-11 20:45:08 +10:00
parent 34ad75f2c9
commit 34c1766007
2 changed files with 12 additions and 8 deletions

View File

@ -372,7 +372,12 @@ static GfxResourceID Gfx_AllocStaticVb(VertexFormat fmt, int count) {
buf->elemSize = strideSizes[fmt];
buf->elemCount = count;
if (GX2RCreateBuffer(buf)) return buf;
// TODO calculate directly, avoid GX2R
uint32_t align = GX2RGetBufferAlignment(buf->flags);
uint32_t size = GX2RGetBufferAllocationSize(buf);
buf->buffer = MEMAllocFromDefaultHeapEx(size, align);
if (buf->buffer) return buf;
// Something went wrong ?? TODO
Mem_Free(buf);
return NULL;
@ -382,25 +387,24 @@ void Gfx_DeleteVb(GfxResourceID* vb) {
GX2RBuffer* buf = *vb;
if (!buf) return;
GX2RDestroyBufferEx(buf, 0);
Mem_Free(buf);
MEMFreeToDefaultHeap(buf->buffer);
Mem_Free(buf);
*vb = NULL;
}
void Gfx_BindVb(GfxResourceID vb) {
GX2RBuffer* buf = (GX2RBuffer*)vb;
GX2RSetAttributeBuffer(buf, 0, buf->elemSize, 0);
//GX2SetAttribBuffer(0,
GX2SetAttribBuffer(0, buf->elemSize * buf->elemCount, buf->elemSize, buf->buffer);
}
void* Gfx_LockVb(GfxResourceID vb, VertexFormat fmt, int count) {
GX2RBuffer* buf = (GX2RBuffer*)vb;
return GX2RLockBufferEx(buf, 0);
return buf->buffer;
}
void Gfx_UnlockVb(GfxResourceID vb) {
GX2RBuffer* buf = (GX2RBuffer*)vb;
GX2RUnlockBufferEx(buf, 0);
GX2Invalidate(GX2_INVALIDATE_MODE_CPU_ATTRIBUTE_BUFFER, buf->buffer, buf->elemSize * buf->elemCount);
}

View File

@ -192,7 +192,7 @@ static void HandleButtons(int port, xid_gamepad_in* gp) {
Gamepad_SetButton(port, CCPAD_DOWN, mods & XINPUT_GAMEPAD_DPAD_DOWN);
}
#define AXIS_SCALE 8192.0f
#define AXIS_SCALE 4096.0f
static void HandleJoystick(int port, int axis, int x, int y, float delta) {
if (Math_AbsI(x) <= 6144) x = 0;
if (Math_AbsI(y) <= 6144) y = 0;