summaryrefslogtreecommitdiffstats
path: root/gfx/angle/src/compiler/translator/TextureFunctionHLSL.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/angle/src/compiler/translator/TextureFunctionHLSL.cpp')
-rwxr-xr-xgfx/angle/src/compiler/translator/TextureFunctionHLSL.cpp55
1 files changed, 49 insertions, 6 deletions
diff --git a/gfx/angle/src/compiler/translator/TextureFunctionHLSL.cpp b/gfx/angle/src/compiler/translator/TextureFunctionHLSL.cpp
index 33d098531..6580f258d 100755
--- a/gfx/angle/src/compiler/translator/TextureFunctionHLSL.cpp
+++ b/gfx/angle/src/compiler/translator/TextureFunctionHLSL.cpp
@@ -393,22 +393,41 @@ void OutputTextureFunctionArgumentList(TInfoSinkBase &out,
{
switch (textureFunction.sampler)
{
+ case EbtSampler2D:
+ out << ", int2 offset";
+ break;
case EbtSampler3D:
- case EbtISampler3D:
- case EbtUSampler3D:
out << ", int3 offset";
break;
- case EbtSampler2D:
case EbtSampler2DArray:
+ out << ", int2 offset";
+ break;
case EbtISampler2D:
+ out << ", int2 offset";
+ break;
+ case EbtISampler3D:
+ out << ", int3 offset";
+ break;
case EbtISampler2DArray:
+ out << ", int2 offset";
+ break;
case EbtUSampler2D:
+ out << ", int2 offset";
+ break;
+ case EbtUSampler3D:
+ out << ", int3 offset";
+ break;
case EbtUSampler2DArray:
+ out << ", int2 offset";
+ break;
case EbtSampler2DShadow:
+ out << ", int2 offset";
+ break;
case EbtSampler2DArrayShadow:
- case EbtSamplerExternalOES:
out << ", int2 offset";
break;
+ case EbtSamplerExternalOES:
+ out << ", int2 offset";
default:
UNREACHABLE();
}
@@ -1094,8 +1113,32 @@ const char *TextureFunctionHLSL::TextureFunction::getReturnType() const
bool TextureFunctionHLSL::TextureFunction::operator<(const TextureFunction &rhs) const
{
- return std::tie(sampler, coords, proj, offset, method) <
- std::tie(rhs.sampler, rhs.coords, rhs.proj, rhs.offset, rhs.method);
+ if (sampler < rhs.sampler)
+ return true;
+ if (sampler > rhs.sampler)
+ return false;
+
+ if (coords < rhs.coords)
+ return true;
+ if (coords > rhs.coords)
+ return false;
+
+ if (!proj && rhs.proj)
+ return true;
+ if (proj && !rhs.proj)
+ return false;
+
+ if (!offset && rhs.offset)
+ return true;
+ if (offset && !rhs.offset)
+ return false;
+
+ if (method < rhs.method)
+ return true;
+ if (method > rhs.method)
+ return false;
+
+ return false;
}
TString TextureFunctionHLSL::useTextureFunction(const TString &name,