RetroArch
Classes | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
glslang::HlslParseContext Class Reference

#include <hlslParseHelper.h>

Inheritance diagram for glslang::HlslParseContext:
[legend]
Collaboration diagram for glslang::HlslParseContext:
[legend]

Classes

struct  TFlattenData
 
struct  tGsAppendData
 
struct  tInterstageIoData
 
struct  tIoKinds
 
struct  tMipsOperatorData
 
struct  tShadowTextureSymbols
 

Public Member Functions

 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
 
TIntermTypedhandleVariable (const TSourceLoc &, const TString *string)
 
TIntermTypedhandleBracketDereference (const TSourceLoc &, TIntermTyped *base, TIntermTyped *index)
 
TIntermTypedhandleBracketOperator (const TSourceLoc &, TIntermTyped *base, TIntermTyped *index)
 
TIntermTypedhandleBinaryMath (const TSourceLoc &, const char *str, TOperator op, TIntermTyped *left, TIntermTyped *right)
 
TIntermTypedhandleUnaryMath (const TSourceLoc &, const char *str, TOperator op, TIntermTyped *childNode)
 
TIntermTypedhandleDotDereference (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)
 
TIntermAggregatehandleFunctionDefinition (const TSourceLoc &, TFunction &, const TAttributes &, TIntermNode *&entryPointTree)
 
TIntermNodetransformEntryPoint (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)
 
TIntermNodehandleReturnValue (const TSourceLoc &, TIntermTyped *)
 
void handleFunctionArgument (TFunction *, TIntermTyped *&arguments, TIntermTyped *newArg)
 
TIntermTypedhandleAssign (const TSourceLoc &, TOperator, TIntermTyped *left, TIntermTyped *right)
 
TIntermTypedhandleAssignToMatrixSwizzle (const TSourceLoc &, TOperator, TIntermTyped *left, TIntermTyped *right)
 
TIntermTypedhandleFunctionCall (const TSourceLoc &, TFunction *, TIntermTyped *)
 
TIntermAggregateassignClipCullDistance (const TSourceLoc &, TOperator, int semanticId, TIntermTyped *left, TIntermTyped *right)
 
TIntermTypedassignPosition (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 *&)
 
TIntermTypedaddOutputArgumentConversions (const TFunction &, TIntermOperator &)
 
void builtInOpCheck (const TSourceLoc &, const TFunction &, TIntermOperator &)
 
TFunctionmakeConstructorCall (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 *)
 
TIntermTypedconvertConditionalExpression (const TSourceLoc &, TIntermTyped *, bool mustBeScalar=true)
 
TIntermAggregatehandleSamplerTextureCombine (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 &)
 
