Commit ba5685a3 by John Kessenich

Semantics: Map noise*() to an operator for PureOperatorBuiltins mode.

Fixes issue #157.
parent 32cfd49b
...@@ -139,6 +139,14 @@ void foo2() ...@@ -139,6 +139,14 @@ void foo2()
bool b = any(lessThan(v4, attv4)); // tests aggregate arg to unary built-in bool b = any(lessThan(v4, attv4)); // tests aggregate arg to unary built-in
} }
void noise()
{
float f1 = noise1(1.0);
vec2 f2 = noise2(vec2(1.0));
vec3 f3 = noise3(vec3(1.0));
vec4 f4 = noise4(vec4(1.0));
}
// version 130 features // version 130 features
uniform int c; uniform int c;
......
...@@ -238,6 +238,8 @@ enum TOperator { ...@@ -238,6 +238,8 @@ enum TOperator {
EOpFtransform, EOpFtransform,
EOpNoise,
EOpEmitVertex, // geometry only EOpEmitVertex, // geometry only
EOpEndPrimitive, // geometry only EOpEndPrimitive, // geometry only
EOpEmitStreamVertex, // geometry only EOpEmitStreamVertex, // geometry only
......
...@@ -3696,6 +3696,11 @@ void IdentifyBuiltIns(int version, EProfile profile, int spv, EShLanguage langua ...@@ -3696,6 +3696,11 @@ void IdentifyBuiltIns(int version, EProfile profile, int spv, EShLanguage langua
symbolTable.relateToOperator("textureGatherOffset", EOpTextureGatherOffset); symbolTable.relateToOperator("textureGatherOffset", EOpTextureGatherOffset);
symbolTable.relateToOperator("textureGatherOffsets", EOpTextureGatherOffsets); symbolTable.relateToOperator("textureGatherOffsets", EOpTextureGatherOffsets);
symbolTable.relateToOperator("noise1", EOpNoise);
symbolTable.relateToOperator("noise2", EOpNoise);
symbolTable.relateToOperator("noise3", EOpNoise);
symbolTable.relateToOperator("noise4", EOpNoise);
if (spv == 0 && (IncludeLegacy(version, profile, spv) || (profile == EEsProfile && version == 100))) { if (spv == 0 && (IncludeLegacy(version, profile, spv) || (profile == EEsProfile && version == 100))) {
symbolTable.relateToOperator("ftransform", EOpFtransform); symbolTable.relateToOperator("ftransform", EOpFtransform);
......
...@@ -318,6 +318,8 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) ...@@ -318,6 +318,8 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node)
case EOpFindLSB: out.debug << "findLSB"; break; case EOpFindLSB: out.debug << "findLSB"; break;
case EOpFindMSB: out.debug << "findMSB"; break; case EOpFindMSB: out.debug << "findMSB"; break;
case EOpNoise: out.debug << "noise"; break;
default: out.debug.message(EPrefixError, "Bad unary op"); default: out.debug.message(EPrefixError, "Bad unary op");
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment