Improved Rectangle drawing in the RDP core. [Harmony]

This commit is contained in:
Ryan Holtz 2010-04-03 23:08:53 +00:00
parent 5a1cca0de5
commit 269a16687f
3 changed files with 28 additions and 28 deletions

View File

@ -1758,19 +1758,19 @@ void N64::RDP::Processor::CmdTriangleSTZ(UINT32 w1, UINT32 w2)
void N64::RDP::Rectangle::InitFromBuffer(UINT32 *data)
{
m_xl = ((data[0] >> 12) & 0xfff) >> 2;
m_yl = ((data[0] >> 0) & 0xfff) >> 2;
m_xh = ((data[1] >> 12) & 0xfff) >> 2;
m_yh = ((data[1] >> 0) & 0xfff) >> 2;
m_xl = (data[0] >> 12) & 0xfff;
m_yl = (data[0] >> 0) & 0xfff;
m_xh = (data[1] >> 12) & 0xfff;
m_yh = (data[1] >> 0) & 0xfff;
}
void N64::RDP::TexRectangle::InitFromBuffer(UINT32 *data)
{
m_tilenum = (data[1] >> 24) & 0x7;
m_xl = ((data[0] >> 12) & 0xfff) >> 2;
m_yl = ((data[0] >> 0) & 0xfff) >> 2;
m_xh = ((data[1] >> 12) & 0xfff) >> 2;
m_yh = ((data[1] >> 0) & 0xfff) >> 2;
m_xl = (data[0] >> 12) & 0xfff;
m_yl = (data[0] >> 0) & 0xfff;
m_xh = (data[1] >> 12) & 0xfff;
m_yh = (data[1] >> 0) & 0xfff;
m_s = (data[2] >> 16) & 0xffff;
m_t = (data[2] >> 0) & 0xffff;
m_dsdx = (data[3] >> 16) & 0xffff;

View File

@ -49,10 +49,10 @@ void Rectangle::Draw1Cycle()
UINT8* hb = &m_rdp->GetHiddenBits()[m_misc_state->m_fb_address >> 1];
int index, i, j;
int x1 = m_xh;
int x2 = m_xl;
int y1 = m_yh;
int y2 = m_yl;
int x1 = m_xh >> 2;
int x2 = m_xl >> 2;
int y1 = m_yh >> 2;
int y2 = m_yl >> 2;
UINT16 fill_color1 = (m_rdp->GetFillColor32() >> 16) & 0xffff;
UINT16 fill_color2 = (m_rdp->GetFillColor32() >> 0) & 0xffff;
int fill_cvg1 = (fill_color1 & 1) ? 8 : 1;
@ -196,10 +196,10 @@ void Rectangle::Draw2Cycle()
UINT8* hb = &m_rdp->GetHiddenBits()[m_misc_state->m_fb_address >> 1];
int index, i, j;
int x1 = m_xh;
int x2 = m_xl;
int y1 = m_yh;
int y2 = m_yl;
int x1 = m_xh >> 2;
int x2 = m_xl >> 2;
int y1 = m_yh >> 2;
int y2 = m_yl >> 2;
UINT16 fill_color1;
UINT16 fill_color2;
int fill_cvg1;
@ -410,10 +410,10 @@ void Rectangle::DrawFill()
UINT8* hb = &m_rdp->GetHiddenBits()[m_misc_state->m_fb_address >> 1];
int index, i, j;
int x1 = m_xh;
int x2 = m_xl;
int y1 = m_yh;
int y2 = m_yl;
int x1 = m_xh >> 2;
int x2 = m_xl >> 2;
int y1 = m_yh >> 2;
int y2 = m_yl >> 2;
UINT16 fill_color1;
UINT16 fill_color2;
int fill_cvg1;

View File

@ -51,10 +51,10 @@ void TexRectangle::DrawDefault()
UINT32 tilenum2 = 0;
N64::RDP::Tile *tex_tile2 = NULL;
int x1 = m_xh;
int x2 = m_xl;
int y1 = m_yh;
int y2 = m_yl;
int x1 = m_xh >> 2;
int x2 = m_xl >> 2;
int y1 = m_yh >> 2;
int y2 = m_yl >> 2;
if (x2 <= x1)
{
@ -366,10 +366,10 @@ void TexRectangle::DrawCopy()
N64::RDP::Tile *tex_tile = &m_rdp->GetTiles()[m_tilenum];
int x1 = m_xh;
int x2 = m_xl;
int y1 = m_yh;
int y2 = m_yl;
int x1 = m_xh >> 2;
int x2 = m_xl >> 2;
int y1 = m_yh >> 2;
int y2 = m_yl >> 2;
if (x2 <= x1)
{