mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-12-12 19:37:01 +00:00
64 lines
No EOL
1.7 KiB
C++
64 lines
No EOL
1.7 KiB
C++
#pragma once
|
|
|
|
// basic resource flags
|
|
#define GX2_RESFLAG_USAGE_TEXTURE (1<<0)
|
|
#define GX2_RESFLAG_USAGE_COLOR_BUFFER (1<<1)
|
|
#define GX2_RESFLAG_USAGE_DEPTH_BUFFER (1<<2)
|
|
#define GX2_RESFLAG_USAGE_SCAN_BUFFER (1<<3)
|
|
|
|
// extended resource flags used by GX2R API
|
|
#define GX2R_RESFLAG_USAGE_VERTEX_BUFFER (1<<4)
|
|
#define GX2R_RESFLAG_USAGE_INDEX_BUFFER (1<<5)
|
|
#define GX2R_RESFLAG_USAGE_UNIFORM_BLOCK (1<<6)
|
|
#define GX2R_RESFLAG_USAGE_SHADER_PROGRAM (1<<7)
|
|
#define GX2R_RESFLAG_USAGE_STREAM_OUTPUT (1<<8)
|
|
#define GX2R_RESFLAG_USAGE_DISPLAY_LIST (1<<9)
|
|
#define GX2R_RESFLAG_USAGE_GS_RINGBUFFER (1<<10)
|
|
|
|
#define GX2R_RESFLAG_USAGE_CPU_READ (1<<11)
|
|
#define GX2R_RESFLAG_USAGE_CPU_WRITE (1<<12)
|
|
#define GX2R_RESFLAG_USAGE_GPU_READ (1<<13)
|
|
#define GX2R_RESFLAG_USAGE_GPU_WRITE (1<<14)
|
|
|
|
#define GX2R_RESFLAG_USE_MEM1 (1<<17)
|
|
|
|
#define GX2R_RESFLAG_UKN_BIT_19 (1<<19)
|
|
#define GX2R_RESFLAG_UKN_BIT_20 (1<<20)
|
|
#define GX2R_RESFLAG_UKN_BIT_21 (1<<21)
|
|
#define GX2R_RESFLAG_UKN_BIT_22 (1<<22)
|
|
#define GX2R_RESFLAG_UKN_BIT_23 (1<<23)
|
|
|
|
#define GX2R_RESFLAG_ALLOCATED_BY_GX2R (1<<29)
|
|
#define GX2R_RESFLAG_LOCKED (1<<30)
|
|
|
|
struct GX2RBuffer
|
|
{
|
|
/* +0x00 */ uint32be resFlags;
|
|
/* +0x04 */ uint32be elementSize;
|
|
/* +0x08 */ uint32be elementCount;
|
|
/* +0x0C */ MEMPTR<void> ptr;
|
|
|
|
uint32 GetSize() const
|
|
{
|
|
return (uint32)elementSize * (uint32)elementCount;
|
|
}
|
|
|
|
MPTR GetVirtualAddr() const
|
|
{
|
|
return ptr.GetMPTR();
|
|
}
|
|
|
|
void* GetPtr() const
|
|
{
|
|
return ptr.GetPtr();
|
|
}
|
|
};
|
|
|
|
static_assert(sizeof(GX2RBuffer) == 0x10);
|
|
|
|
namespace GX2
|
|
{
|
|
void GX2ResourceInit();
|
|
|
|
void GX2RSetAllocator(MPTR funcAllocMPTR, MPTR funcFreeMPR);
|
|
}; |