citro3d  1.2.0
base.h
Go to the documentation of this file.
1 #pragma once
2 #include "buffers.h"
3 #include "maths.h"
4 
5 #define C3D_DEFAULT_CMDBUF_SIZE 0x40000
6 
7 enum
8 {
11 };
12 
13 bool C3D_Init(size_t cmdBufSize);
14 void C3D_Fini(void);
15 
16 float C3D_GetCmdBufUsage(void);
17 
18 void C3D_BindProgram(shaderProgram_s* program);
19 
20 void C3D_SetViewport(u32 x, u32 y, u32 w, u32 h);
21 void C3D_SetScissor(GPU_SCISSORMODE mode, u32 left, u32 top, u32 right, u32 bottom);
22 
23 void C3D_DrawArrays(GPU_Primitive_t primitive, int first, int size);
24 void C3D_DrawElements(GPU_Primitive_t primitive, int count, int type, const void* indices);
25 
26 // Immediate-mode vertex submission
27 void C3D_ImmDrawBegin(GPU_Primitive_t primitive);
28 void C3D_ImmSendAttrib(float x, float y, float z, float w);
29 void C3D_ImmDrawEnd(void);
30 
31 static inline void C3D_ImmDrawRestartPrim(void)
32 {
33  GPUCMD_AddWrite(GPUREG_RESTART_PRIMITIVE, 1);
34 }
35 
36 // Fixed vertex attributes
38 
39 static inline void C3D_FixedAttribSet(int id, float x, float y, float z, float w)
40 {
42  ptr->x = x;
43  ptr->y = y;
44  ptr->z = z;
45  ptr->w = w;
46 }
void C3D_ImmDrawEnd(void)
Definition: immediate.c:57
@ C3D_UNSIGNED_BYTE
Definition: base.h:9
@ C3D_UNSIGNED_SHORT
Definition: base.h:10
void C3D_DrawArrays(GPU_Primitive_t primitive, int first, int size)
Definition: drawArrays.c:3
C3D_FVec * C3D_FixedAttribGetWritePtr(int id)
Definition: base.c:389
static void C3D_ImmDrawRestartPrim(void)
Definition: base.h:31
void C3D_BindProgram(shaderProgram_s *program)
Definition: base.c:349
void C3D_ImmDrawBegin(GPU_Primitive_t primitive)
Definition: immediate.c:3
void C3D_ImmSendAttrib(float x, float y, float z, float w)
Definition: immediate.c:28
static void C3D_FixedAttribSet(int id, float x, float y, float z, float w)
Definition: base.h:39
void C3D_DrawElements(GPU_Primitive_t primitive, int count, int type, const void *indices)
Definition: drawElements.c:3
void C3D_SetScissor(GPU_SCISSORMODE mode, u32 left, u32 top, u32 right, u32 bottom)
Definition: base.c:148
bool C3D_Init(size_t cmdBufSize)
Definition: base.c:76
float C3D_GetCmdBufUsage(void)
Definition: base.c:330
void C3D_Fini(void)
Definition: base.c:335
void C3D_SetViewport(u32 x, u32 y, u32 w, u32 h)
Definition: base.c:136
int count
Definition: uniforms.c:15
Float vector.
Definition: types.h:37
float x
X-component.
Definition: types.h:46
float z
Z-component.
Definition: types.h:44
float w
W-component.
Definition: types.h:43
float y
Y-component.
Definition: types.h:45