mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-11-22 04:21:23 +00:00
OpenGL Flipped Patch Drawing
V_FLIP in OpenGL.
This commit is contained in:
parent
bb6688107b
commit
103258e364
1 changed files with 28 additions and 8 deletions
|
@ -179,17 +179,37 @@ void HWR_DrawFixedPatch(GLPatch_t *gpatch, fixed_t x, fixed_t y, fixed_t pscale,
|
||||||
if (option & V_NOSCALESTART)
|
if (option & V_NOSCALESTART)
|
||||||
sdupx = sdupy = 2.0f;
|
sdupx = sdupy = 2.0f;
|
||||||
|
|
||||||
|
if (option & V_FLIP) // Need to flip both this and sow
|
||||||
|
{
|
||||||
|
v[0].x = v[3].x = (cx*sdupx-(gpatch->width-gpatch->leftoffset)*pdupx)/vid.width - 1;
|
||||||
|
v[2].x = v[1].x = (cx*sdupx+gpatch->leftoffset*pdupx)/vid.width - 1;
|
||||||
|
v[0].y = v[1].y = 1-(cy*sdupy-gpatch->topoffset*pdupy)/vid.height;
|
||||||
|
v[2].y = v[3].y = 1-(cy*sdupy+(gpatch->height-gpatch->topoffset)*pdupy)/vid.height;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
v[0].x = v[3].x = (cx*sdupx-gpatch->leftoffset*pdupx)/vid.width - 1;
|
v[0].x = v[3].x = (cx*sdupx-gpatch->leftoffset*pdupx)/vid.width - 1;
|
||||||
v[2].x = v[1].x = (cx*sdupx+(gpatch->width-gpatch->leftoffset)*pdupx)/vid.width - 1;
|
v[2].x = v[1].x = (cx*sdupx+(gpatch->width-gpatch->leftoffset)*pdupx)/vid.width - 1;
|
||||||
v[0].y = v[1].y = 1-(cy*sdupy-gpatch->topoffset*pdupy)/vid.height;
|
v[0].y = v[1].y = 1-(cy*sdupy-gpatch->topoffset*pdupy)/vid.height;
|
||||||
v[2].y = v[3].y = 1-(cy*sdupy+(gpatch->height-gpatch->topoffset)*pdupy)/vid.height;
|
v[2].y = v[3].y = 1-(cy*sdupy+(gpatch->height-gpatch->topoffset)*pdupy)/vid.height;
|
||||||
|
}
|
||||||
|
|
||||||
v[0].z = v[1].z = v[2].z = v[3].z = 1.0f;
|
v[0].z = v[1].z = v[2].z = v[3].z = 1.0f;
|
||||||
|
|
||||||
|
if (option & V_FLIP)
|
||||||
|
{
|
||||||
|
v[0].sow = v[3].sow = gpatch->max_s;
|
||||||
|
v[2].sow = v[1].sow = 0.0f;
|
||||||
|
v[0].tow = v[1].tow = 0.0f;
|
||||||
|
v[2].tow = v[3].tow = gpatch->max_t;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
v[0].sow = v[3].sow = 0.0f;
|
v[0].sow = v[3].sow = 0.0f;
|
||||||
v[2].sow = v[1].sow = gpatch->max_s;
|
v[2].sow = v[1].sow = gpatch->max_s;
|
||||||
v[0].tow = v[1].tow = 0.0f;
|
v[0].tow = v[1].tow = 0.0f;
|
||||||
v[2].tow = v[3].tow = gpatch->max_t;
|
v[2].tow = v[3].tow = gpatch->max_t;
|
||||||
|
}
|
||||||
|
|
||||||
flags = BLENDMODE|PF_Clip|PF_NoZClip|PF_NoDepthTest;
|
flags = BLENDMODE|PF_Clip|PF_NoZClip|PF_NoDepthTest;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue