mirror of
https://github.com/blawar/GLideN64.git
synced 2024-07-07 03:13:49 +00:00
Fix texrect texture coordinates calculation for negative dsdx or dtdy.
Fixed 2D in Rocket robot on wheels, #471
This commit is contained in:
parent
84611502c6
commit
f7ee508c94
|
@ -1104,10 +1104,20 @@ void OGLRender::drawTexturedRect(const TexturedRectParams & _params)
|
|||
f32 shiftScaleS = 1.0f;
|
||||
f32 shiftScaleT = 1.0f;
|
||||
getTextureShiftScale(t, cache, shiftScaleS, shiftScaleT);
|
||||
texST[t].s0 = _params.uls * shiftScaleS - gSP.textureTile[t]->fuls;
|
||||
texST[t].t0 = _params.ult * shiftScaleT - gSP.textureTile[t]->fult;
|
||||
texST[t].s1 = (_params.lrs + 1.0f) * shiftScaleS - gSP.textureTile[t]->fuls;
|
||||
texST[t].t1 = (_params.lrt + 1.0f) * shiftScaleT - gSP.textureTile[t]->fult;
|
||||
if (_params.uls < _params.lrs) {
|
||||
texST[t].s0 = _params.uls * shiftScaleS - gSP.textureTile[t]->fuls;
|
||||
texST[t].s1 = (_params.lrs + 1.0f) * shiftScaleS - gSP.textureTile[t]->fuls;
|
||||
} else {
|
||||
texST[t].s0 = (_params.uls + 1.0f) * shiftScaleS - gSP.textureTile[t]->fuls;
|
||||
texST[t].s1 = _params.lrs * shiftScaleS - gSP.textureTile[t]->fuls;
|
||||
}
|
||||
if (_params.ult < _params.lrt) {
|
||||
texST[t].t0 = _params.ult * shiftScaleT - gSP.textureTile[t]->fult;
|
||||
texST[t].t1 = (_params.lrt + 1.0f) * shiftScaleT - gSP.textureTile[t]->fult;
|
||||
} else {
|
||||
texST[t].t0 = (_params.ult + 1.0f) * shiftScaleT - gSP.textureTile[t]->fult;
|
||||
texST[t].t1 = _params.lrt * shiftScaleT - gSP.textureTile[t]->fult;
|
||||
}
|
||||
|
||||
if (cache.current[t]->frameBufferTexture) {
|
||||
texST[t].s0 = cache.current[t]->offsetS + texST[t].s0;
|
||||
|
|
Loading…
Reference in New Issue
Block a user