45 lines
1.5 KiB
C
45 lines
1.5 KiB
C
//---
|
|
// gint:render-fx:bopti-asm - Assembler drawing routines for bopti
|
|
//---
|
|
|
|
#ifndef GINT_RENDERFX_BOPTIASM
|
|
#define GINT_RENDERFX_BOPTIASM
|
|
|
|
/* pair_t: A pair of consecutive VRAM longwords */
|
|
typedef struct {
|
|
uint32_t l;
|
|
uint32_t r;
|
|
} pair_t;
|
|
|
|
/* quadr_t: Two pairs for light and gray VRAMs */
|
|
typedef struct {
|
|
uint32_t l1;
|
|
uint32_t r1;
|
|
uint32_t l2;
|
|
uint32_t r2;
|
|
} quadr_t;
|
|
|
|
/* Signature of mono rendering functions */
|
|
typedef pair_t asm_mono_t(pair_t p, void **layer, uint32_t *masks, int x);
|
|
/* Signature of gray rendering functions */
|
|
typedef quadr_t asm_gray_t(quadr_t q, void **layer, uint32_t *masks, int x);
|
|
|
|
/* Each of the following rendering functions:
|
|
1. Takes VRAM data for two longword positions of the screen.
|
|
2. Reads data for one longword position of the image from *layer. This
|
|
consists in n longwords where n is the number of layers in the image.
|
|
3. Increments *layer by 4*n.
|
|
4. Shifts the image data and apply it to the VRAM positions in accordance
|
|
with the two masks given in the masks argument. */
|
|
|
|
/* bopti_asm_mono(): Rendering function for the "mono" profile */
|
|
extern asm_mono_t bopti_asm_mono;
|
|
/* bopti_asm_mono_alpha(): Rendering function for the "mono alpha" profile */
|
|
extern asm_mono_t bopti_asm_mono_alpha;
|
|
/* bopti_asm_gray(): Rendering function for the "gray" profile */
|
|
extern asm_gray_t bopti_asm_gray;
|
|
/* bpoti_asm_gray_alpha(): Rendering function for the "gray alpha" profile */
|
|
extern asm_gray_t bopti_asm_gray_alpha;
|
|
|
|
#endif /* GINT_RENDERFX_BOPTIASM */
|