Properly declare versions for precision qualifiers, in/out/attribute/varying.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@20083 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
@@ -88,7 +88,7 @@ void TParseContext::requireStage(int line, EShLanguageMask languageMask, const c
|
||||
|
||||
//
|
||||
// Within a profile, if a feature requires a version level or extension, use
|
||||
// ProfileRequires(). This only checks if the current profile matches
|
||||
// ProfileRequires(). This only checks if the current profile matches
|
||||
// the passed-in profile.
|
||||
//
|
||||
|
||||
@@ -137,7 +137,8 @@ void TParseContext::checkDeprecated(int line, EProfile callingProfile, int depVe
|
||||
error(line, "deprecated, may be removed in future release", featureDesc, "");
|
||||
recover();
|
||||
} else {
|
||||
infoSink.info.message(EPrefixWarning, (TString(featureDesc) + " being used, but may be removed in future release").c_str(), line);
|
||||
infoSink.info.message(EPrefixWarning, (TString(featureDesc) + " deprecated in version " +
|
||||
String(depVersion) + "; may be removed in future release").c_str(), line);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1121,6 +1121,7 @@ declaration
|
||||
$$ = $1.intermAggregate;
|
||||
}
|
||||
| PRECISION precision_qualifier type_specifier SEMICOLON {
|
||||
parseContext.profileRequires($1.line, ENoProfile, 130, 0, "precision statement");
|
||||
$$ = 0;
|
||||
}
|
||||
| type_qualifier IDENTIFIER LEFT_BRACE struct_declaration_list RIGHT_BRACE SEMICOLON {
|
||||
@@ -1641,15 +1642,19 @@ storage_qualifier
|
||||
$$.setBasic(EbtVoid, EvqConst, $1.line);
|
||||
}
|
||||
| ATTRIBUTE {
|
||||
//parseContext.requireProfile($1.line, (EProfileMask)(ENoProfileMask | ECompatibilityProfileMask), "attribute");
|
||||
parseContext.requireStage($1.line, EShLangVertexMask, "attribute");
|
||||
|
||||
parseContext.checkDeprecated($1.line, ENoProfile, 140, "attribute");
|
||||
parseContext.requireNotRemoved($1.line, ECoreProfile, 420, "attribute");
|
||||
|
||||
if (parseContext.globalErrorCheck($1.line, parseContext.symbolTable.atGlobalLevel(), "attribute"))
|
||||
parseContext.recover();
|
||||
$$.setBasic(EbtVoid, EvqAttribute, $1.line);
|
||||
}
|
||||
| VARYING {
|
||||
parseContext.checkDeprecated($1.line, ENoProfile, 140, "varying");
|
||||
parseContext.requireNotRemoved($1.line, ECoreProfile, 420, "varying");
|
||||
|
||||
if (parseContext.globalErrorCheck($1.line, parseContext.symbolTable.atGlobalLevel(), "varying"))
|
||||
parseContext.recover();
|
||||
if (parseContext.language == EShLangVertex)
|
||||
@@ -2396,10 +2401,13 @@ type_specifier_nonarray
|
||||
|
||||
precision_qualifier
|
||||
: HIGH_PRECISION {
|
||||
parseContext.profileRequires($1.line, ENoProfile, 130, 0, "highp precision qualifier");
|
||||
}
|
||||
| MEDIUM_PRECISION {
|
||||
parseContext.profileRequires($1.line, ENoProfile, 130, 0, "mediump precision qualifier");
|
||||
}
|
||||
| LOW_PRECISION {
|
||||
parseContext.profileRequires($1.line, ENoProfile, 130, 0, "lowp precision qualifier");
|
||||
}
|
||||
;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user