Implement GL_KHR_blend_equation_advanced.

This commit is contained in:
John Kessenich 2015-08-30 05:43:51 -06:00
parent d6c37b190b
commit c8b2e36f52
8 changed files with 148 additions and 4 deletions

View file

@ -127,7 +127,7 @@ public:
explicit TIntermediate(EShLanguage l, int v = 0, EProfile p = ENoProfile) : language(l), treeRoot(0), profile(p), version(v),
numMains(0), numErrors(0), recursive(false),
invocations(0), vertices(0), inputPrimitive(ElgNone), outputPrimitive(ElgNone), pixelCenterInteger(false), originUpperLeft(false),
vertexSpacing(EvsNone), vertexOrder(EvoNone), pointMode(false), earlyFragmentTests(false), depthLayout(EldNone), xfbMode(false)
vertexSpacing(EvsNone), vertexOrder(EvoNone), pointMode(false), earlyFragmentTests(false), depthLayout(EldNone), blendEquations(0), xfbMode(false)
{
localSize[0] = 1;
localSize[1] = 1;
@ -277,6 +277,9 @@ public:
}
TLayoutDepth getDepth() const { return depthLayout; }
void addBlendEquation(TBlendEquationShift b) { blendEquations |= (1 << b); }
unsigned int getBlendEquations() const { return blendEquations; }
void addToCallGraph(TInfoSink&, const TString& caller, const TString& callee);
void merge(TInfoSink&, TIntermediate&);
void finalCheck(TInfoSink&);
@ -332,6 +335,7 @@ protected:
int localSize[3];
bool earlyFragmentTests;
TLayoutDepth depthLayout;
int blendEquations; // an 'or'ing of masks of shifts of TBlendEquationShift
bool xfbMode;
typedef std::list<TCall> TGraph;