@@ -116,6 +116,15 @@ static inline void floatToSnorm16( const vec4_t in, i16vec4_t out )
116116 out[ 3 ] = floatToSnorm16 ( in[ 3 ] );
117117}
118118
119+ static inline void floatToSnorm16_fast ( const vec4_t in, i16vec4_t out )
120+ {
121+ // Just truncate them all.
122+ out[ 0 ] = in[ 0 ] * 32767 .0f ;
123+ out[ 1 ] = in[ 1 ] * 32767 .0f ;
124+ out[ 2 ] = in[ 2 ] * 32767 .0f ;
125+ out[ 3 ] = in[ 3 ] * 32767 .0f ;
126+ }
127+
119128static inline void snorm16ToFloat ( const i16vec4_t in, vec4_t out )
120129{
121130 out[ 0 ] = snorm16ToFloat ( in[ 0 ] );
@@ -2868,7 +2877,13 @@ inline bool checkGLErrors()
28682877 * minimal error.
28692878 */
28702879 void R_TBNtoQtangents ( const vec3_t tangent, const vec3_t binormal,
2871- const vec3_t normal, i16vec4_t qtangent );
2880+ const vec3_t normal, i16vec4_t qtangent, bool fast = false );
2881+
2882+ inline void R_TBNtoQtangentsFast ( const vec3_t tangent, const vec3_t binormal,
2883+ const vec3_t normal, i16vec4_t qtangent )
2884+ {
2885+ R_TBNtoQtangents ( tangent, binormal, normal, qtangent, true );
2886+ }
28722887
28732888 void R_QtangentsToTBN ( const i16vec4_t qtangent, vec3_t tangent,
28742889 vec3_t binormal, vec3_t normal );
0 commit comments