2#include <c3d/attribs.h>
3#include <c3d/buffers.h>
4#include <c3d/proctex.h>
6#include <c3d/framebuffer.h>
10#define C3D_UNUSED __attribute__((unused))
62 C3D_ProcTexLut* procTexLut[3];
70 C3D_FVec fixedAttribs[12];
95#define C3DiF_ProcTexLut(n) BIT(20+(n))
97#define C3DiF_Tex(n) BIT(23+(n))
99#define C3DiF_TexEnv(n) BIT(26+(n))
117static inline bool typeIsCube(GPU_TEXTURE_MODE_PARAM type)
119 return type == GPU_TEX_CUBE_MAP || type == GPU_TEX_SHADOW_CUBE;
122static inline bool C3Di_TexIs2D(C3D_Tex* tex)
124 return !typeIsCube(C3D_TexGetType(tex));
127static inline bool addrIsVRAM(
const void* addr)
129 u32 vaddr = (u32)addr;
130 return vaddr >= OS_VRAM_VADDR && vaddr < OS_VRAM_VADDR + OS_VRAM_SIZE;
133static inline vramAllocPos addrGetVRAMBank(
const void* addr)
135 u32 vaddr = (u32)addr;
136 return vaddr < OS_VRAM_VADDR + OS_VRAM_SIZE/2 ? VRAM_ALLOC_A : VRAM_ALLOC_B;
C3D_Context __C3D_Context
bool C3Di_SplitFrame(u32 **pBuf, u32 *pSize)
void C3Di_RenderQueueInit(void)
void C3Di_DirtyUniforms(GPU_SHADER_TYPE type)
void C3Di_BufInfoBind(C3D_BufInfo *info)
void C3Di_UpdateContext(void)
void C3Di_EffectBind(C3D_Effect *effect)
void C3Di_LoadShaderUniforms(shaderInstance_s *si)
void C3Di_LightMtlBlend(C3D_Light *light)
void C3Di_RenderQueueDisableVBlank(void)
void C3Di_RenderQueueEnableVBlank(void)
void C3Di_RenderQueueWaitDone(void)
void C3Di_GasUpdate(C3D_Context *ctx)
void C3Di_SetTex(int unit, C3D_Tex *tex)
void C3Di_RenderQueueExit(void)
void C3Di_FrameBufBind(C3D_FrameBuf *fb)
void C3Di_AttrInfoBind(C3D_AttrInfo *info)
void C3Di_TexEnvBind(int id, C3D_TexEnv *env)
void C3Di_ClearShaderUniforms(GPU_SHADER_TYPE type)
C3D_ProcTexColorLut * procTexColorLut
shaderProgram_s * program
GPU_EARLYDEPTHFUNC earlyDepthFunc