mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-03-21 17:55:13 -05:00
44 lines
1.3 KiB
C
44 lines
1.3 KiB
C
#ifndef POKEPLATINUM_G3D_PIPELINE_H
|
|
#define POKEPLATINUM_G3D_PIPELINE_H
|
|
|
|
#include "constants/heap.h"
|
|
|
|
typedef struct G3DPipelineBuffers {
|
|
enum HeapID heapID;
|
|
void *paletteBuffer;
|
|
void *textureBuffer;
|
|
} G3DPipelineBuffers;
|
|
|
|
enum VramManagerType {
|
|
VRAM_MANAGER_TYPE_LINKED_LIST = 0,
|
|
VRAM_MANAGER_TYPE_FRAME,
|
|
};
|
|
|
|
enum TextureVramSize {
|
|
TEXTURE_VRAM_SIZE_128K = 1,
|
|
TEXTURE_VRAM_SIZE_256K,
|
|
TEXTURE_VRAM_SIZE_384K,
|
|
TEXTURE_VRAM_SIZE_512K,
|
|
};
|
|
|
|
enum PaletteVramSize {
|
|
PALETTE_VRAM_SIZE_16K = 1,
|
|
PALETTE_VRAM_SIZE_32K,
|
|
PALETTE_VRAM_SIZE_48K,
|
|
PALETTE_VRAM_SIZE_64K,
|
|
PALETTE_VRAM_SIZE_80K,
|
|
PALETTE_VRAM_SIZE_96K,
|
|
};
|
|
|
|
typedef void (*G3DPipelineSetupCallback)(void);
|
|
|
|
G3DPipelineBuffers *G3DPipeline_InitEx(enum HeapID heapID, enum VramManagerType texVramManagerType, enum TextureVramSize texVramSize, enum VramManagerType plttVramManagerType, enum PaletteVramSize plttVramSize, G3DPipelineSetupCallback cb);
|
|
void G3DPipelineBuffers_Free(G3DPipelineBuffers *state);
|
|
|
|
static inline G3DPipelineBuffers *G3DPipeline_Init(enum HeapID heapID, enum TextureVramSize texVramSize, enum PaletteVramSize plttVramSize, G3DPipelineSetupCallback cb)
|
|
{
|
|
return G3DPipeline_InitEx(heapID, VRAM_MANAGER_TYPE_LINKED_LIST, texVramSize, VRAM_MANAGER_TYPE_LINKED_LIST, plttVramSize, cb);
|
|
}
|
|
|
|
#endif // POKEPLATINUM_G3D_PIPELINE_H
|