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

Code refactor: move gDP.rectColor initialization to gDP.cpp

This commit is contained in:
Sergey Lipskiy 2017-03-01 11:49:58 +07:00
parent 0dc261813a
commit 1c72ef16fd
3 changed files with 21 additions and 22 deletions

View File

@ -828,21 +828,13 @@ void GraphicsDrawer::drawLine(int _v0, int _v1, float _width)
gfxContext.drawLine(lineWidth, vertexBuf);
}
void GraphicsDrawer::drawRect(int _ulx, int _uly, int _lrx, int _lry, float *_pColor)
void GraphicsDrawer::drawRect(int _ulx, int _uly, int _lrx, int _lry)
{
m_texrectDrawer.draw();
if (!_canDraw())
return;
if (gDP.otherMode.cycleType == G_CYC_FILL) {
gDP.rectColor.r = _pColor[0];
gDP.rectColor.g = _pColor[1];
gDP.rectColor.b = _pColor[2];
gDP.rectColor.a = _pColor[3];
} else {
gDP.rectColor = gDPInfo::Color();
}
gSP.changed &= ~CHANGED_GEOMETRYMODE; // Don't update cull mode
if (gSP.changed || gDP.changed)
_updateStates(DrawingState::Rect);
@ -1064,12 +1056,6 @@ void GraphicsDrawer::drawTexturedRect(const TexturedRectParams & _params)
_updateTextures();
cmbInfo.updateParameters();
} else {
gDP.rectColor = gDPInfo::Color();
if (gDP.otherMode.cycleType < G_CYC_COPY) {
if (gDP.combine.mA0 == G_ACMUX_0 && gDP.combine.aA0 == G_ACMUX_SHADE)
gDP.rectColor.a = 1.0f;
}
if (_params.texrectCmd && (gSP.changed | gDP.changed) != 0)
_updateStates(DrawingState::TexRect);
gfxContext.enable(enable::CULL_FACE, false);

View File

@ -45,7 +45,7 @@ public:
void drawLine(int _v0, int _v1, float _width);
void drawRect(int _ulx, int _uly, int _lrx, int _lry, float * _pColor);
void drawRect(int _ulx, int _uly, int _lrx, int _lry);
struct TexturedRectParams
{

View File

@ -777,10 +777,10 @@ void gDPFillRectangle( s32 ulx, s32 uly, s32 lrx, s32 lry )
if (depthBuffer != dbCleared) {
frameBufferList().setBufferChanged();
f32 fillColor[4];
gDPGetFillColor(fillColor);
if (gDP.otherMode.cycleType == G_CYC_FILL) {
f32 fillColor[4];
gDPGetFillColor(fillColor);
if ((depthBuffer == dbNone) &&
(ulx == 0) &&
(uly == 0) &&
@ -788,10 +788,17 @@ void gDPFillRectangle( s32 ulx, s32 uly, s32 lrx, s32 lry )
(lry == gDP.scissor.lry)) {
frameBufferList().fillRDRAM(ulx, uly, lrx, lry);
drawer.clearColorBuffer(fillColor);
} else
drawer.drawRect(ulx, uly, lrx, lry, fillColor);
} else
drawer.drawRect(ulx, uly, lrx, lry, fillColor);
} else {
gDP.rectColor.r = fillColor[0];
gDP.rectColor.g = fillColor[1];
gDP.rectColor.b = fillColor[2];
gDP.rectColor.a = fillColor[3];
drawer.drawRect(ulx, uly, lrx, lry);
}
} else {
gDP.rectColor = gDPInfo::Color();
drawer.drawRect(ulx, uly, lrx, lry);
}
}
if (lrx == gDP.colorImage.width) {
@ -870,6 +877,12 @@ void gDPTextureRectangle(f32 ulx, f32 uly, f32 lrx, f32 lry, s32 tile, f32 s, f3
lrt = t + (lry - uly - 1) * dtdy;
}
gDP.rectColor = gDPInfo::Color();
if (gDP.otherMode.cycleType < G_CYC_COPY) {
if (gDP.combine.mA0 == G_ACMUX_0 && gDP.combine.aA0 == G_ACMUX_SHADE)
gDP.rectColor.a = 1.0f;
}
GraphicsDrawer & drawer = dwnd().getDrawer();
GraphicsDrawer::TexturedRectParams params(ulx, uly, lrx, lry, s, t, lrs, lrt, fabsf(dsdx), fabsf(dtdy),
flip, false, true, frameBufferList().getCurrent());