1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-07-02 09:03:37 +00:00

Store integer scissor coordinates.

This commit is contained in:
Sergey Lipskiy 2018-08-22 21:48:30 +07:00
parent 11e87a46d8
commit fa2b0793e0
3 changed files with 16 additions and 11 deletions

View File

@ -174,11 +174,11 @@ void RDP_SetPrimDepth( u32 w0, u32 w1 )
void RDP_SetScissor( u32 w0, u32 w1 )
{
gDPSetScissor( _SHIFTR( w1, 24, 2 ), // mode
_FIXED2FLOAT( _SHIFTR( w0, 12, 12 ), 2 ), // ulx
_FIXED2FLOAT( _SHIFTR( w0, 0, 12 ), 2 ), // uly
_FIXED2FLOAT( _SHIFTR( w1, 12, 12 ), 2 ), // lrx
_FIXED2FLOAT( _SHIFTR( w1, 0, 12 ), 2 ) ); // lry
gDPSetScissor( _SHIFTR( w1, 24, 2 ), // mode
_SHIFTR( w0, 12, 12 ), // ulx
_SHIFTR( w0, 0, 12 ), // uly
_SHIFTR( w1, 12, 12 ), // lrx
_SHIFTR( w1, 0, 12 ) ); // lry
}
void RDP_SetConvert( u32 w0, u32 w1 )

View File

@ -667,13 +667,17 @@ void gDPLoadTLUT( u32 tile, u32 uls, u32 ult, u32 lrs, u32 lrt )
tile, gDP.tiles[tile].uls, gDP.tiles[tile].ult, gDP.tiles[tile].lrs, gDP.tiles[tile].lrt );
}
void gDPSetScissor( u32 mode, f32 ulx, f32 uly, f32 lrx, f32 lry )
void gDPSetScissor(u32 mode, s16 xh, s16 yh, s16 xl, s16 yl)
{
gDP.scissor.mode = mode;
gDP.scissor.ulx = ulx;
gDP.scissor.uly = uly;
gDP.scissor.lrx = lrx;
gDP.scissor.lry = lry;
gDP.scissor.xh = xh;
gDP.scissor.yh = yh;
gDP.scissor.xl = xl;
gDP.scissor.yl = yl;
gDP.scissor.ulx = _FIXED2FLOAT(xh, 2);
gDP.scissor.uly = _FIXED2FLOAT(yh, 2);
gDP.scissor.lrx = _FIXED2FLOAT(xl, 2);
gDP.scissor.lry = _FIXED2FLOAT(yl, 2);
gDP.changed |= CHANGED_SCISSOR | CHANGED_REJECT_BOX;

View File

@ -116,6 +116,7 @@ struct gDPScissor
{
u32 mode;
f32 ulx, uly, lrx, lry;
s16 xh, yh, xl, yl;
};
struct gDPInfo
@ -275,7 +276,7 @@ void gDPSetTileSize( u32 tile, u32 uls, u32 ult, u32 lrs, u32 lrt );
void gDPLoadTile( u32 tile, u32 uls, u32 ult, u32 lrs, u32 lrt );
void gDPLoadBlock( u32 tile, u32 uls, u32 ult, u32 lrs, u32 dxt );
void gDPLoadTLUT( u32 tile, u32 uls, u32 ult, u32 lrs, u32 lrt );
void gDPSetScissor( u32 mode, f32 ulx, f32 uly, f32 lrx, f32 lry );
void gDPSetScissor( u32 mode, s16 xh, s16 yh, s16 xl, s16 yl);
void gDPFillRectangle( s32 ulx, s32 uly, s32 lrx, s32 lry );
void gDPSetConvert( s32 k0, s32 k1, s32 k2, s32 k3, s32 k4, s32 k5 );
void gDPSetKeyR( u32 cR, u32 sR, u32 wR );