libdragon
|
RDP: Hardware Display Interface. More...
Go to the source code of this file.
Macros | |
#define | DP_START ((volatile uint32_t*)0xA4100000) |
DP start register. | |
#define | DP_END ((volatile uint32_t*)0xA4100004) |
DP end register. | |
#define | DP_CURRENT ((volatile uint32_t*)0xA4100008) |
DP current register. | |
#define | DP_STATUS ((volatile uint32_t*)0xA410000C) |
DP status register. | |
#define | DP_CLOCK ((volatile uint32_t*)0xA4100010) |
DP clock counter. | |
#define | DP_BUSY ((volatile uint32_t*)0xA4100014) |
DP command buffer busy. | |
#define | DP_PIPE_BUSY ((volatile uint32_t*)0xA4100018) |
DP pipe busy. | |
#define | DP_TMEM_BUSY ((volatile uint32_t*)0xA410001C) |
DP tmem busy. | |
#define | DP_STATUS_DMEM_DMA (1 << 0) |
DP is using DMEM DMA. | |
#define | DP_STATUS_FREEZE (1 << 1) |
DP is frozen. | |
#define | DP_STATUS_FLUSH (1 << 2) |
DP is flushed. | |
#define | DP_STATUS_GCLK_ALIVE (1 << 3) |
DP GCLK is alive. | |
#define | DP_STATUS_TMEM_BUSY (1 << 4) |
DP TMEM is busy. | |
#define | DP_STATUS_PIPE_BUSY (1 << 5) |
DP pipeline is busy. | |
#define | DP_STATUS_BUSY (1 << 6) |
DP command unit is busy. | |
#define | DP_STATUS_BUFFER_READY (1 << 7) |
DP command buffer is ready. | |
#define | DP_STATUS_DMA_BUSY (1 << 8) |
DP DMA is busy. | |
#define | DP_STATUS_END_VALID (1 << 9) |
DP command end register is valid. | |
#define | DP_STATUS_START_VALID (1 << 10) |
DP command start register is valid. | |
#define | DP_WSTATUS_RESET_XBUS_DMEM_DMA (1<<0) |
DP_STATUS write mask: clear DP_STATUS_DMEM_DMA bit. | |
#define | DP_WSTATUS_SET_XBUS_DMEM_DMA (1<<1) |
DP_STATUS write mask: set DP_STATUS_DMEM_DMA bit. | |
#define | DP_WSTATUS_RESET_FREEZE (1<<2) |
DP_STATUS write mask: clear DP_STATUS_FREEZE bit. | |
#define | DP_WSTATUS_SET_FREEZE (1<<3) |
DP_STATUS write mask: set DP_STATUS_FREEZE bit. | |
#define | DP_WSTATUS_RESET_FLUSH (1<<4) |
DP_STATUS write mask: clear DP_STATUS_FLUSH bit. | |
#define | DP_WSTATUS_SET_FLUSH (1<<5) |
DP_STATUS write mask: set DP_STATUS_FLUSH bit. | |
#define | DP_WSTATUS_RESET_TMEM_COUNTER (1<<6) |
DP_STATUS write mask: clear TMEM counter. | |
#define | DP_WSTATUS_RESET_PIPE_COUNTER (1<<7) |
DP_STATUS write mask: clear PIPE counter. | |
#define | DP_WSTATUS_RESET_CMD_COUNTER (1<<8) |
DP_STATUS write mask: clear CMD counter. | |
#define | DP_WSTATUS_RESET_CLOCK_COUNTER (1<<9) |
DP_STATUS write mask: clear CLOCK counter. | |
Enumerations | |
enum | mirror_t { MIRROR_DISABLED , MIRROR_X , MIRROR_Y , MIRROR_XY } |
Mirror settings for textures. More... | |
enum | flush_t { FLUSH_STRATEGY_NONE , FLUSH_STRATEGY_AUTOMATIC } |
Caching strategy for loaded textures. More... | |
Functions | |
void | rdp_enable_blend_fill (void) |
Enable display of 2D filled (untextured) triangles, with possible alpha blending. | |
uint32_t | rdp_load_texture (uint32_t texslot, uint32_t texloc, mirror_t mirror, sprite_t *sprite) |
Load a sprite into RDP TMEM. | |
uint32_t | rdp_load_texture_stride (uint32_t texslot, uint32_t texloc, mirror_t mirror, sprite_t *sprite, int offset) |
Load part of a sprite into RDP TMEM. | |
void | rdp_draw_textured_rectangle (uint32_t texslot, int tx, int ty, int bx, int by, mirror_t mirror) |
Draw a textured rectangle. | |
void | rdp_draw_textured_rectangle_scaled (uint32_t texslot, int tx, int ty, int bx, int by, double x_scale, double y_scale, mirror_t mirror) |
Draw a textured rectangle with a scaled texture. | |
void | rdp_draw_sprite (uint32_t texslot, int x, int y, mirror_t mirror) |
Draw a texture to the screen as a sprite. | |
void | rdp_draw_sprite_scaled (uint32_t texslot, int x, int y, double x_scale, double y_scale, mirror_t mirror) |
Draw a texture to the screen as a scaled sprite. | |
void | rdp_set_blend_color (uint32_t color) |
Set the blend draw color for subsequent filled primitive operations. | |
void | rdp_draw_filled_triangle (float x1, float y1, float x2, float y2, float x3, float y3) |
Draw a filled triangle. | |
void | rdp_set_texture_flush (flush_t flush) |
Set the flush strategy for texture loads. | |
RDP: Hardware Display Interface.
void rdp_enable_blend_fill | ( | void | ) |
Enable display of 2D filled (untextured) triangles, with possible alpha blending.
This must be called before using rdp_draw_filled_triangle.