forked from Lephenixnoir/Azur
azur: rename tex2d shader to image
This commit is contained in:
parent
52a66402aa
commit
c5cdb2b885
|
@ -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})
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
|
@ -1,18 +1,18 @@
|
|||
#include <azur/gint/render.h>
|
||||
#include <gint/defs/util.h>
|
||||
|
||||
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;
|
||||
|
Loading…
Reference in New Issue