TSymbolredeclareBuiltinVariable (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 TFunctionfindFunction (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 &)
 
TSymbollookupUserType (const TString &, TType &)
 
TIntermNodedeclareVariable (const TSourceLoc &, const TString &identifier, TType &, TIntermTyped *initializer=0)
 
void lengthenList (const TSourceLoc &, TIntermSequence &list, int size, TIntermTyped *scalarInit)
 
TIntermTypedhandleConstructor (const TSourceLoc &, TIntermTyped *, const TType &)
 
TIntermTypedaddConstructor (const TSourceLoc &, TIntermTyped *, const TType &)
 
TIntermTypedconvertArray (TIntermTyped *, const TType &)
 
TIntermTypedconstructAggregate (TIntermNode *, const TType &, int, const TSourceLoc &)
 
TIntermTypedconstructBuiltIn (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)
 
TIntermNodeaddSwitch (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 ()
 
TVariablegetImplicitThis (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
 
TIntermTypedhandleLvalue (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
 
- Public Member Functions inherited from glslang::TParseContextBase
 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)
 
TScanContextgetScanContext () const
 
void setPpContext (TPpContext *c)
 
TPpContextgetPpContext () 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 *)
 
- Public Member Functions inherited from glslang::TParseVersions
 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)
 
TInputScannergetScanner () const
 
const TSourceLocgetCurrentLoc () 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
 

Protected Member Functions

void fixConstInit (const TSourceLoc &, const TString &identifier, TType &type, TIntermTyped *&initializer)
 
void inheritGlobalDefaults (TQualifier &dst) const
 
TVariablemakeInternalVariable (const char *name, const TType &) const
 
TVariablemakeInternalVariable (const TString &name, const TType &type) const
 
TIntermSymbolmakeInternalVariableNode (const TSourceLoc &, const char *name, const TType &) const
 
TVariabledeclareNonArray (const TSourceLoc &, const TString &identifier, const TType &, bool track)
 
void declareArray (const TSourceLoc &, const TString &identifier, const TType &, TSymbol *&, bool track)
 
TIntermNodeexecuteInitializer (const TSourceLoc &, TIntermTyped *initializer, TVariable *variable)
 
TIntermTypedconvertInitializerList (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
 
TIntermTypedflattenAccess (TIntermTyped *base, int member)
 
TIntermTypedflattenAccess (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 TTypesplit (const TType &type, const TString &name, const TQualifier &)
 
bool wasSplit (const TIntermTyped *node) const
 
bool wasSplit (int id) const
 
TVariablegetSplitNonIoVar (int id) const
 
void addPatchConstantInvocation ()
 
void fixTextureShadowModes ()
 
void finalizeAppendMethods ()
 
TIntermTypedmakeIntegerIndex (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)
 
TIntermConstantUniongetSamplePosArray (int count)
 
TTypegetStructBufferContentType (const TType &type) const
 
bool isStructBufferType (const TType &type) const
 
TIntermTypedindexStructBufferContent (const TSourceLoc &loc, TIntermTyped *buffer) const
 
TIntermTypedgetStructBufferCounter (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 TFunctionfindPatchConstantFunction (const TSourceLoc &loc)
 
void trackLinkage (TSymbol &variable) override
 
void finish () override
 
TIntermSymbolfindTessLinkageSymbol (TBuiltInVariable biType) const
 
 HlslParseContext (HlslParseContext &)
 
HlslParseContextoperator= (HlslParseContext &)
 
virtual void trackLinkage (TSymbol &symbol)
 
- Protected Member Functions inherited from glslang::TParseContextBase
 TParseContextBase (TParseContextBase &)
 
TParseContextBaseoperator= (TParseContextBase &)
 
const TFunctionselectFunction (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 TVariablegetEditableVariable (const char *name)
 

Static Protected Member Functions

static bool isClipOrCullDistance (TBuiltInVariable)
 
static bool isClipOrCullDistance (const TQualifier &qual)
 
static bool isClipOrCullDistance (const TType &type)
 

Protected Attributes

int annotationNestingLevel
 
TQualifier globalBufferDefaults
 
TQualifier globalUniformDefaults
 
TQualifier globalInputDefaults
 
TQualifier globalOutputDefaults
 
TString currentCaller
 
TIdSetType inductiveLoopIds
 
TVector< TIntermTyped * > needsIndexLimitationChecking
 
TVector< TSymbol * > ioArraySymbolResizeList
 
TMap< int, TFlattenDataflattenMap
 
TMap< const TTypeList *, tIoKindsioTypeMap
 
TMap< int, TVariable * > splitNonIoVars
 
TVector< TType * > structBufferTypes
 
TVector< TTypeList * > textureReturnStruct
 
TMap< TString, boolstructBufferCounter
 
TMap< tInterstageIoData, TVariable * > splitBuiltIns
 
TVariableinputPatch
 
unsigned int nextInLocation
 
unsigned int nextOutLocation
 
TFunctionentryPointFunction
 
TIntermNodeentryPointFunctionBody
 
TString patchConstantFunctionName
 
TMap< TBuiltInVariable, TSymbol * > builtInTessLinkageSymbols
 
TVector< TStringcurrentTypePrefix
 
TVector< TVariable * > implicitThisStack
 
TVariablegsStreamOutput
 
TVariableclipDistanceOutput
 
TVariablecullDistanceOutput
 
TVariableclipDistanceInput
 
TVariablecullDistanceInput
 
std::array< int, maxClipCullRegsclipSemanticNSizeIn
 
std::array< int, maxClipCullRegscullSemanticNSizeIn
 
std::array< int, maxClipCullRegsclipSemanticNSizeOut
 
std::array< int, maxClipCullRegscullSemanticNSizeOut
 
TVector< tMipsOperatorDatamipsOperatorMipArg
 
TVector< tGsAppendDatagsAppends
 
TMap< int, tShadowTextureSymbols * > textureShadowVariant
 
- Protected Attributes inherited from glslang::TParseContextBase
const bool parsingBuiltins
 
TVector< TSymbol * > linkageSymbols
 
TScanContextscanContext
 
TPpContextppContext
 
TBuiltInResource resources
 
TLimitslimits
 
TString sourceEntryPointName
 
std::function< void(int, int, bool, int, const char *)> lineCallback
 
std::function< void(int, const TVector< TString > &)> pragmaCallback
 
std::function< void(int, int, const char *)> versionCallback
 
std::function< void(int, const char *, const char *)> extensionCallback
 
std::function< void(int, const char *)> errorCallback
 
TVariableglobalUniformBlock
 
unsigned int globalUniformBinding
 
unsigned int globalUniformSet
 
int firstNewMember
 
- Protected Attributes inherited from glslang::TParseVersions
TMap< TString, TExtensionBehaviorextensionBehavior
 
EShMessages messages
 
int numErrors
 
TInputScannercurrentScanner
 

Static Protected Attributes

static const int maxSamplerIndex = EsdNumDims * (EbtNumTypes * (2 * 2 * 2))
 
static const int maxClipCullRegs = 2
 

Additional Inherited Members

- Public Attributes inherited from glslang::TParseContextBase
const char *const scopeMangler
 
TSymbolTablesymbolTable
 
int statementNestingLevel
 
int loopNestingLevel
 
int structNestingLevel
 
int controlFlowNestingLevel
 
const TTypecurrentFunctionType
 
bool functionReturnsValue
 
bool postEntryPointReturn
 
TList< TIntermSequence * > switchSequenceStack
 
TList< int > switchLevel
 
struct TPragma contextPragma
 
- Public Attributes inherited from glslang::TParseVersions
TInfoSinkinfoSink
 
int version
 
EProfile profile
 
EShLanguage language
 
SpvVersion spvVersion
 
bool forwardCompatible
 
TIntermediateintermediate
 

Constructor & Destructor Documentation

◆ HlslParseContext() [1/2]

glslang::HlslParseContext::HlslParseContext ( TSymbolTable symbolTable,
TIntermediate interm,
bool  parsingBuiltins,
int  version,
EProfile  profile,
const SpvVersion spvVersion,
EShLanguage  language,
TInfoSink infoSink,
const TString  sourceEntryPointName,
bool  forwardCompatible = false,
EShMessages  messages = EShMsgDefault 
)
Here is the call graph for this function:

◆ ~HlslParseContext()

glslang::HlslParseContext::~HlslParseContext ( )
virtual

◆ HlslParseContext() [2/2]

glslang::HlslParseContext::HlslParseContext ( HlslParseContext )
protected

Member Function Documentation

◆ addConstructor()

TIntermTyped * glslang::HlslParseContext::addConstructor ( const TSourceLoc loc,
TIntermTyped node,
const TType type 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ addFlattenedMember()

int glslang::HlslParseContext::addFlattenedMember ( const TVariable variable,
const TType type,
TFlattenData flattenData,
const TString name,
bool  linkage,
const TQualifier outerQualifier,
const TArraySizes builtInArraySizes 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ addGenMulArgumentConversion()

void glslang::HlslParseContext::addGenMulArgumentConversion ( const TSourceLoc loc,
TFunction call,
TIntermTyped *&  args 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ addInputArgumentConversions()

void glslang::HlslParseContext::addInputArgumentConversions ( const TFunction function,
TIntermTyped *&  arguments 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ addOutputArgumentConversions()

TIntermTyped * glslang::HlslParseContext::addOutputArgumentConversions ( const TFunction function,
TIntermOperator intermNode 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ addPatchConstantInvocation()

void glslang::HlslParseContext::addPatchConstantInvocation ( )
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ addQualifierToExisting() [1/2]

void glslang::HlslParseContext::addQualifierToExisting ( const TSourceLoc loc,
TQualifier  qualifier,
const TString identifier 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ addQualifierToExisting() [2/2]

void glslang::HlslParseContext::addQualifierToExisting ( const TSourceLoc loc,
TQualifier  qualifier,
TIdentifierList identifiers 
)
Here is the call graph for this function:

◆ addScopeMangler()

void glslang::HlslParseContext::addScopeMangler ( TString name)
Here is the caller graph for this function:

◆ addStructBuffArguments()

void glslang::HlslParseContext::addStructBuffArguments ( const TSourceLoc loc,
TIntermAggregate *&  aggregate 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ addStructBufferHiddenCounterParam()

void glslang::HlslParseContext::addStructBufferHiddenCounterParam ( const TSourceLoc loc,
TParameter param,
TIntermAggregate *&  paramNodes 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ addSwitch()

TIntermNode * glslang::HlslParseContext::addSwitch ( const TSourceLoc loc,
TIntermTyped expression,
TIntermAggregate body,
const TAttributes attributes 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ arraySizeCheck()

void glslang::HlslParseContext::arraySizeCheck ( const TSourceLoc loc,
TIntermTyped expr,
TArraySize sizePair 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ arraySizeRequiredCheck()

void glslang::HlslParseContext::arraySizeRequiredCheck ( const TSourceLoc loc,
const TArraySizes arraySizes 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ assignClipCullDistance()

TIntermAggregate * glslang::HlslParseContext::assignClipCullDistance ( const TSourceLoc loc,
TOperator  op,
int  semanticId,
TIntermTyped left,
TIntermTyped right 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ assignError()

void glslang::HlslParseContext::assignError ( const TSourceLoc loc,
const char *  op,
TString  left,
TString  right 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ assignPosition()

TIntermTyped * glslang::HlslParseContext::assignPosition ( const TSourceLoc loc,
TOperator  op,
TIntermTyped left,
TIntermTyped right 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ assignToInterface()

void glslang::HlslParseContext::assignToInterface ( TVariable variable)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ attributeFromName()

TAttributeType glslang::HlslParseContext::attributeFromName ( const TString nameSpace,
const TString name 
) const
Here is the caller graph for this function:

◆ binaryOpError()

void glslang::HlslParseContext::binaryOpError ( const TSourceLoc loc,
const char *  op,
TString  left,
TString  right 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ builtInName()

bool glslang::HlslParseContext::builtInName ( const TString )
Here is the caller graph for this function:

◆ builtInOpCheck()

void glslang::HlslParseContext::builtInOpCheck ( const TSourceLoc loc,
const TFunction fnCandidate,
TIntermOperator callNode 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ checkNoShaderLayouts()

void glslang::HlslParseContext::checkNoShaderLayouts ( const TSourceLoc ,
const TShaderQualifiers  
)

◆ clearUniform()

void glslang::HlslParseContext::clearUniform ( TQualifier qualifier)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ clearUniformInputOutput()

void glslang::HlslParseContext::clearUniformInputOutput ( TQualifier qualifier)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ computeSamplerTypeIndex()

int glslang::HlslParseContext::computeSamplerTypeIndex ( TSampler sampler)

◆ constantValueCheck()

void glslang::HlslParseContext::constantValueCheck ( TIntermTyped node,
const char *  token 
)
Here is the call graph for this function:

◆ constructAggregate()

TIntermTyped * glslang::HlslParseContext::constructAggregate ( TIntermNode node,
const TType type,
int  paramCount,
const TSourceLoc loc 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ constructBuiltIn()

TIntermTyped * glslang::HlslParseContext::constructBuiltIn ( const TType type,
TOperator  op,
TIntermTyped node,
const TSourceLoc loc,
bool  subset 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ constructorError()

bool glslang::HlslParseContext::constructorError ( const TSourceLoc loc,
TIntermNode node,
TFunction function,
TOperator  op,
TType type 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ constructorTextureSamplerError()

bool glslang::HlslParseContext::constructorTextureSamplerError ( const TSourceLoc loc,
const TFunction function 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ convertArray()

TIntermTyped * glslang::HlslParseContext::convertArray ( TIntermTyped node,
const TType type 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ convertConditionalExpression()

TIntermTyped * glslang::HlslParseContext::convertConditionalExpression ( const TSourceLoc loc,
TIntermTyped condition,
bool  mustBeScalar = true 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ convertInitializerList()

TIntermTyped * glslang::HlslParseContext::convertInitializerList ( const TSourceLoc loc,
const TType type,
TIntermTyped initializer,
TIntermTyped scalarInit 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ correctInput()

void glslang::HlslParseContext::correctInput ( TQualifier qualifier)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ correctOutput()

void glslang::HlslParseContext::correctOutput ( TQualifier qualifier)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ correctUniform()

void glslang::HlslParseContext::correctUniform ( TQualifier qualifier)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ counterBufferType()

void glslang::HlslParseContext::counterBufferType ( const TSourceLoc loc,
TType type 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ declareArray()

void glslang::HlslParseContext::declareArray ( const TSourceLoc loc,
const TString identifier,
const TType type,
TSymbol *&  symbol,
bool  track 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ declareBlock()

void glslang::HlslParseContext::declareBlock ( const TSourceLoc loc,
TType type,
const TString instanceName = 0 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ declareNonArray()

TVariable * glslang::HlslParseContext::declareNonArray ( const TSourceLoc loc,
const TString identifier,
const TType type,
bool  track 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ declareStruct()

void glslang::HlslParseContext::declareStruct ( const TSourceLoc loc,
TString structName,
TType type 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ declareStructBufferCounter()

void glslang::HlslParseContext::declareStructBufferCounter ( const TSourceLoc loc,
const TType bufferType,
const TString name 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ declareTypedef()

void glslang::HlslParseContext::declareTypedef ( const TSourceLoc loc,
const TString identifier,
const TType parseType 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ declareVariable()

TIntermNode * glslang::HlslParseContext::declareVariable ( const TSourceLoc loc,
const TString identifier,
TType type,
TIntermTyped initializer = 0 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ decomposeGeometryMethods()

void glslang::HlslParseContext::decomposeGeometryMethods ( const TSourceLoc loc,
TIntermTyped *&  node,
TIntermNode arguments 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ decomposeIntrinsic()

void glslang::HlslParseContext::decomposeIntrinsic ( const TSourceLoc loc,
TIntermTyped *&  node,
TIntermNode arguments 
)
Here is the caller graph for this function:

◆ decomposeSampleMethods()

void glslang::HlslParseContext::decomposeSampleMethods ( const TSourceLoc loc,
TIntermTyped *&  node,
TIntermNode arguments 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ decomposeStructBufferMethods()

void glslang::HlslParseContext::decomposeStructBufferMethods ( const TSourceLoc loc,
TIntermTyped *&  node,
TIntermNode arguments 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ executeInitializer()

TIntermNode * glslang::HlslParseContext::executeInitializer ( const TSourceLoc loc,
TIntermTyped initializer,
TVariable variable 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ expandArguments()

void glslang::HlslParseContext::expandArguments ( const TSourceLoc loc,
const TFunction function,
TIntermTyped *&  arguments 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ finalizeAppendMethods()

void glslang::HlslParseContext::finalizeAppendMethods ( )
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ findFunction()

const TFunction * glslang::HlslParseContext::findFunction ( const TSourceLoc loc,
TFunction call,
bool builtIn,
int &  thisDepth,
TIntermTyped *&  args 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ findPatchConstantFunction()

const TFunction * glslang::HlslParseContext::findPatchConstantFunction ( const TSourceLoc loc)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ findSubtreeOffset() [1/2]

int glslang::HlslParseContext::findSubtreeOffset ( const TIntermNode node) const
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ findSubtreeOffset() [2/2]

int glslang::HlslParseContext::findSubtreeOffset ( const TType type,
int  subset,
const TVector< int > &  offsets 
) const
protected
Here is the call graph for this function:

◆ findTessLinkageSymbol()

TIntermSymbol * glslang::HlslParseContext::findTessLinkageSymbol ( TBuiltInVariable  biType) const
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ finish()

void glslang::HlslParseContext::finish ( )
overrideprotectedvirtual

Reimplemented from glslang::TParseContextBase.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fixBlockLocations()

void glslang::HlslParseContext::fixBlockLocations ( const TSourceLoc loc,
TQualifier qualifier,
TTypeList typeList,
bool  memberWithLocation,
bool  memberWithoutLocation 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fixBlockUniformOffsets()

void glslang::HlslParseContext::fixBlockUniformOffsets ( const TQualifier qualifier,
TTypeList typeList 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fixBlockXfbOffsets()

void glslang::HlslParseContext::fixBlockXfbOffsets ( TQualifier qualifier,
TTypeList typeList 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fixBuiltInIoType()

void glslang::HlslParseContext::fixBuiltInIoType ( TType type)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fixConstInit()

void glslang::HlslParseContext::fixConstInit ( const TSourceLoc loc,
const TString identifier,
TType type,
TIntermTyped *&  initializer 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ fixTextureShadowModes()

void glslang::HlslParseContext::fixTextureShadowModes ( )
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ flatten() [1/2]

void glslang::HlslParseContext::flatten ( const TVariable variable,
bool  linkage 
)
protected
Here is the caller graph for this function:

◆ flatten() [2/2]

int glslang::HlslParseContext::flatten ( const TVariable variable,
const TType type,
TFlattenData flattenData,
TString  name,
bool  linkage,
const TQualifier outerQualifier,
const TArraySizes builtInArraySizes 
)
protected
Here is the call graph for this function:

◆ flattenAccess() [1/2]

TIntermTyped * glslang::HlslParseContext::flattenAccess ( TIntermTyped base,
int  member 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ flattenAccess() [2/2]

TIntermTyped * glslang::HlslParseContext::flattenAccess ( int  uniqueId,
int  member,
TStorageQualifier  outerStorage,
const TType dereferencedType,
int  subset = -1 
)
protected
Here is the call graph for this function:

◆ flattenArray()

int glslang::HlslParseContext::flattenArray ( const TVariable variable,
const TType type,
TFlattenData flattenData,
TString  name,
bool  linkage,
const TQualifier outerQualifier 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ flattenStruct()

int glslang::HlslParseContext::flattenStruct ( const TVariable variable,
const TType type,
TFlattenData flattenData,
TString  name,
bool  linkage,
const TQualifier outerQualifier,
const TArraySizes builtInArraySizes 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getAnnotationNestingLevel()

int glslang::HlslParseContext::getAnnotationNestingLevel ( )
inline
Here is the caller graph for this function:

◆ getFullNamespaceName()

void glslang::HlslParseContext::getFullNamespaceName ( TString *&  name) const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getGlobalUniformBlockName()

virtual const char* glslang::HlslParseContext::getGlobalUniformBlockName ( ) const
inlineoverridevirtual

Reimplemented from glslang::TParseContextBase.

◆ getImplicitThis()

TVariable* glslang::HlslParseContext::getImplicitThis ( int  thisDepth) const
inline
Here is the caller graph for this function:

◆ getLayoutFromTxType()

TLayoutFormat glslang::HlslParseContext::getLayoutFromTxType ( const TSourceLoc loc,
const TType txType 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getMatrixComponentsColumn()

int glslang::HlslParseContext::getMatrixComponentsColumn ( int  rows,
const TSwizzleSelectors< TMatrixSelector > &  selector 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getSamplePosArray()

TIntermConstantUnion * glslang::HlslParseContext::getSamplePosArray ( int  count)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getSplitNonIoVar()

TVariable * glslang::HlslParseContext::getSplitNonIoVar ( int  id) const
protected
Here is the caller graph for this function:

◆ getStructBuffCounterName()

TString glslang::HlslParseContext::getStructBuffCounterName ( const TString ) const
protected

◆ getStructBufferContentType()

TType * glslang::HlslParseContext::getStructBufferContentType ( const TType type) const
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getStructBufferCounter()

TIntermTyped * glslang::HlslParseContext::getStructBufferCounter ( const TSourceLoc loc,
TIntermTyped buffer 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getTextureReturnType()

void glslang::HlslParseContext::getTextureReturnType ( const TSampler sampler,
TType retType 
) const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ globalCheck()

void glslang::HlslParseContext::globalCheck ( const TSourceLoc loc,
const char *  token 
)
Here is the call graph for this function:

◆ globalQualifierFix()

void glslang::HlslParseContext::globalQualifierFix ( const TSourceLoc ,
TQualifier qualifier 
)
Here is the caller graph for this function:

◆ growGlobalUniformBlock()

void glslang::HlslParseContext::growGlobalUniformBlock ( const TSourceLoc loc,
TType memberType,
const TString memberName,
TTypeList typeList = nullptr 
)
overridevirtual

Reimplemented from glslang::TParseContextBase.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleAssign()

TIntermTyped * glslang::HlslParseContext::handleAssign ( const TSourceLoc loc,
TOperator  op,
TIntermTyped left,
TIntermTyped right 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleAssignToMatrixSwizzle()

TIntermTyped * glslang::HlslParseContext::handleAssignToMatrixSwizzle ( const TSourceLoc loc,
TOperator  op,
TIntermTyped left,
TIntermTyped right 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleBinaryMath()

TIntermTyped * glslang::HlslParseContext::handleBinaryMath ( const TSourceLoc loc,
const char *  str,
TOperator  op,
TIntermTyped left,
TIntermTyped right 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleBracketDereference()

TIntermTyped * glslang::HlslParseContext::handleBracketDereference ( const TSourceLoc loc,
TIntermTyped base,
TIntermTyped index 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleBracketOperator()

TIntermTyped * glslang::HlslParseContext::handleBracketOperator ( const TSourceLoc loc,
TIntermTyped base,
TIntermTyped index 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleConstructor()

TIntermTyped * glslang::HlslParseContext::handleConstructor ( const TSourceLoc loc,
TIntermTyped node,
const TType type 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleDotDereference()

TIntermTyped * glslang::HlslParseContext::handleDotDereference ( const TSourceLoc loc,
TIntermTyped base,
const TString field 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleEntryPointAttributes()

void glslang::HlslParseContext::handleEntryPointAttributes ( const TSourceLoc loc,
const TAttributes attributes 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleFunctionArgument()

void glslang::HlslParseContext::handleFunctionArgument ( TFunction function,
TIntermTyped *&  arguments,
TIntermTyped newArg 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleFunctionBody()

void glslang::HlslParseContext::handleFunctionBody ( const TSourceLoc loc,
TFunction function,
TIntermNode functionBody,
TIntermNode *&  node 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleFunctionCall()

TIntermTyped * glslang::HlslParseContext::handleFunctionCall ( const TSourceLoc loc,
TFunction function,
TIntermTyped arguments 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleFunctionDeclarator()

void glslang::HlslParseContext::handleFunctionDeclarator ( const TSourceLoc loc,
TFunction function,
bool  prototype 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleFunctionDefinition()

TIntermAggregate * glslang::HlslParseContext::handleFunctionDefinition ( const TSourceLoc loc,
TFunction function,
const TAttributes attributes,
TIntermNode *&  entryPointTree 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleInputGeometry()

bool glslang::HlslParseContext::handleInputGeometry ( const TSourceLoc loc,
const TLayoutGeometry geometry 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleLoopAttributes()

void glslang::HlslParseContext::handleLoopAttributes ( const TSourceLoc loc,
TIntermLoop loop,
const TAttributes attributes 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleLvalue()

TIntermTyped * glslang::HlslParseContext::handleLvalue ( const TSourceLoc loc,
const char *  op,
TIntermTyped *&  node 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleOutputGeometry()

bool glslang::HlslParseContext::handleOutputGeometry ( const TSourceLoc loc,
const TLayoutGeometry geometry 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handlePackOffset()

void glslang::HlslParseContext::handlePackOffset ( const TSourceLoc loc,
TQualifier qualifier,
const glslang::TString location,
const glslang::TString component 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handlePragma()

void glslang::HlslParseContext::handlePragma ( const TSourceLoc loc,
const TVector< TString > &  tokens 
)
overridevirtual

Implements glslang::TParseContextBase.

Here is the call graph for this function:

◆ handleRegister()

void glslang::HlslParseContext::handleRegister ( const TSourceLoc loc,
TQualifier qualifier,
const glslang::TString profile,
const glslang::TString desc,
int  subComponent,
const glslang::TString spaceDesc 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleReturnValue()

TIntermNode * glslang::HlslParseContext::handleReturnValue ( const TSourceLoc loc,
TIntermTyped value 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleSamplerTextureCombine()

TIntermAggregate * glslang::HlslParseContext::handleSamplerTextureCombine ( const TSourceLoc loc,
TIntermTyped argTex,
TIntermTyped argSampler 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleSelectionAttributes()

void glslang::HlslParseContext::handleSelectionAttributes ( const TSourceLoc loc,
TIntermSelection selection,
const TAttributes attributes 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleSemantic()

void glslang::HlslParseContext::handleSemantic ( TSourceLoc  loc,
TQualifier qualifier,
TBuiltInVariable  builtIn,
const TString upperCase 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleSwitchAttributes()

void glslang::HlslParseContext::handleSwitchAttributes ( const TSourceLoc loc,
TIntermSwitch selection,
const TAttributes attributes 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleUnaryMath()

TIntermTyped * glslang::HlslParseContext::handleUnaryMath ( const TSourceLoc loc,
const char *  str,
TOperator  op,
TIntermTyped childNode 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handleVariable()

TIntermTyped * glslang::HlslParseContext::handleVariable ( const TSourceLoc loc,
const TString string 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ hasInput()

bool glslang::HlslParseContext::hasInput ( const TQualifier qualifier) const
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ hasOutput()

bool glslang::HlslParseContext::hasOutput ( const TQualifier qualifier) const
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ hasStructBuffCounter()

bool glslang::HlslParseContext::hasStructBuffCounter ( const TType type) const
protected
Here is the caller graph for this function:

◆ hasUniform()

bool glslang::HlslParseContext::hasUniform ( const TQualifier qualifier) const
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ indexStructBufferContent()

TIntermTyped * glslang::HlslParseContext::indexStructBufferContent ( const TSourceLoc loc,
TIntermTyped buffer 
) const
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ inheritGlobalDefaults()

void glslang::HlslParseContext::inheritGlobalDefaults ( TQualifier dst) const
protected
Here is the caller graph for this function:

◆ initializeExtensionBehavior()

void glslang::HlslParseContext::initializeExtensionBehavior ( )
overridevirtual

Reimplemented from glslang::TParseVersions.

Here is the call graph for this function:

◆ integerCheck()

void glslang::HlslParseContext::integerCheck ( const TIntermTyped node,
const char *  token 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ isBuiltInMethod()

bool glslang::HlslParseContext::isBuiltInMethod ( const TSourceLoc ,
TIntermTyped base,
const TString field 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ isClipOrCullDistance() [1/3]

bool glslang::HlslParseContext::isClipOrCullDistance ( TBuiltInVariable  builtIn)
staticprotected
Here is the caller graph for this function:

◆ isClipOrCullDistance() [2/3]

static bool glslang::HlslParseContext::isClipOrCullDistance ( const TQualifier qual)
inlinestaticprotected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ isClipOrCullDistance() [3/3]

static bool glslang::HlslParseContext::isClipOrCullDistance ( const TType type)
inlinestaticprotected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ isInputBuiltIn()

bool glslang::HlslParseContext::isInputBuiltIn ( const TQualifier qualifier) const
protected
Here is the caller graph for this function:

◆ isOutputBuiltIn()

bool glslang::HlslParseContext::isOutputBuiltIn ( const TQualifier qualifier) const
protected
Here is the caller graph for this function:

◆ isReference()

bool glslang::HlslParseContext::isReference ( const TType type) const
inlineprotected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ isScalarConstructor()

bool glslang::HlslParseContext::isScalarConstructor ( const TIntermNode node)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ isStructBufferMethod()

bool glslang::HlslParseContext::isStructBufferMethod ( const TString name) const
protected
Here is the caller graph for this function:

◆ isStructBufferType()

bool glslang::HlslParseContext::isStructBufferType ( const TType type) const
inlineprotected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ lengthenList()

void glslang::HlslParseContext::lengthenList ( const TSourceLoc loc,
TIntermSequence list,
int  size,
TIntermTyped scalarInit 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ lineContinuationCheck()

bool glslang::HlslParseContext::lineContinuationCheck ( const TSourceLoc ,
bool   
)
inlineoverridevirtual

◆ lineDirectiveShouldSetNextLine()

bool glslang::HlslParseContext::lineDirectiveShouldSetNextLine ( ) const
inlineoverridevirtual

◆ lookupUserType()

TSymbol * glslang::HlslParseContext::lookupUserType ( const TString typeName,
TType type 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ lValueErrorCheck()

bool glslang::HlslParseContext::lValueErrorCheck ( const TSourceLoc loc,
const char *  op,
TIntermTyped node 
)
overridevirtual

Reimplemented from glslang::TParseContextBase.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ makeConstructorCall()

TFunction * glslang::HlslParseContext::makeConstructorCall ( const TSourceLoc loc,
const TType type 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ makeIntegerIndex()

TIntermTyped * glslang::HlslParseContext::makeIntegerIndex ( TIntermTyped index)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ makeInternalVariable() [1/2]

TVariable * glslang::HlslParseContext::makeInternalVariable ( const char *  name,
const TType type 
) const
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ makeInternalVariable() [2/2]

TVariable* glslang::HlslParseContext::makeInternalVariable ( const TString name,
const TType type 
) const
inlineprotected
Here is the call graph for this function:

◆ makeInternalVariableNode()

TIntermSymbol * glslang::HlslParseContext::makeInternalVariableNode ( const TSourceLoc loc,
const char *  name,
const TType type 
) const
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mapAtomicOp()

TOperator glslang::HlslParseContext::mapAtomicOp ( const TSourceLoc loc,
TOperator  op,
bool  isImage 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ mergeObjectLayoutQualifiers()

void glslang::HlslParseContext::mergeObjectLayoutQualifiers ( TQualifier dest,
const TQualifier src,
bool  inheritOnly 
)
Here is the caller graph for this function:

◆ mergeQualifiers()

void glslang::HlslParseContext::mergeQualifiers ( TQualifier dst,
const TQualifier src 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ nestAnnotations()

void glslang::HlslParseContext::nestAnnotations ( )
inline
Here is the caller graph for this function:

◆ nestLooping()

void glslang::HlslParseContext::nestLooping ( )
inline
Here is the caller graph for this function:

◆ operator=()

HlslParseContext& glslang::HlslParseContext::operator= ( HlslParseContext )
protected

◆ paramFix()

void glslang::HlslParseContext::paramFix ( TType type)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parseMatrixSwizzleSelector()

bool glslang::HlslParseContext::parseMatrixSwizzleSelector ( const TSourceLoc loc,
const TString fields,
int  cols,
int  rows,
TSwizzleSelectors< TMatrixSelector > &  components 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parseShaderStrings()

bool glslang::HlslParseContext::parseShaderStrings ( TPpContext ppContext,
TInputScanner input,
bool  versionWillBeError = false 
)
overridevirtual

Implements glslang::TParseContextBase.

Here is the call graph for this function:

◆ popImplicitThis()

void glslang::HlslParseContext::popImplicitThis ( )
inline
Here is the caller graph for this function:

◆ popNamespace()

void glslang::HlslParseContext::popNamespace ( )
Here is the caller graph for this function:

◆ popScope()

void glslang::HlslParseContext::popScope ( )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ popSwitchSequence()

void glslang::HlslParseContext::popSwitchSequence ( )
inline
Here is the caller graph for this function:

◆ popThisScope()

void glslang::HlslParseContext::popThisScope ( )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pushFrontArguments()

void glslang::HlslParseContext::pushFrontArguments ( TIntermTyped front,
TIntermTyped *&  arguments 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pushImplicitThis()

void glslang::HlslParseContext::pushImplicitThis ( TVariable thisParameter)
inline
Here is the caller graph for this function:

◆ pushNamespace()

void glslang::HlslParseContext::pushNamespace ( const TString name)
Here is the caller graph for this function:

◆ pushScope()

void glslang::HlslParseContext::pushScope ( )
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pushSwitchSequence()

void glslang::HlslParseContext::pushSwitchSequence ( TIntermSequence sequence)
inline
Here is the caller graph for this function:

◆ pushThisScope()

void glslang::HlslParseContext::pushThisScope ( const TType thisStruct,
const TVector< TFunctionDeclarator > &  functionDeclarators 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ redeclareBuiltinVariable()

TSymbol * glslang::HlslParseContext::redeclareBuiltinVariable ( const TSourceLoc ,
const TString identifier,
const TQualifier ,
const TShaderQualifiers  
)
Here is the call graph for this function:

◆ remapEntryPointIO()

void glslang::HlslParseContext::remapEntryPointIO ( TFunction function,
TVariable *&  returnValue,
TVector< TVariable *> &  inputs,
TVector< TVariable *> &  outputs 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ remapNonEntryPointIO()

void glslang::HlslParseContext::remapNonEntryPointIO ( TFunction function)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ removeUnusedStructBufferCounters()

void glslang::HlslParseContext::removeUnusedStructBufferCounters ( )
protected
Here is the caller graph for this function:

◆ reservedPpErrorCheck()

void glslang::HlslParseContext::reservedPpErrorCheck ( const TSourceLoc ,
const char *  ,
const char *   
)
inlineoverridevirtual

◆ setLayoutQualifier() [1/2]

void glslang::HlslParseContext::setLayoutQualifier ( const TSourceLoc loc,
TQualifier qualifier,
TString id 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setLayoutQualifier() [2/2]

void glslang::HlslParseContext::setLayoutQualifier ( const TSourceLoc loc,
TQualifier qualifier,
TString id,
const TIntermTyped node 
)
Here is the call graph for this function:

◆ setLimits()

void glslang::HlslParseContext::setLimits ( const TBuiltInResource r)
overridevirtual

Implements glslang::TParseContextBase.

Here is the call graph for this function:

◆ setSpecConstantId()

void glslang::HlslParseContext::setSpecConstantId ( const TSourceLoc loc,
TQualifier qualifier,
int  value 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setTextureReturnType()

bool glslang::HlslParseContext::setTextureReturnType ( TSampler sampler,
const TType retType,
const TSourceLoc loc 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setUniformBlockDefaults()

virtual void glslang::HlslParseContext::setUniformBlockDefaults ( TType block) const
inlineoverridevirtual

Reimplemented from glslang::TParseContextBase.

◆ shareStructBufferType()

void glslang::HlslParseContext::shareStructBufferType ( TType type)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ shouldConvertLValue()

bool glslang::HlslParseContext::shouldConvertLValue ( const TIntermNode node) const
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ shouldFlatten()

bool glslang::HlslParseContext::shouldFlatten ( const TType type,
TStorageQualifier  qualifier,
bool  topLevel 
) const
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ specializationCheck()

void glslang::HlslParseContext::specializationCheck ( const TSourceLoc loc,
const TType type,
const char *  op 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ split() [1/2]

void glslang::HlslParseContext::split ( const TVariable variable)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ split() [2/2]

const TType & glslang::HlslParseContext::split ( const TType type,
const TString name,
const TQualifier outerQualifier 
)
protected
Here is the call graph for this function:

◆ splitBuiltIn()

void glslang::HlslParseContext::splitBuiltIn ( const TString baseName,
const TType memberType,
const TArraySizes arraySizes,
const TQualifier outerQualifier 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ structArrayCheck()

void glslang::HlslParseContext::structArrayCheck ( const TSourceLoc ,
const TType structure 
)
Here is the call graph for this function:

◆ structQualifierErrorCheck()

bool glslang::HlslParseContext::structQualifierErrorCheck ( const TSourceLoc ,
const TPublicType pType 
)

◆ trackLinkage() [1/2]

void glslang::TParseContextBase::trackLinkage
protected

◆ trackLinkage() [2/2]

void glslang::HlslParseContext::trackLinkage ( TSymbol variable)
overrideprotectedvirtual

Reimplemented from glslang::TParseContextBase.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ transferTypeAttributes()

void glslang::HlslParseContext::transferTypeAttributes ( const TSourceLoc loc,
const TAttributes attributes,
TType type,
bool  allowEntry = false 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ transformEntryPoint()

TIntermNode * glslang::HlslParseContext::transformEntryPoint ( const TSourceLoc loc,
TFunction userFunction,
const TAttributes attributes 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ unaryOpError()

void glslang::HlslParseContext::unaryOpError ( const TSourceLoc loc,
const char *  op,
TString  operand 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ unnestAnnotations()

void glslang::HlslParseContext::unnestAnnotations ( )
inline
Here is the caller graph for this function:

◆ unnestLooping()

void glslang::HlslParseContext::unnestLooping ( )
inline
Here is the caller graph for this function:

◆ updateStandaloneQualifierDefaults()

void glslang::HlslParseContext::updateStandaloneQualifierDefaults ( const TSourceLoc loc,
const TPublicType publicType 
)
Here is the call graph for this function:

◆ variableCheck()

void glslang::HlslParseContext::variableCheck ( TIntermTyped *&  nodePtr)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ voidErrorCheck()

bool glslang::HlslParseContext::voidErrorCheck ( const TSourceLoc loc,
const TString identifier,
TBasicType  basicType 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wasFlattened() [1/2]

bool glslang::HlslParseContext::wasFlattened ( const TIntermTyped node) const
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wasFlattened() [2/2]

bool glslang::HlslParseContext::wasFlattened ( int  id) const
inlineprotected

◆ wasSplit() [1/2]

bool glslang::HlslParseContext::wasSplit ( const TIntermTyped node) const
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wasSplit() [2/2]

bool glslang::HlslParseContext::wasSplit ( int  id) const
inlineprotected

◆ wrapupSwitchSubsequence()

void glslang::HlslParseContext::wrapupSwitchSubsequence ( TIntermAggregate statements,
TIntermNode branchNode 
)
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ annotationNestingLevel

int glslang::HlslParseContext::annotationNestingLevel
protected

◆ builtInTessLinkageSymbols

TMap<TBuiltInVariable, TSymbol*> glslang::HlslParseContext::builtInTessLinkageSymbols
protected

◆ clipDistanceInput

TVariable* glslang::HlslParseContext::clipDistanceInput
protected

◆ clipDistanceOutput

TVariable* glslang::HlslParseContext::clipDistanceOutput
protected

◆ clipSemanticNSizeIn

std::array<int, maxClipCullRegs> glslang::HlslParseContext::clipSemanticNSizeIn
protected

◆ clipSemanticNSizeOut

std::array<int, maxClipCullRegs> glslang::HlslParseContext::clipSemanticNSizeOut
protected

◆ cullDistanceInput

TVariable* glslang::HlslParseContext::cullDistanceInput
protected

◆ cullDistanceOutput

TVariable* glslang::HlslParseContext::cullDistanceOutput
protected

◆ cullSemanticNSizeIn

std::array<int, maxClipCullRegs> glslang::HlslParseContext::cullSemanticNSizeIn
protected

◆ cullSemanticNSizeOut

std::array<int, maxClipCullRegs> glslang::HlslParseContext::cullSemanticNSizeOut
protected

◆ currentCaller

TString glslang::HlslParseContext::currentCaller
protected

◆ currentTypePrefix

TVector<TString> glslang::HlslParseContext::currentTypePrefix
protected

◆ entryPointFunction

TFunction* glslang::HlslParseContext::entryPointFunction
protected

◆ entryPointFunctionBody

TIntermNode* glslang::HlslParseContext::entryPointFunctionBody
protected

◆ flattenMap

TMap<int, TFlattenData> glslang::HlslParseContext::flattenMap
protected

◆ globalBufferDefaults

TQualifier glslang::HlslParseContext::globalBufferDefaults
protected

◆ globalInputDefaults

TQualifier glslang::HlslParseContext::globalInputDefaults
protected

◆ globalOutputDefaults

TQualifier glslang::HlslParseContext::globalOutputDefaults
protected

◆ globalUniformDefaults

TQualifier glslang::HlslParseContext::globalUniformDefaults
protected

◆ gsAppends

TVector<tGsAppendData> glslang::HlslParseContext::gsAppends
protected

◆ gsStreamOutput

TVariable* glslang::HlslParseContext::gsStreamOutput
protected

◆ implicitThisStack

TVector<TVariable*> glslang::HlslParseContext::implicitThisStack
protected

◆ inductiveLoopIds

TIdSetType glslang::HlslParseContext::inductiveLoopIds
protected

◆ inputPatch

TVariable* glslang::HlslParseContext::inputPatch
protected

◆ ioArraySymbolResizeList

TVector<TSymbol*> glslang::HlslParseContext::ioArraySymbolResizeList
protected

◆ ioTypeMap

TMap<const TTypeList*, tIoKinds> glslang::HlslParseContext::ioTypeMap
protected

◆ maxClipCullRegs

const int glslang::HlslParseContext::maxClipCullRegs = 2
staticprotected

◆ maxSamplerIndex

const int glslang::HlslParseContext::maxSamplerIndex = EsdNumDims * (EbtNumTypes * (2 * 2 * 2))
staticprotected

◆ mipsOperatorMipArg

TVector<tMipsOperatorData> glslang::HlslParseContext::mipsOperatorMipArg
protected

◆ needsIndexLimitationChecking

TVector<TIntermTyped*> glslang::HlslParseContext::needsIndexLimitationChecking
protected

◆ nextInLocation

unsigned int glslang::HlslParseContext::nextInLocation
protected

◆ nextOutLocation

unsigned int glslang::HlslParseContext::nextOutLocation
protected

◆ patchConstantFunctionName

TString glslang::HlslParseContext::patchConstantFunctionName
protected

◆ splitBuiltIns

TMap<tInterstageIoData, TVariable*> glslang::HlslParseContext::splitBuiltIns
protected

◆ splitNonIoVars

TMap<int, TVariable*> glslang::HlslParseContext::splitNonIoVars
protected

◆ structBufferCounter

TMap<TString, bool> glslang::HlslParseContext::structBufferCounter
protected

◆ structBufferTypes

TVector<TType*> glslang::HlslParseContext::structBufferTypes
protected

◆ textureReturnStruct

TVector<TTypeList*> glslang::HlslParseContext::textureReturnStruct
protected

◆ textureShadowVariant

TMap<int, tShadowTextureSymbols*> glslang::HlslParseContext::textureShadowVariant
protected

The documentation for this class was generated from the following files: