Provide our own dot functions in GLSL since GLSL doesn't provide integer versions of this function, even though AMD and Nvidia provide their own.
This commit is contained in:
parent
bed442198f
commit
22c989de9a
|
@ -257,6 +257,19 @@ static inline void GeneratePixelShader(T& out, DSTALPHA_MODE dstAlphaMode, API_T
|
||||||
uid_data.genMode_numtevstages = bpmem.genMode.numtevstages;
|
uid_data.genMode_numtevstages = bpmem.genMode.numtevstages;
|
||||||
uid_data.genMode_numtexgens = bpmem.genMode.numtexgens;
|
uid_data.genMode_numtexgens = bpmem.genMode.numtexgens;
|
||||||
|
|
||||||
|
// dot product for integer vectors
|
||||||
|
out.Write( "int idot(int3 x, int3 y)\n"
|
||||||
|
"{\n"
|
||||||
|
"\tint3 tmp = x * y;\n"
|
||||||
|
"\treturn tmp.x + tmp.y + tmp.z;\n"
|
||||||
|
"}\n");
|
||||||
|
|
||||||
|
out.Write( "int idot(int4 x, int4 y)\n"
|
||||||
|
"{\n"
|
||||||
|
"\tint4 tmp = x * y;\n"
|
||||||
|
"\treturn tmp.x + tmp.y + tmp.z + tmp.w;\n"
|
||||||
|
"}\n");
|
||||||
|
|
||||||
if (ApiType == API_OPENGL)
|
if (ApiType == API_OPENGL)
|
||||||
{
|
{
|
||||||
// Fmod implementation gleaned from Nvidia
|
// Fmod implementation gleaned from Nvidia
|
||||||
|
|
Loading…
Reference in New Issue