|
| HlslParseContext (TSymbolTable &, TIntermediate &, bool parsingBuiltins, int version, EProfile, const SpvVersion &spvVersion, EShLanguage, TInfoSink &, const TString sourceEntryPointName, bool forwardCompatible=false, EShMessages messages=EShMsgDefault) |
|
virtual | ~HlslParseContext () |
|
void | initializeExtensionBehavior () override |
|
void | setLimits (const TBuiltInResource &) override |
|
bool | parseShaderStrings (TPpContext &, TInputScanner &input, bool versionWillBeError=false) override |
|
virtual const char * | getGlobalUniformBlockName () const override |
|
virtual void | setUniformBlockDefaults (TType &block) const override |
|
void | reservedPpErrorCheck (const TSourceLoc &, const char *, const char *) override |
|
bool | lineContinuationCheck (const TSourceLoc &, bool) override |
|
bool | lineDirectiveShouldSetNextLine () const override |
|
bool | builtInName (const TString &) |
|
void | handlePragma (const TSourceLoc &, const TVector< TString > &) override |
|
TIntermTyped * | handleVariable (const TSourceLoc &, const TString *string) |
|
TIntermTyped * | handleBracketDereference (const TSourceLoc &, TIntermTyped *base, TIntermTyped *index) |
|
TIntermTyped * | handleBracketOperator (const TSourceLoc &, TIntermTyped *base, TIntermTyped *index) |
|
TIntermTyped * | handleBinaryMath (const TSourceLoc &, const char *str, TOperator op, TIntermTyped *left, TIntermTyped *right) |
|
TIntermTyped * | handleUnaryMath (const TSourceLoc &, const char *str, TOperator op, TIntermTyped *childNode) |
|
TIntermTyped * | handleDotDereference (const TSourceLoc &, TIntermTyped *base, const TString &field) |
|
bool | isBuiltInMethod (const TSourceLoc &, TIntermTyped *base, const TString &field) |
|
void | assignToInterface (TVariable &variable) |
|
void | handleFunctionDeclarator (const TSourceLoc &, TFunction &function, bool prototype) |
|
TIntermAggregate * | handleFunctionDefinition (const TSourceLoc &, TFunction &, const TAttributes &, TIntermNode *&entryPointTree) |
|
TIntermNode * | transformEntryPoint (const TSourceLoc &, TFunction &, const TAttributes &) |
|
void | handleEntryPointAttributes (const TSourceLoc &, const TAttributes &) |
|
void | transferTypeAttributes (const TSourceLoc &, const TAttributes &, TType &, bool allowEntry=false) |
|
void | handleFunctionBody (const TSourceLoc &, TFunction &, TIntermNode *functionBody, TIntermNode *&node) |
|
void | remapEntryPointIO (TFunction &function, TVariable *&returnValue, TVector< TVariable *> &inputs, TVector< TVariable *> &outputs) |
|
void | remapNonEntryPointIO (TFunction &function) |
|
TIntermNode * | handleReturnValue (const TSourceLoc &, TIntermTyped *) |
|
void | handleFunctionArgument (TFunction *, TIntermTyped *&arguments, TIntermTyped *newArg) |
|
TIntermTyped * | handleAssign (const TSourceLoc &, TOperator, TIntermTyped *left, TIntermTyped *right) |
|
TIntermTyped * | handleAssignToMatrixSwizzle (const TSourceLoc &, TOperator, TIntermTyped *left, TIntermTyped *right) |
|
TIntermTyped * | handleFunctionCall (const TSourceLoc &, TFunction *, TIntermTyped *) |
|
TIntermAggregate * | assignClipCullDistance (const TSourceLoc &, TOperator, int semanticId, TIntermTyped *left, TIntermTyped *right) |
|
TIntermTyped * | assignPosition (const TSourceLoc &, TOperator, TIntermTyped *left, TIntermTyped *right) |
|
void | decomposeIntrinsic (const TSourceLoc &, TIntermTyped *&node, TIntermNode *arguments) |
|
void | decomposeSampleMethods (const TSourceLoc &, TIntermTyped *&node, TIntermNode *arguments) |
|
void | decomposeStructBufferMethods (const TSourceLoc &, TIntermTyped *&node, TIntermNode *arguments) |
|
void | decomposeGeometryMethods (const TSourceLoc &, TIntermTyped *&node, TIntermNode *arguments) |
|
void | pushFrontArguments (TIntermTyped *front, TIntermTyped *&arguments) |
|
void | addInputArgumentConversions (const TFunction &, TIntermTyped *&) |
|
void | expandArguments (const TSourceLoc &, const TFunction &, TIntermTyped *&) |
|
TIntermTyped * | addOutputArgumentConversions (const TFunction &, TIntermOperator &) |
|
void | builtInOpCheck (const TSourceLoc &, const TFunction &, TIntermOperator &) |
|
TFunction * | makeConstructorCall (const TSourceLoc &, const TType &) |
|
void | handleSemantic (TSourceLoc, TQualifier &, TBuiltInVariable, const TString &upperCase) |
|
void | handlePackOffset (const TSourceLoc &, TQualifier &, const glslang::TString &location, const glslang::TString *component) |
|
void | handleRegister (const TSourceLoc &, TQualifier &, const glslang::TString *profile, const glslang::TString &desc, int subComponent, const glslang::TString *) |
|
TIntermTyped * | convertConditionalExpression (const TSourceLoc &, TIntermTyped *, bool mustBeScalar=true) |
|
TIntermAggregate * | handleSamplerTextureCombine (const TSourceLoc &loc, TIntermTyped *argTex, TIntermTyped *argSampler) |
|
bool | parseMatrixSwizzleSelector (const TSourceLoc &, const TString &, int cols, int rows, TSwizzleSelectors< TMatrixSelector > &) |
|
int | getMatrixComponentsColumn (int rows, const TSwizzleSelectors< TMatrixSelector > &) |
|
void | assignError (const TSourceLoc &, const char *op, TString left, TString right) |
|
void | unaryOpError (const TSourceLoc &, const char *op, TString operand) |
|
void | binaryOpError (const TSourceLoc &, const char *op, TString left, TString right) |
|
void | variableCheck (TIntermTyped *&nodePtr) |
|
void | constantValueCheck (TIntermTyped *node, const char *token) |
|
void | integerCheck (const TIntermTyped *node, const char *token) |
|
void | globalCheck (const TSourceLoc &, const char *token) |
|
bool | constructorError (const TSourceLoc &, TIntermNode *, TFunction &, TOperator, TType &) |
|
bool | constructorTextureSamplerError (const TSourceLoc &, const TFunction &) |
|
void | arraySizeCheck (const TSourceLoc &, TIntermTyped *expr, TArraySize &) |
|
void | arraySizeRequiredCheck (const TSourceLoc &, const TArraySizes &) |
|
void | structArrayCheck (const TSourceLoc &, const TType &structure) |
|
bool | voidErrorCheck (const TSourceLoc &, const TString &, TBasicType) |
|
void | globalQualifierFix (const TSourceLoc &, TQualifier &) |
|
bool | structQualifierErrorCheck (const TSourceLoc &, const TPublicType &pType) |
|
void | mergeQualifiers (TQualifier &dst, const TQualifier &src) |
|
int | computeSamplerTypeIndex (TSampler &) |
|
TSymbol * | redeclareBuiltinVariable (const TSourceLoc &, const TString &, const TQualifier &, const TShaderQualifiers &) |
|
void | paramFix (TType &type) |
|
void | specializationCheck (const TSourceLoc &, const TType &, const char *op) |
|
void | setLayoutQualifier (const TSourceLoc &, TQualifier &, TString &) |
|
void | setLayoutQualifier (const TSourceLoc &, TQualifier &, TString &, const TIntermTyped *) |
|
void | setSpecConstantId (const TSourceLoc &, TQualifier &, int value) |
|
void | mergeObjectLayoutQualifiers (TQualifier &dest, const TQualifier &src, bool inheritOnly) |
|
void | checkNoShaderLayouts (const TSourceLoc &, const TShaderQualifiers &) |
|
const TFunction * | findFunction (const TSourceLoc &loc, TFunction &call, bool &builtIn, int &thisDepth, TIntermTyped *&args) |
|
void | addGenMulArgumentConversion (const TSourceLoc &loc, TFunction &call, TIntermTyped *&args) |
|
void | declareTypedef (const TSourceLoc &, const TString &identifier, const TType &) |
|
void | declareStruct (const TSourceLoc &, TString &structName, TType &) |
|
TSymbol * | lookupUserType (const TString &, TType &) |
|
TIntermNode * | declareVariable (const TSourceLoc &, const TString &identifier, TType &, TIntermTyped *initializer=0) |
|
void | lengthenList (const TSourceLoc &, TIntermSequence &list, int size, TIntermTyped *scalarInit) |
|
TIntermTyped * | handleConstructor (const TSourceLoc &, TIntermTyped *, const TType &) |
|
TIntermTyped * | addConstructor (const TSourceLoc &, TIntermTyped *, const TType &) |
|
TIntermTyped * | convertArray (TIntermTyped *, const TType &) |
|
TIntermTyped * | constructAggregate (TIntermNode *, const TType &, int, const TSourceLoc &) |
|
TIntermTyped * | constructBuiltIn (const TType &, TOperator, TIntermTyped *, const TSourceLoc &, bool subset) |
|
void | declareBlock (const TSourceLoc &, TType &, const TString *instanceName=0) |
|
void | declareStructBufferCounter (const TSourceLoc &loc, const TType &bufferType, const TString &name) |
|
void | fixBlockLocations (const TSourceLoc &, TQualifier &, TTypeList &, bool memberWithLocation, bool memberWithoutLocation) |
|
void | fixBlockXfbOffsets (TQualifier &, TTypeList &) |
|
void | fixBlockUniformOffsets (const TQualifier &, TTypeList &) |
|
void | addQualifierToExisting (const TSourceLoc &, TQualifier, const TString &identifier) |
|
void | addQualifierToExisting (const TSourceLoc &, TQualifier, TIdentifierList &) |
|
void | updateStandaloneQualifierDefaults (const TSourceLoc &, const TPublicType &) |
|
void | wrapupSwitchSubsequence (TIntermAggregate *statements, TIntermNode *branchNode) |
|
TIntermNode * | addSwitch (const TSourceLoc &, TIntermTyped *expression, TIntermAggregate *body, const TAttributes &) |
|
void | nestLooping () |
|
void | unnestLooping () |
|
void | nestAnnotations () |
|
void | unnestAnnotations () |
|
int | getAnnotationNestingLevel () |
|
void | pushScope () |
|
void | popScope () |
|
void | pushThisScope (const TType &, const TVector< TFunctionDeclarator > &) |
|
void | popThisScope () |
|
void | pushImplicitThis (TVariable *thisParameter) |
|
void | popImplicitThis () |
|
TVariable * | getImplicitThis (int thisDepth) const |
|
void | pushNamespace (const TString &name) |
|
void | popNamespace () |
|
void | getFullNamespaceName (TString *&) const |
|
void | addScopeMangler (TString &) |
|
void | pushSwitchSequence (TIntermSequence *sequence) |
|
void | popSwitchSequence () |
|
virtual void | growGlobalUniformBlock (const TSourceLoc &, TType &, const TString &memberName, TTypeList *typeList=nullptr) override |
|
TIntermTyped * | handleLvalue (const TSourceLoc &, const char *op, TIntermTyped *&node) |
|
bool | lValueErrorCheck (const TSourceLoc &, const char *op, TIntermTyped *) override |
|
TLayoutFormat | getLayoutFromTxType (const TSourceLoc &, const TType &) |
|
bool | handleOutputGeometry (const TSourceLoc &, const TLayoutGeometry &geometry) |
|
bool | handleInputGeometry (const TSourceLoc &, const TLayoutGeometry &geometry) |
|
void | handleSelectionAttributes (const TSourceLoc &loc, TIntermSelection *, const TAttributes &attributes) |
|
void | handleSwitchAttributes (const TSourceLoc &loc, TIntermSwitch *, const TAttributes &attributes) |
|
void | handleLoopAttributes (const TSourceLoc &loc, TIntermLoop *, const TAttributes &attributes) |
|
void | shareStructBufferType (TType &) |
|
bool | setTextureReturnType (TSampler &sampler, const TType &retType, const TSourceLoc &loc) |
|
void | getTextureReturnType (const TSampler &sampler, TType &retType) const |
|
TAttributeType | attributeFromName (const TString &nameSpace, const TString &name) const |
|
| TParseContextBase (TSymbolTable &symbolTable, TIntermediate &interm, bool parsingBuiltins, int version, EProfile profile, const SpvVersion &spvVersion, EShLanguage language, TInfoSink &infoSink, bool forwardCompatible, EShMessages messages, const TString *entryPoint=nullptr) |
|
virtual | ~TParseContextBase () |
|
virtual void C_DECL | error (const TSourceLoc &, const char *szReason, const char *szToken, const char *szExtraInfoFormat,...) |
|
virtual void C_DECL | warn (const TSourceLoc &, const char *szReason, const char *szToken, const char *szExtraInfoFormat,...) |
|
virtual void C_DECL | ppError (const TSourceLoc &, const char *szReason, const char *szToken, const char *szExtraInfoFormat,...) |
|
virtual void C_DECL | ppWarn (const TSourceLoc &, const char *szReason, const char *szToken, const char *szExtraInfoFormat,...) |
|
void | checkIndex (const TSourceLoc &, const TType &, int &index) |
|
EShLanguage | getLanguage () const |
|
void | setScanContext (TScanContext *c) |
|
TScanContext * | getScanContext () const |
|
void | setPpContext (TPpContext *c) |
|
TPpContext * | getPpContext () const |
|
virtual void | setLineCallback (const std::function< void(int, int, bool, int, const char *)> &func) |
|
virtual void | setExtensionCallback (const std::function< void(int, const char *, const char *)> &func) |
|
virtual void | setVersionCallback (const std::function< void(int, int, const char *)> &func) |
|
virtual void | setPragmaCallback (const std::function< void(int, const TVector< TString > &)> &func) |
|
virtual void | setErrorCallback (const std::function< void(int, const char *)> &func) |
|
virtual void | notifyVersion (int line, int version, const char *type_string) |
|
virtual void | notifyErrorDirective (int line, const char *error_message) |
|
virtual void | notifyLineDirective (int curLineNo, int newLineNo, bool hasSource, int sourceNum, const char *sourceName) |
|
virtual void | notifyExtensionDirective (int line, const char *extension, const char *behavior) |
|
void | renameShaderFunction (TString *&name) const |
|
virtual void | rValueErrorCheck (const TSourceLoc &, const char *op, TIntermTyped *) |
|
| TParseVersions (TIntermediate &interm, int version, EProfile profile, const SpvVersion &spvVersion, EShLanguage language, TInfoSink &infoSink, bool forwardCompatible, EShMessages messages) |
|
virtual | ~TParseVersions () |
|
virtual void | requireProfile (const TSourceLoc &, int queryProfiles, const char *featureDesc) |
|
virtual void | profileRequires (const TSourceLoc &, int queryProfiles, int minVersion, int numExtensions, const char *const extensions[], const char *featureDesc) |
|
virtual void | profileRequires (const TSourceLoc &, int queryProfiles, int minVersion, const char *const extension, const char *featureDesc) |
|
virtual void | requireStage (const TSourceLoc &, EShLanguageMask, const char *featureDesc) |
|
virtual void | requireStage (const TSourceLoc &, EShLanguage, const char *featureDesc) |
|
virtual void | checkDeprecated (const TSourceLoc &, int queryProfiles, int depVersion, const char *featureDesc) |
|
virtual void | requireNotRemoved (const TSourceLoc &, int queryProfiles, int removedVersion, const char *featureDesc) |
|
virtual void | unimplemented (const TSourceLoc &, const char *featureDesc) |
|
virtual void | requireExtensions (const TSourceLoc &, int numExtensions, const char *const extensions[], const char *featureDesc) |
|
virtual void | ppRequireExtensions (const TSourceLoc &, int numExtensions, const char *const extensions[], const char *featureDesc) |
|
virtual TExtensionBehavior | getExtensionBehavior (const char *) |
|
virtual bool | extensionTurnedOn (const char *const extension) |
|
virtual bool | extensionsTurnedOn (int numExtensions, const char *const extensions[]) |
|
virtual void | updateExtensionBehavior (int line, const char *const extension, const char *behavior) |
|
virtual void | fullIntegerCheck (const TSourceLoc &, const char *op) |
|
virtual void | doubleCheck (const TSourceLoc &, const char *op) |
|
virtual void | float16Check (const TSourceLoc &, const char *op, bool builtIn=false) |
|
virtual void | int64Check (const TSourceLoc &, const char *op, bool builtIn=false) |
|
virtual void | explicitInt8Check (const TSourceLoc &, const char *op, bool builtIn=false) |
|
virtual void | explicitInt16Check (const TSourceLoc &, const char *op, bool builtIn=false) |
|
virtual void | explicitInt32Check (const TSourceLoc &, const char *op, bool builtIn=false) |
|
virtual void | explicitFloat32Check (const TSourceLoc &, const char *op, bool builtIn=false) |
|
virtual void | explicitFloat64Check (const TSourceLoc &, const char *op, bool builtIn=false) |
|
virtual void | spvRemoved (const TSourceLoc &, const char *op) |
|
virtual void | vulkanRemoved (const TSourceLoc &, const char *op) |
|
virtual void | requireVulkan (const TSourceLoc &, const char *op) |
|
virtual void | requireSpv (const TSourceLoc &, const char *op) |
|
virtual bool | checkExtensionsRequested (const TSourceLoc &, int numExtensions, const char *const extensions[], const char *featureDesc) |
|
virtual void | updateExtensionBehavior (const char *const extension, TExtensionBehavior) |
|
void | addError () |
|
int | getNumErrors () const |
|
void | setScanner (TInputScanner *scanner) |
|
TInputScanner * | getScanner () const |
|
const TSourceLoc & | getCurrentLoc () const |
|
void | setCurrentLine (int line) |
|
void | setCurrentColumn (int col) |
|
void | setCurrentSourceName (const char *name) |
|
void | setCurrentString (int string) |
|
void | getPreamble (std::string &) |
|
bool | relaxedErrors () const |
|
bool | suppressWarnings () const |
|
bool | isReadingHLSL () const |
|
bool | hlslEnable16BitTypes () const |
|
|
void | fixConstInit (const TSourceLoc &, const TString &identifier, TType &type, TIntermTyped *&initializer) |
|
void | inheritGlobalDefaults (TQualifier &dst) const |
|
TVariable * | makeInternalVariable (const char *name, const TType &) const |
|
TVariable * | makeInternalVariable (const TString &name, const TType &type) const |
|
TIntermSymbol * | makeInternalVariableNode (const TSourceLoc &, const char *name, const TType &) const |
|
TVariable * | declareNonArray (const TSourceLoc &, const TString &identifier, const TType &, bool track) |
|
void | declareArray (const TSourceLoc &, const TString &identifier, const TType &, TSymbol *&, bool track) |
|
TIntermNode * | executeInitializer (const TSourceLoc &, TIntermTyped *initializer, TVariable *variable) |
|
TIntermTyped * | convertInitializerList (const TSourceLoc &, const TType &, TIntermTyped *initializer, TIntermTyped *scalarInit) |
|
bool | isScalarConstructor (const TIntermNode *) |
|
TOperator | mapAtomicOp (const TSourceLoc &loc, TOperator op, bool isImage) |
|
bool | shouldConvertLValue (const TIntermNode *) const |
|
TIntermTyped * | flattenAccess (TIntermTyped *base, int member) |
|
TIntermTyped * | flattenAccess (int uniqueId, int member, TStorageQualifier outerStorage, const TType &, int subset=-1) |
|
int | findSubtreeOffset (const TIntermNode &) const |
|
int | findSubtreeOffset (const TType &, int subset, const TVector< int > &offsets) const |
|
bool | shouldFlatten (const TType &, TStorageQualifier, bool topLevel) const |
|
bool | wasFlattened (const TIntermTyped *node) const |
|
bool | wasFlattened (int id) const |
|
int | addFlattenedMember (const TVariable &, const TType &, TFlattenData &, const TString &name, bool linkage, const TQualifier &outerQualifier, const TArraySizes *builtInArraySizes) |
|
void | split (const TVariable &) |
|
void | splitBuiltIn (const TString &baseName, const TType &memberType, const TArraySizes *, const TQualifier &) |
|
const TType & | split (const TType &type, const TString &name, const TQualifier &) |
|
bool | wasSplit (const TIntermTyped *node) const |
|
bool | wasSplit (int id) const |
|
TVariable * | getSplitNonIoVar (int id) const |
|
void | addPatchConstantInvocation () |
|
void | fixTextureShadowModes () |
|
void | finalizeAppendMethods () |
|
TIntermTyped * | makeIntegerIndex (TIntermTyped *) |
|
void | fixBuiltInIoType (TType &) |
|
void | flatten (const TVariable &variable, bool linkage) |
|
int | flatten (const TVariable &variable, const TType &, TFlattenData &, TString name, bool linkage, const TQualifier &outerQualifier, const TArraySizes *builtInArraySizes) |
|
int | flattenStruct (const TVariable &variable, const TType &, TFlattenData &, TString name, bool linkage, const TQualifier &outerQualifier, const TArraySizes *builtInArraySizes) |
|
int | flattenArray (const TVariable &variable, const TType &, TFlattenData &, TString name, bool linkage, const TQualifier &outerQualifier) |
|
bool | hasUniform (const TQualifier &qualifier) const |
|
void | clearUniform (TQualifier &qualifier) |
|
bool | isInputBuiltIn (const TQualifier &qualifier) const |
|
bool | hasInput (const TQualifier &qualifier) const |
|
void | correctOutput (TQualifier &qualifier) |
|
bool | isOutputBuiltIn (const TQualifier &qualifier) const |
|
bool | hasOutput (const TQualifier &qualifier) const |
|
void | correctInput (TQualifier &qualifier) |
|
void | correctUniform (TQualifier &qualifier) |
|
void | clearUniformInputOutput (TQualifier &qualifier) |
|
bool | isStructBufferMethod (const TString &name) const |
|
void | counterBufferType (const TSourceLoc &loc, TType &type) |
|
TIntermConstantUnion * | getSamplePosArray (int count) |
|
TType * | getStructBufferContentType (const TType &type) const |
|
bool | isStructBufferType (const TType &type) const |
|
TIntermTyped * | indexStructBufferContent (const TSourceLoc &loc, TIntermTyped *buffer) const |
|
TIntermTyped * | getStructBufferCounter (const TSourceLoc &loc, TIntermTyped *buffer) |
|
TString | getStructBuffCounterName (const TString &) const |
|
void | addStructBuffArguments (const TSourceLoc &loc, TIntermAggregate *&) |
|
void | addStructBufferHiddenCounterParam (const TSourceLoc &loc, TParameter &, TIntermAggregate *&) |
|
bool | isReference (const TType &type) const |
|
bool | hasStructBuffCounter (const TType &) const |
|
void | removeUnusedStructBufferCounters () |
|
const TFunction * | findPatchConstantFunction (const TSourceLoc &loc) |
|
void | trackLinkage (TSymbol &variable) override |
|
void | finish () override |
|
TIntermSymbol * | findTessLinkageSymbol (TBuiltInVariable biType) const |
|
| HlslParseContext (HlslParseContext &) |
|
HlslParseContext & | operator= (HlslParseContext &) |
|
virtual void | trackLinkage (TSymbol &symbol) |
|
| TParseContextBase (TParseContextBase &) |
|
TParseContextBase & | operator= (TParseContextBase &) |
|
const TFunction * | selectFunction (const TVector< const TFunction *>, const TFunction &, std::function< bool(const TType &, const TType &, TOperator, int arg)>, std::function< bool(const TType &, const TType &, const TType &)>, bool &tie) |
|
virtual void | parseSwizzleSelector (const TSourceLoc &, const TString &, int size, TSwizzleSelectors< TVectorSelector > &) |
|
virtual void | finalizeGlobalUniformBlockLayout (TVariable &) |
|
virtual void | outputMessage (const TSourceLoc &, const char *szReason, const char *szToken, const char *szExtraInfoFormat, TPrefixType prefix, va_list args) |
|
virtual void | makeEditable (TSymbol *&) |
|
virtual TVariable * | getEditableVariable (const char *name) |
|