20 constructorType(constructType),
21 singleConstantParam(singleConstParam),
23 symbolTable(symTable),
45 bool singleConstantParam;
75 buf.append(
"'constructor' : assigning non-constant to ");
76 buf.append(
type.getCompleteString());
90 buf.append(
"'constructor' : assigning non-constant to ");
91 buf.append(
type.getCompleteString());
101 buf.append(
"'constructor' : assigning non-constant to ");
102 buf.append(
type.getCompleteString());
113 bool flag = node->
getSequence().size() == 1 && node->
getSequence()[0]->getAsTyped()->getAsConstantUnion();
116 singleConstantParam =
true;
117 constructorType = node->
getOp();
126 for (TIntermSequence::iterator
p = node->
getSequence().begin();
132 (*p)->traverse(
this);
136 singleConstantParam =
false;
157 assert(infoSink.info.size() != 0);
162 size_t instanceSize =
type.getObjectSize();
164 if (
index >= instanceSize)
167 if (!singleConstantParam) {
171 for (
size_t i = 0;
i <
size;
i++) {
172 if (
index >= instanceSize)
174 leftUnionArray[
index] = rightUnionArray[
i];
183 for (
size_t i =
index;
i < totalSize;
i++) {
184 if (
i >= instanceSize)
187 leftUnionArray[
i] = rightUnionArray[
count];
196 size_t element =
index;
197 for (
size_t i =
index;
i < totalSize;
i++) {
198 if (
i >= instanceSize)
200 if (element -
i == 0 || (
i - element) % (matrixSize + 1) == 0 )
201 leftUnionArray[
i] = rightUnionArray[
count];
238 TConstTraverser it(unionArray, singleConstantParam, constructorType, infoSink, symbolTable, t);
GLsizei GLenum GLboolean sink
virtual bool visitAggregate(Visit visit, TIntermAggregate *)
TIntermSequence & getSequence()
GLint GLenum GLsizei GLsizei GLsizei GLint GLenum GLenum type
int getNominalSize() const
bool isConstructor() const
virtual bool visitBranch(Visit visit, TIntermBranch *)
virtual bool visitUnary(Visit visit, TIntermUnary *)
TQualifier getQualifier() const
virtual void visitSymbol(TIntermSymbol *)
virtual bool visitBinary(Visit visit, TIntermBinary *)
virtual void traverse(TIntermTraverser *)=0
const TSourceLoc & getLine() const
const TType & getType() const
ConstantUnion * getUnionArrayPointer() const
std::basic_string< char, std::char_traits< char >, TStringAllocator > TString
virtual bool visitLoop(Visit visit, TIntermLoop *)
virtual bool visitSelection(Visit visit, TIntermSelection *)
virtual void visitConstantUnion(TIntermConstantUnion *)
GLenum GLuint GLsizei const GLchar * buf
size_t getObjectSize() const