diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index 12f17e3dfc2b2da24469f655fd1a90f17c977b83..e70b60618ffaa4db40d2099aa4949f6e9a7a6365 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -790,6 +790,7 @@ class TIntermBranch; class TIntermTyped; class TIntermMethod; class TIntermSymbol; +class TIntermLoop; } // end namespace glslang @@ -817,6 +818,7 @@ public: virtual glslang::TIntermMethod* getAsMethodNode() { return 0; } virtual glslang::TIntermSymbol* getAsSymbolNode() { return 0; } virtual glslang::TIntermBranch* getAsBranchNode() { return 0; } + virtual glslang::TIntermLoop* getAsLoopNode() { return 0; } virtual const glslang::TIntermTyped* getAsTyped() const { return 0; } virtual const glslang::TIntermOperator* getAsOperator() const { return 0; } @@ -829,6 +831,7 @@ public: virtual const glslang::TIntermMethod* getAsMethodNode() const { return 0; } virtual const glslang::TIntermSymbol* getAsSymbolNode() const { return 0; } virtual const glslang::TIntermBranch* getAsBranchNode() const { return 0; } + virtual const glslang::TIntermLoop* getAsLoopNode() const { return 0; } virtual ~TIntermNode() { } protected: @@ -910,6 +913,8 @@ public: control(ELoopControlNone) { } + virtual TIntermLoop* getAsLoopNode() { return this; } + virtual const TIntermLoop* getAsLoopNode() const { return this; } virtual void traverse(TIntermTraverser*); TIntermNode* getBody() const { return body; } TIntermTyped* getTest() const { return test; }