mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-21 11:11:37 +00:00
[gl] Fix the compressed sprites
Seems to be an ancient bug.
This commit is contained in:
parent
693225a16f
commit
56d84ef63e
1 changed files with 21 additions and 19 deletions
|
@ -105,7 +105,7 @@ R_DrawSpriteModel_f (entity_t *e)
|
||||||
{
|
{
|
||||||
float modelalpha, color[4];
|
float modelalpha, color[4];
|
||||||
vec4f_t up = {}, right = {};
|
vec4f_t up = {}, right = {};
|
||||||
vec4f_t origin, point1, point2;
|
vec4f_t origin, point;
|
||||||
msprite_t *psprite;
|
msprite_t *psprite;
|
||||||
mspriteframe_t *frame;
|
mspriteframe_t *frame;
|
||||||
|
|
||||||
|
@ -140,23 +140,23 @@ R_DrawSpriteModel_f (entity_t *e)
|
||||||
qfglColor4fv (color);
|
qfglColor4fv (color);
|
||||||
|
|
||||||
origin = Transform_GetWorldPosition (e->transform);
|
origin = Transform_GetWorldPosition (e->transform);
|
||||||
point1 = origin + frame->down * up + frame->left * right;
|
point = origin + frame->down * up + frame->left * right;
|
||||||
point2 = origin + frame->up * up + frame->left * right;
|
|
||||||
|
|
||||||
qfglTexCoord2f (0, 1);
|
qfglTexCoord2f (0, 1);
|
||||||
qfglVertex3fv (&point1[0]);
|
qfglVertex3fv (&point[0]);
|
||||||
|
|
||||||
|
point = origin + frame->up * up + frame->left * right;
|
||||||
qfglTexCoord2f (0, 0);
|
qfglTexCoord2f (0, 0);
|
||||||
qfglVertex3fv (&point2[0]);
|
qfglVertex3fv (&point[0]);
|
||||||
|
|
||||||
point2 += frame->right * right;
|
point = origin + frame->up * up + frame->right * right;
|
||||||
point1 += frame->right * right;
|
|
||||||
|
|
||||||
qfglTexCoord2f (1, 0);
|
qfglTexCoord2f (1, 0);
|
||||||
qfglVertex3fv (&point2[0]);
|
qfglVertex3fv (&point[0]);
|
||||||
|
|
||||||
|
point = origin + frame->down * up + frame->right * right;
|
||||||
qfglTexCoord2f (1, 1);
|
qfglTexCoord2f (1, 1);
|
||||||
qfglVertex3fv (&point1[0]);
|
qfglVertex3fv (&point[0]);
|
||||||
|
|
||||||
qfglEnd ();
|
qfglEnd ();
|
||||||
|
|
||||||
|
@ -169,7 +169,7 @@ R_DrawSpriteModel_VA_f (entity_t *e)
|
||||||
{
|
{
|
||||||
unsigned char modelalpha, color[4];
|
unsigned char modelalpha, color[4];
|
||||||
vec4f_t up = {}, right = {};
|
vec4f_t up = {}, right = {};
|
||||||
vec4f_t origin, point1, point2;
|
vec4f_t origin, point;
|
||||||
int i;
|
int i;
|
||||||
// unsigned int vacount;
|
// unsigned int vacount;
|
||||||
msprite_t *psprite;
|
msprite_t *psprite;
|
||||||
|
@ -212,16 +212,18 @@ R_DrawSpriteModel_VA_f (entity_t *e)
|
||||||
qfglDepthMask (GL_FALSE);
|
qfglDepthMask (GL_FALSE);
|
||||||
|
|
||||||
origin = Transform_GetWorldPosition (e->transform);
|
origin = Transform_GetWorldPosition (e->transform);
|
||||||
point1 = origin + frame->down * up + frame->left * right;
|
|
||||||
VectorCopy (point1, VA[0].vertex);
|
|
||||||
|
|
||||||
point2 = origin + frame->up * up + frame->left * right;
|
point = origin + frame->down * up + frame->left * right;
|
||||||
VectorCopy (point2, VA[1].vertex);
|
VectorCopy (point, VA[0].vertex);
|
||||||
|
|
||||||
point2 += frame->right * right;
|
point = origin + frame->up * up + frame->left * right;
|
||||||
point1 += frame->right * right;
|
VectorCopy (point, VA[1].vertex);
|
||||||
VectorCopy (point2, VA[2].vertex);
|
|
||||||
VectorCopy (point1, VA[3].vertex);
|
point = origin + frame->up * up + frame->right * right;
|
||||||
|
VectorCopy (point, VA[2].vertex);
|
||||||
|
|
||||||
|
point = origin + frame->down * up + frame->right * right;
|
||||||
|
VectorCopy (point, VA[3].vertex);
|
||||||
|
|
||||||
// VA += 4;
|
// VA += 4;
|
||||||
// vacount += 4;
|
// vacount += 4;
|
||||||
|
@ -242,7 +244,7 @@ gl_R_InitSprites (void)
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (r_init) {
|
if (r_init) {
|
||||||
if (gl_va_capable) { // 0 == gl_va_capable
|
if (gl_va_capable) {
|
||||||
gl_R_DrawSpriteModel = R_DrawSpriteModel_VA_f;
|
gl_R_DrawSpriteModel = R_DrawSpriteModel_VA_f;
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
|
Loading…
Reference in a new issue