gouraund tris, the gp commands are a thing of beauty

This commit is contained in:
2025-08-03 20:48:58 -04:00
parent 661b539045
commit df13bf7fb8
5 changed files with 218 additions and 4 deletions
+16 -2
View File
@@ -118,7 +118,9 @@ gp_Poly_Quad equ 1 << 27
gp_Poly_Tri equ 0 << 27
gp_Poly_ShadeFlat equ 0 << 28
gp_Poly_ShadeGourand equ 1 << 28
gp_Polygon equ 0x20 << gcmd_offset
gp_Polygon equ 1 << 29
gp_Quad equ gp_Polygon | gp_Poly_Quad
gp_b10_X equ 0
gp_b10_Y equ 10
@@ -135,6 +137,7 @@ gp_b16_Y equ 16
.endmacro
Color_RedFF equ 0x0000FF
Color_22 equ 0x222222
Color_PS_CadmiumRed equ 0x2400DF
Color_PS_GoldenPoppy equ 0x00C3F3
Color_PS_CelticBlue equ 0x723F00
@@ -179,12 +182,23 @@ main:
store_word rtmp_1, gpio_port0(reg_io_offset)
; Clear the screen
; 1. GP0: Fill rectangle on display area
load_imm rtmp_1, gp_RectFillVM | Color_PS_CelticBlue
load_imm rtmp_1, gp_RectFillVM | Color_22
store_word rtmp_1, gpio_port0(reg_io_offset)
load_imm rtmp_1, 0 << gp_b16_Y | 0 << gp_b16_X
store_word rtmp_1, gpio_port0(reg_io_offset)
load_imm rtmp_1, Display_Height << gp_b16_Y | Display_Width << gp_b16_X
store_word rtmp_1, gpio_port0(reg_io_offset)
; Draw a flat-shaded quad
load_imm rtmp_1, gp_Quad | Color_PS_CelticBlue
store_word rtmp_1, gpio_port0(reg_io_offset)
load_imm rtmp_1, -1 * 15 + Display_HalfHeight << gp_b16_Y | 0 + Display_HalfWidth << gp_b16_X
store_word rtmp_1, gpio_port0(reg_io_offset)
load_imm rtmp_1, -1 * 24 + Display_HalfHeight << gp_b16_Y | 100 + Display_HalfWidth << gp_b16_X
store_word rtmp_1, gpio_port0(reg_io_offset)
load_imm rtmp_1, -1 * -30 + Display_HalfHeight << gp_b16_Y | -100 + Display_HalfWidth << gp_b16_X
store_word rtmp_1, gpio_port0(reg_io_offset)
load_imm rtmp_1, -1 * -50 + Display_HalfHeight << gp_b16_Y | 55 + Display_HalfWidth << gp_b16_X
store_word rtmp_1, gpio_port0(reg_io_offset)
; Draw a flat-shaded triangle
; 1. GP0: Send packets to GP0 to draw a triangle
load_imm rtmp_1, gp_Polygon | Color_PS_GoldenPoppy