mirror of
https://github.com/emu-russia/pureikyubu.git
synced 2025-04-02 10:42:15 -04:00
64 lines
2.4 KiB
C
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);
|