[iortcw] 138/152: All: Rend2: Fix vertex color types in tr_backend

Simon McVittie smcv at debian.org
Fri Sep 8 10:40:26 UTC 2017


This is an automated email from the git hooks/post-receive script.

smcv pushed a commit to annotated tag 1.5a
in repository iortcw.

commit 40963cb343a31904da284602eb8b4de8f34444a4
Author: MAN-AT-ARMS <M4N4T4RMS at gmail.com>
Date:   Wed Oct 19 20:01:53 2016 -0400

    All: Rend2: Fix vertex color types in tr_backend
---
 MP/code/rend2/tr_backend.c | 21 ++++++++++++---------
 SP/code/rend2/tr_backend.c | 45 ++++++++++++++++++++++++---------------------
 2 files changed, 36 insertions(+), 30 deletions(-)

diff --git a/MP/code/rend2/tr_backend.c b/MP/code/rend2/tr_backend.c
index aade234..2e196ee 100644
--- a/MP/code/rend2/tr_backend.c
+++ b/MP/code/rend2/tr_backend.c
@@ -1147,16 +1147,19 @@ const void *RB_StretchPicGradient( const void *data ) {
 	tess.indexes[ numIndexes + 4 ] = numVerts + 0;
 	tess.indexes[ numIndexes + 5 ] = numVerts + 1;
 
-//	*(int *)tess.color[ numVerts ] =
-//		*(int *)tess.color[ numVerts + 1 ] =
-//		*(int *)tess.color[ numVerts + 2 ] =
-//		*(int *)tess.color[ numVerts + 3 ] = *(int *)backEnd.color2D;
-
-	*(int *)tess.color[ numVerts ] =
-		*(int *)tess.color[ numVerts + 1 ] = *(int *)backEnd.color2D;
+	{
+		uint16_t color[4];
+ 
+		VectorScale4(backEnd.color2D, 257, color);
+ 
+		VectorCopy4(color, tess.color[ numVerts ]);
+		VectorCopy4(color, tess.color[ numVerts + 1]);
+		
+		VectorScale4(cmd->gradientColor, 257, color);
 
-	*(int *)tess.color[ numVerts + 2 ] =
-		*(int *)tess.color[ numVerts + 3 ] = *(int *)cmd->gradientColor;
+		VectorCopy4(color, tess.color[ numVerts + 2]);
+		VectorCopy4(color, tess.color[ numVerts + 3 ]);
+	}
 
 	tess.xyz[ numVerts ][0] = cmd->x;
 	tess.xyz[ numVerts ][1] = cmd->y;
diff --git a/SP/code/rend2/tr_backend.c b/SP/code/rend2/tr_backend.c
index 764bf45..e3811f7 100644
--- a/SP/code/rend2/tr_backend.c
+++ b/SP/code/rend2/tr_backend.c
@@ -703,39 +703,39 @@ hitCheckDone:
 }
 
 void RB_ZombieFXShowFleshHits( trZombieFleshHitverts_t *fleshHitVerts, int oldNumVerts, int numSurfVerts ) {
-	byte *vertColors;
+	uint16_t *vertColors;
 	unsigned short *vertHits;
 	int i;
 
-	vertColors = (byte *)tess.color[oldNumVerts];
+	vertColors = tess.color[oldNumVerts];
 	vertHits = fleshHitVerts->vertHits;
 
 	// for each hit entry, adjust that verts alpha component
 	for ( i = 0; i < fleshHitVerts->numHits; i++, vertHits++ ) {
-		if ( vertColors[( *vertHits ) * 4 + 3] < ZOMBIEFX_PERHIT_TAKEALPHA ) {
+		if ( vertColors[( *vertHits ) * 4 + 3] < ZOMBIEFX_PERHIT_TAKEALPHA * 257 ) {
 			vertColors[( *vertHits ) * 4 + 3] = 0;
 		} else {
-			vertColors[( *vertHits ) * 4 + 3] -= ZOMBIEFX_PERHIT_TAKEALPHA;
+			vertColors[( *vertHits ) * 4 + 3] -= ZOMBIEFX_PERHIT_TAKEALPHA * 257;
 		}
 	}
 }
 
 void RB_ZombieFXDecompose( int oldNumVerts, int numSurfVerts, float deltaTimeScale ) {
-	byte *vertColors;
+	uint16_t *vertColors;
 	float   *xyz;
 	int16_t *norm;
 	vec3_t fNorm;
 	int i;
 	float alpha;
 
-	vertColors = (byte *)tess.color[oldNumVerts];
+	vertColors = tess.color[oldNumVerts];
 	xyz = tess.xyz[oldNumVerts];
 	norm = tess.normal[oldNumVerts];
 
 	for ( i = 0; i < numSurfVerts; i++, vertColors += 4, xyz += 4, norm += 4 ) {
-		alpha = 255.0 * ( (float)( 1 + i % 3 ) / 3.0 ) * deltaTimeScale * 2;
-		if ( alpha > 255.0 ) {
-			alpha = 255.0;
+		alpha = 65535.0 * ( (float)( 1 + i % 3 ) / 3.0 ) * deltaTimeScale * 2;
+		if ( alpha > 65535.0 ) {
+			alpha = 65535.0;
 		}
 		if ( (float)vertColors[3] - alpha < 0 ) {
 			vertColors[3] = 0;
@@ -751,13 +751,13 @@ void RB_ZombieFXDecompose( int oldNumVerts, int numSurfVerts, float deltaTimeSca
 }
 
 void RB_ZombieFXFullAlpha( int oldNumVerts, int numSurfVerts ) {
-	byte *vertColors;
+	uint16_t *vertColors;
 	int i;
 
-	vertColors = (byte *)tess.color[oldNumVerts];
+	vertColors = tess.color[oldNumVerts];
 
 	for ( i = 0; i < numSurfVerts; i++, vertColors += 4 ) {
-		vertColors[3] = 255;
+		vertColors[3] = 65535;
 	}
 }
 
@@ -1397,16 +1397,19 @@ const void *RB_StretchPicGradient( const void *data ) {
 	tess.indexes[ numIndexes + 4 ] = numVerts + 0;
 	tess.indexes[ numIndexes + 5 ] = numVerts + 1;
 
-//	*(int *)tess.color[ numVerts ] =
-//		*(int *)tess.color[ numVerts + 1 ] =
-//		*(int *)tess.color[ numVerts + 2 ] =
-//		*(int *)tess.color[ numVerts + 3 ] = *(int *)backEnd.color2D;
-
-	*(int *)tess.color[ numVerts ] =
-		*(int *)tess.color[ numVerts + 1 ] = *(int *)backEnd.color2D;
+	{
+		uint16_t color[4];
+ 
+		VectorScale4(backEnd.color2D, 257, color);
+ 
+		VectorCopy4(color, tess.color[ numVerts ]);
+		VectorCopy4(color, tess.color[ numVerts + 1]);
+		
+		VectorScale4(cmd->gradientColor, 257, color);
 
-	*(int *)tess.color[ numVerts + 2 ] =
-		*(int *)tess.color[ numVerts + 3 ] = *(int *)cmd->gradientColor;
+		VectorCopy4(color, tess.color[ numVerts + 2]);
+		VectorCopy4(color, tess.color[ numVerts + 3 ]);
+	}
 
 	tess.xyz[ numVerts ][0] = cmd->x;
 	tess.xyz[ numVerts ][1] = cmd->y;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/iortcw.git



More information about the Pkg-games-commits mailing list