added WINDOW_x registers to prepare window clipping
This commit is contained in:
parent
07a8b0f032
commit
87de52a0f8
|
@ -557,6 +557,26 @@ void GPU_setMOSAIC(GPU *gpu, u16 v)
|
||||||
gpu->MOSAIC = v ;
|
gpu->MOSAIC = v ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GPU_setWINDOW_XDIM(GPU *gpu, u16 v, u8 num)
|
||||||
|
{
|
||||||
|
gpu->WINDOW_XDIM[num] = v ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GPU_setWINDOW_YDIM(GPU *gpu, u16 v, u8 num)
|
||||||
|
{
|
||||||
|
gpu->WINDOW_YDIM[num] = v ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GPU_setWINDOW_INCNT(GPU *gpu, u16 v)
|
||||||
|
{
|
||||||
|
gpu->WINDOW_INCNT.val = v ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GPU_setWINDOW_OUTCNT(GPU *gpu, u16 v)
|
||||||
|
{
|
||||||
|
gpu->WINDOW_OUTCNT.val = v ;
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef min
|
#ifndef min
|
||||||
#define min(a,b) (((a)<(b))?(a):(b))
|
#define min(a,b) (((a)<(b))?(a):(b))
|
||||||
#endif
|
#endif
|
||||||
|
@ -702,7 +722,7 @@ INLINE void renderline_textBG(GPU * gpu, u8 num, u8 * DST, u16 X, u16 Y, u16 LG)
|
||||||
line += 3 - ((xoff&7)>>1);
|
line += 3 - ((xoff&7)>>1);
|
||||||
for(; x < xfin; ) {
|
for(; x < xfin; ) {
|
||||||
// XXX
|
// XXX
|
||||||
if ((pt % mw) == 0) { /* only update the color we draw every n mw pixels */
|
if ((pt % mw) == 0) { /* only update the color we draw every mw pixels */
|
||||||
if (pt & 1) {
|
if (pt & 1) {
|
||||||
save = (*line) & 0xF ;
|
save = (*line) & 0xF ;
|
||||||
} else {
|
} else {
|
||||||
|
@ -725,7 +745,7 @@ INLINE void renderline_textBG(GPU * gpu, u8 num, u8 * DST, u16 X, u16 Y, u16 LG)
|
||||||
u8 pt = 0 ;
|
u8 pt = 0 ;
|
||||||
u8 save = 0;
|
u8 save = 0;
|
||||||
line += ((xoff&7)>>1);
|
line += ((xoff&7)>>1);
|
||||||
|
|
||||||
for(; x < xfin; ) {
|
for(; x < xfin; ) {
|
||||||
// XXX
|
// XXX
|
||||||
if (!(pt % mw)) { /* only update the color we draw every n mw pixels */
|
if (!(pt % mw)) { /* only update the color we draw every n mw pixels */
|
||||||
|
|
|
@ -121,6 +121,28 @@ typedef struct
|
||||||
unsigned attr3:16;
|
unsigned attr3:16;
|
||||||
} _OAM_;
|
} _OAM_;
|
||||||
|
|
||||||
|
typedef union windowcnt_t
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
/* 0*/ unsigned WIN0_BG0_Enable:1;
|
||||||
|
/* 1*/ unsigned WIN0_BG1_Enable:1;
|
||||||
|
/* 2*/ unsigned WIN0_BG2_Enable:1;
|
||||||
|
/* 3*/ unsigned WIN0_BG3_Enable:1;
|
||||||
|
/* 4*/ unsigned WIN0_OBJ_Enabble:1;
|
||||||
|
/* 5*/ unsigned WIN0_Effect_Enable:1;
|
||||||
|
/* 6*/ unsigned :2;
|
||||||
|
/* 8*/ unsigned WIN1_BG0_Enable:1;
|
||||||
|
/* 9*/ unsigned WIN1_BG1_Enable:1;
|
||||||
|
/*10*/ unsigned WIN1_BG2_Enable:1;
|
||||||
|
/*11*/ unsigned WIN1_BG3_Enable:1;
|
||||||
|
/*12*/ unsigned WIN1_OBJ_Enabble:1;
|
||||||
|
/*13*/ unsigned WIN1_Effect_Enable:1;
|
||||||
|
/*14*/ unsigned :2;
|
||||||
|
} bitfield ;
|
||||||
|
unsigned short val ;
|
||||||
|
} windowcnt_t ;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
u16 attr0;
|
u16 attr0;
|
||||||
|
@ -185,7 +207,12 @@ struct _GPU
|
||||||
u16 BLDALPHA ;
|
u16 BLDALPHA ;
|
||||||
u16 BLDY ;
|
u16 BLDY ;
|
||||||
u16 MOSAIC ;
|
u16 MOSAIC ;
|
||||||
|
|
||||||
|
u16 WINDOW_XDIM[2] ;
|
||||||
|
u16 WINDOW_YDIM[2] ;
|
||||||
|
windowcnt_t WINDOW_INCNT ;
|
||||||
|
windowcnt_t WINDOW_OUTCNT ;
|
||||||
|
|
||||||
void (*spriteRender)(GPU * gpu, u16 l, u8 * dst, u8 * prioTab);
|
void (*spriteRender)(GPU * gpu, u16 l, u8 * dst, u8 * prioTab);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -328,6 +355,11 @@ void GPU_setBLDALPHA(GPU *gpu, u16 v) ;
|
||||||
void GPU_setBLDY(GPU *gpu, u16 v) ;
|
void GPU_setBLDY(GPU *gpu, u16 v) ;
|
||||||
void GPU_setMOSAIC(GPU *gpu, u16 v) ;
|
void GPU_setMOSAIC(GPU *gpu, u16 v) ;
|
||||||
|
|
||||||
|
void GPU_setWINDOW_XDIM(GPU *gpu, u16 v, u8 num) ;
|
||||||
|
void GPU_setWINDOW_YDIM(GPU *gpu, u16 v, u8 num) ;
|
||||||
|
void GPU_setWINDOW_INCNT(GPU *gpu, u16 v) ;
|
||||||
|
void GPU_setWINDOW_INCNT(GPU *gpu, u16 v) ;
|
||||||
|
|
||||||
void GPU_remove(GPU *, u8 num);
|
void GPU_remove(GPU *, u8 num);
|
||||||
void GPU_addBack(GPU *, u8 num);
|
void GPU_addBack(GPU *, u8 num);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue