pureikyubu/SRC/DolwinVideo/Fifo.h
2020-04-26 14:41:34 +03:00

64 lines
2.4 KiB
C

#pragma once
// vertex attributes
typedef enum
{
VTX_POSMATIDX = 0, // Position Matrix Index
VTX_TEX0MTXIDX, // Texture Coordinate 0 Matrix Index
VTX_TEX1MTXIDX, // Texture Coordinate 1 Matrix Index
VTX_TEX2MTXIDX, // Texture Coordinate 2 Matrix Index
VTX_TEX3MTXIDX, // Texture Coordinate 3 Matrix Index
VTX_TEX4MTXIDX, // Texture Coordinate 4 Matrix Index
VTX_TEX5MTXIDX, // Texture Coordinate 5 Matrix Index
VTX_TEX6MTXIDX, // Texture Coordinate 6 Matrix Index
VTX_TEX7MTXIDX, // Texture Coordinate 7 Matrix Index
VTX_POS, // Position
VTX_NRM, // Normal or Normal/Binormal/Tangent
VTX_COLOR0, // Color 0
VTX_COLOR1, // Color 1
VTX_TEXCOORD0, // Texture Coordinate 0
VTX_TEXCOORD1, // Texture Coordinate 1
VTX_TEXCOORD2, // Texture Coordinate 2
VTX_TEXCOORD3, // Texture Coordinate 3
VTX_TEXCOORD4, // Texture Coordinate 4
VTX_TEXCOORD5, // Texture Coordinate 5
VTX_TEXCOORD6, // Texture Coordinate 6
VTX_TEXCOORD7, // Texture Coordinate 7
VTX_MAX_ATTR
} VTX_ATTR;
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
// GP fifo commands
#define OP_CMD_NOP 0x00
#define OP_CMD_INV 0x48
#define OP_CMD_CALL_DL 0x40
#define OP_CMD_LOAD_BPREG 0x60
#define OP_CMD_LOAD_CPREG 0x08
#define OP_CMD_LOAD_XFREG 0x10
#define OP_CMD_LOAD_INDXA 0x20
#define OP_CMD_LOAD_INDXB 0x28
#define OP_CMD_LOAD_INDXC 0x30
#define OP_CMD_LOAD_INDXD 0x38
#define OP_CMD_DRAW_QUAD 0x80
#define OP_CMD_DRAW_TRIANGLE 0x90
#define OP_CMD_DRAW_STRIP 0x98
#define OP_CMD_DRAW_FAN 0xA0
#define OP_CMD_DRAW_LINE 0xA8
#define OP_CMD_DRAW_LINESTRIP 0xB0
#define OP_CMD_DRAW_POINT 0xB8
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
extern uint32_t lastFifoSize;
// for gpregs module
// called after any changes of VCD / VAT
void FifoReconfigure(
VTX_ATTR attr, // stage attribute
unsigned vat, // vat number
unsigned vcd, // attribute description
unsigned cnt, // attribute "cnt"
unsigned fmt, // attribute "fmt"
unsigned frac);