75static inline void waitGPU() {
while ((
GPU_STATUS & 0x04000000) == 0); }
77static inline void sendGPUData(
uint32_t data) {
84static inline uint32_t generateDisableDisplay() {
return 0x03000001; }
85static inline uint32_t generateEnableDisplay() {
return 0x03000000; }
86static inline void disableDisplay() { sendGPUStatus(generateDisableDisplay()); }
87static inline void enableDisplay() { sendGPUStatus(generateEnableDisplay()); }
95 sendGPUStatus(generateDisplayMode(config));
98static inline uint32_t generateDisplayArea(int16_t x, int16_t y) {
return 0x05000000 | x | (y << 10); }
99static inline void setDisplayArea(int16_t x, int16_t y) { sendGPUStatus(generateDisplayArea(x, y)); }
101static inline uint32_t generateHorizontalRange(int16_t x1, int16_t x2) {
102 return 0x06000000 | (x1 + 0x260) | ((x1 + x2 + 0x260) << 12);
104static inline void setHorizontalRange(int16_t x1, int16_t x2) { sendGPUStatus(generateHorizontalRange(x1, x2)); }
106static inline uint32_t generateVerticalRange(int16_t y1, int16_t y2) {
return 0x07000000 | y1 | (y2 << 10); }
107static inline void setVerticalRange(int16_t y1, int16_t y2) { sendGPUStatus(generateVerticalRange(y1, y2)); }
121static inline void fastFill(
const struct FastFill* ff) {
128static inline uint32_t generateDrawingAreaStart(int16_t x, int16_t y) {
return 0xe3000000 | x | y << 10; }
129static inline uint32_t generateDrawingAreaEnd(int16_t x, int16_t y) {
return 0xe4000000 | (x - 1) | (y - 1) << 10; }
130static inline void setDrawingArea(int16_t x1, int16_t y1, int16_t x2, int16_t y2) {
131 sendGPUData(generateDrawingAreaStart(x1, y1));
132 sendGPUData(generateDrawingAreaEnd(x2, y2));
135static inline uint32_t generateDrawingOffset(int16_t x, int16_t y) {
return 0xe5000000 | x | y << 11; }
136static inline void setDrawingOffset(int16_t x, int16_t y) { sendGPUData(generateDrawingOffset(x, y)); }
173 return 0x20000000 |
c->shading << 28 |
c->verticesCount << 27 |
c->textured << 26 |
c->transparency << 25 |
174 c->blending << 24 |
c->color.b << 16 |
c->color.g << 8 |
c->color.r;
176static inline void startPolygonCommand(
const struct GPUPolygonCommand*
c) { sendGPUData(generatePolygonCommand(
c)); }
191 return 0x40000000 |
c->shading << 28 |
c->lineStyle << 27 |
c->transparency << 25 |
c->color.b << 16 |
192 c->color.g << 8 |
c->color.r;
194static inline void startLineCommand(
const struct GPULineCommand*
c) { sendGPUData(generateLineCommand(
c)); }
196static inline uint32_t generateFlushGPUCache() {
return 0x01000000; }
197static inline void flushGPUCache() { sendGPUData(generateFlushGPUCache()); }
Transparency
Definition gpu.h:153
@ TRANS_OFF
Definition gpu.h:155
@ TRANS_ON
Definition gpu.h:154
VideoMode
Definition gpu.h:46
@ VM_NTSC
Definition gpu.h:47
@ VM_PAL
Definition gpu.h:48
HResolutionExtended
Definition gpu.h:61
@ HRE_368
Definition gpu.h:63
@ HRE_NORMAL
Definition gpu.h:62
Shading
Definition gpu.h:138
@ S_FLAT
Definition gpu.h:139
@ S_GOURAUD
Definition gpu.h:140
VResolution
Definition gpu.h:41
@ VR_480
Definition gpu.h:43
@ VR_240
Definition gpu.h:42
HResolution
Definition gpu.h:33
@ HR_EXTENDED
Definition gpu.h:34
@ HR_640
Definition gpu.h:38
@ HR_320
Definition gpu.h:36
@ HR_512
Definition gpu.h:37
@ HR_256
Definition gpu.h:35
Textured
Definition gpu.h:148
@ TEX_ON
Definition gpu.h:149
@ TEX_OFF
Definition gpu.h:150
LineStyle
Definition gpu.h:178
@ POLY_OFF
Definition gpu.h:179
@ POLY_ON
Definition gpu.h:180
VideoInterlace
Definition gpu.h:56
@ VI_ON
Definition gpu.h:58
@ VI_OFF
Definition gpu.h:57
ColorDepth
Definition gpu.h:51
@ CD_15BITS
Definition gpu.h:52
@ CD_24BITS
Definition gpu.h:53
Blending
Definition gpu.h:158
@ BLEND_OFF
Definition gpu.h:160
@ BLEND_ON
Definition gpu.h:159
VerticesCount
Definition gpu.h:143
@ VC_3
Definition gpu.h:144
@ VC_4
Definition gpu.h:145
#define GPU_DATA
Definition hwregs.h:65
#define GPU_STATUS
Definition hwregs.h:66
enum ColorDepth colorDepth
Definition gpu.h:70
enum VideoInterlace videoInterlace
Definition gpu.h:71
enum VideoMode videoMode
Definition gpu.h:69
enum HResolutionExtended hResolutionExtended
Definition gpu.h:72
enum VResolution vResolution
Definition gpu.h:68
enum HResolution hResolution
Definition gpu.h:67
int16_t h
Definition gpu.h:118
union Color c
Definition gpu.h:117
int16_t w
Definition gpu.h:118
int16_t x
Definition gpu.h:118
int16_t y
Definition gpu.h:118
enum Shading shading
Definition gpu.h:184
union Color color
Definition gpu.h:187
enum LineStyle lineStyle
Definition gpu.h:185
enum Transparency transparency
Definition gpu.h:186
union Color color
Definition gpu.h:169
enum Blending blending
Definition gpu.h:168
enum Shading shading
Definition gpu.h:164
enum VerticesCount verticesCount
Definition gpu.h:165
enum Transparency transparency
Definition gpu.h:167
enum Textured textured
Definition gpu.h:166
static int c
Definition syscalls.h:121
void uint32_t(classId, spec)
uint8_t g
Definition gpu.h:111
uint8_t b
Definition gpu.h:111
uint32_t packed
Definition gpu.h:113
uint8_t r
Definition gpu.h:111