diff --git a/azur/CMakeLists.txt b/azur/CMakeLists.txt index 04d740b..1a8f850 100644 --- a/azur/CMakeLists.txt +++ b/azur/CMakeLists.txt @@ -30,8 +30,8 @@ if(AZUR_GRAPHICS_GINT_CG) src/gint/render.c src/gint/shaders/clear.c src/gint/shaders/clear.S - src/gint/shaders/tex2d.c - src/gint/shaders/tex2d.S) + src/gint/shaders/image.c + src/gint/shaders/image.S) endif() add_library(azur STATIC ${SOURCES}) diff --git a/azur/include/azur/gint/render.h b/azur/include/azur/gint/render.h index 93797a1..9933b3e 100644 --- a/azur/include/azur/gint/render.h +++ b/azur/include/azur/gint/render.h @@ -174,23 +174,23 @@ void azrp_config_frag_offset(int offset); /* Clears the entire output with a single color */ extern uint8_t AZRP_SHADER_CLEAR; /* Renders RGB565 textures/images */ -extern uint8_t AZRP_SHADER_TEX2D; +extern uint8_t AZRP_SHADER_IMAGE; /* azrp_clear(): Clear output [ARZP_SHADER_CLEAR] */ void azrp_clear(uint16_t color); -/* azrp_image(): Queue image command [AZRP_SHADER_TEX2D] */ +/* azrp_image(): Queue image command [AZRP_SHADER_IMAGE] */ void azrp_image(int x, int y, bopti_image_t const *image); -/* azrp_subimage(): Queue image subsection command [AZRP_SHADER_TEX2D] */ +/* azrp_subimage(): Queue image subsection command [AZRP_SHADER_IMAGE] */ void azrp_subimage(int x, int y, bopti_image_t const *image, int left, int top, int width, int height, int flags); /* Functions to update uniforms for these shaders. You should call them when: * AZRP_SHADER_CLEAR: Changing super-scaling settings. - * AZRP_SHADER_TEX2D: Changing super-scaling or or fragment offsets. */ + * AZRP_SHADER_IMAGE: Changing super-scaling or or fragment offsets. */ void azrp_shader_clear_configure(void); -void azrp_shader_tex2d_configure(void); +void azrp_shader_image_configure(void); //--- // Performance indicators @@ -254,7 +254,7 @@ bool azrp_queue_command(void *command, size_t size); // Internal shader definitions (for reference; no API guarantee) //--- -struct azrp_shader_tex2d_command { +struct azrp_shader_image_command { /* Shader ID and fragment number */ uint8_t shader_id; uint8_t fragment_id; diff --git a/azur/src/gint/shaders/tex2d.S b/azur/src/gint/shaders/image.S similarity index 95% rename from azur/src/gint/shaders/tex2d.S rename to azur/src/gint/shaders/image.S index 67d3c87..3fa6d30 100644 --- a/azur/src/gint/shaders/tex2d.S +++ b/azur/src/gint/shaders/image.S @@ -1,4 +1,4 @@ -.global _azrp_shader_tex2d +.global _azrp_shader_image .align 4 /* Register assignment @@ -12,7 +12,7 @@ r7: Columns r8: Image pointer; (temporary) r9: Input stride */ -_azrp_shader_tex2d: +_azrp_shader_image: mov.l r8, @-r15 add #2, r5 @@ -64,19 +64,19 @@ _azrp_shader_tex2d: * r3 is the input (with stride r9, in bytes) * There are r1 rows with r7 iterations each */ -#define TEX2D_START() \ +#define START() \ ldrs 2f; \ ldre 3f; \ 1: ldrc r7 -#define TEX2D_END_NORET() \ +#define END_NORET() \ dt r1; \ add r4, r5; \ bf.s 1b; \ add r9, r3 -#define TEX2D_END() \ - TEX2D_END_NORET(); \ +#define END() \ + END_NORET(); \ mov.l @r15+, r9; \ rts; \ mov.l @r15+, r8 @@ -131,15 +131,15 @@ _RGB565.we: bf _RGB565.we_do _RGB565.we_de: - TEX2D_START() + START() 2: movs.l @r3+, x0 3: movs.l x0, @r5+ - TEX2D_END() + END() _RGB565.we_do: add #-1, r7 - TEX2D_START() + START() movs.w @r3+, x0 movs.w x0, @r5+ @@ -148,36 +148,36 @@ _RGB565.we_do: movs.w @r3+, x0 movs.w x0, @r5+ - TEX2D_END() + END() _RGB565.wo: tst r0, r5 bf _RGB565.wo_do _RGB565.wo_de: - TEX2D_START() + START() 2: movs.l @r3+, x0 3: movs.l x0, @r5+ movs.w @r3+, x0 movs.w x0, @r5+ - TEX2D_END() + END() _RGB565.wo_do: - TEX2D_START() + START() movs.w @r3+, x0 movs.w x0, @r5+ 2: movs.l @r3+, x0 3: movs.l x0, @r5+ - TEX2D_END() + END() /* Naive method for small widths and opposite source/destination parity */ _RGB565.naive: - TEX2D_START() + START() 2: movs.w @r3+, x0 3: movs.w x0, @r5+ - TEX2D_END() + END() /* [Rendering strategy for the RGB565A format] @@ -199,12 +199,12 @@ _RGB565A: lds r0, dsr - TEX2D_START() + START() 2: movs.w @r3+, x0 pcmp x0, y0 movx.w @r5, x1 dct pcopy x1, x0 3: movx.w x0, @r5+ - TEX2D_END() + END() /* [Rendering strategy for the P8_RGB565A format] @@ -283,7 +283,7 @@ _P8_RGB565A: add r4, r2 nop /* 4-alignment */ - TEX2D_START() + START() mov.b @r3+, r6 @@ -322,7 +322,7 @@ _P8_RGB565A: mov.w r12, @r13 add r2, r13 - TEX2D_END_NORET() + END_NORET() mov.l @r15+, r10 mov.l @r15+, r12 mov.l @r15+, r13 @@ -377,7 +377,7 @@ _P8_RGB565: add r4, r2 nop /* 4-alignment */ - TEX2D_START() + START() mov.b @r3+, r0 @@ -409,7 +409,7 @@ _P8_RGB565: mov.w r12, @r13 add r2, r13 - TEX2D_END_NORET() + END_NORET() mov.l @r15+, r10 mov.l @r15+, r12 mov.l @r15+, r13 @@ -480,7 +480,7 @@ _P4_RGB565A: add #-4, r5 - TEX2D_START() + START() mov.b @r3+, r6 mov r0, r10 @@ -530,9 +530,9 @@ _P4_RGB565A: add r0, r10 mov r10, r0 - /* Parallelizes with [dt r1] expanded from TEX2D_END_NORET() */ + /* Parallelizes with [dt r1] expanded from END_NORET() */ - TEX2D_END_NORET() + END_NORET() mov.l @r15+, r14 mov.l @r15+, r13 mov.l @r15+, r12 @@ -574,7 +574,7 @@ _P4_RGB565: add #-4, r5 mov #0x1e, r2 - TEX2D_START() + START() mov.b @r3+, r6 mov #-4, r10 @@ -618,9 +618,9 @@ _P4_RGB565: add r0, r10 mov r10, r0 - /* Parallelizes with [dt r1] expanded from TEX2D_END_NORET() */ + /* Parallelizes with [dt r1] expanded from END_NORET() */ - TEX2D_END_NORET() + END_NORET() mov.l @r15+, r14 mov.l @r15+, r13 mov.l @r15+, r12 diff --git a/azur/src/gint/shaders/tex2d.c b/azur/src/gint/shaders/image.c similarity index 84% rename from azur/src/gint/shaders/tex2d.c rename to azur/src/gint/shaders/image.c index eef2ffa..4d5f3b6 100644 --- a/azur/src/gint/shaders/tex2d.c +++ b/azur/src/gint/shaders/image.c @@ -1,18 +1,18 @@ #include #include -uint8_t AZRP_SHADER_TEX2D = -1; +uint8_t AZRP_SHADER_IMAGE = -1; __attribute__((constructor)) static void register_shader(void) { - extern azrp_shader_t azrp_shader_tex2d; - AZRP_SHADER_TEX2D = azrp_register_shader(azrp_shader_tex2d); + extern azrp_shader_t azrp_shader_image; + AZRP_SHADER_IMAGE = azrp_register_shader(azrp_shader_image); } -void azrp_shader_tex2d_configure(void) +void azrp_shader_image_configure(void) { - azrp_set_uniforms(AZRP_SHADER_TEX2D, (void *)(2 * azrp_width)); + azrp_set_uniforms(AZRP_SHADER_IMAGE, (void *)(2 * azrp_width)); } //--- @@ -36,11 +36,11 @@ void azrp_subimage(int x, int y, bopti_image_t const *image, prof_enter(azrp_perf_cmdgen); if(!(flags & DIMAGE_NOCLIP)) { - /* TODO: tex2d: clip function */ + /* TODO: image: clip function */ } - struct azrp_shader_tex2d_command cmd; - cmd.shader_id = AZRP_SHADER_TEX2D; + struct azrp_shader_image_command cmd; + cmd.shader_id = AZRP_SHADER_IMAGE; cmd.columns = width; cmd.image = image;