Implemented complex vector/matrix construction

TRAC #11868 Signed-off-by: Shannon Woods Signed-off-by: Daniel Koch Author: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/trunk@199 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent bef0b6d9
...@@ -50,6 +50,8 @@ class OutputHLSL : public TIntermTraverser ...@@ -50,6 +50,8 @@ class OutputHLSL : public TIntermTraverser
TString argumentString(const TIntermSymbol *symbol); TString argumentString(const TIntermSymbol *symbol);
int vectorSize(const TType &type) const; int vectorSize(const TType &type) const;
void addConstructor(const TType &type, const TString &name, const TIntermSequence &parameters);
TParseContext &mContext; TParseContext &mContext;
UnfoldSelect *mUnfoldSelect; UnfoldSelect *mUnfoldSelect;
bool mInsideFunction; bool mInsideFunction;
...@@ -87,6 +89,23 @@ class OutputHLSL : public TIntermTraverser ...@@ -87,6 +89,23 @@ class OutputHLSL : public TIntermTraverser
bool mUsesEqualBVec3; bool mUsesEqualBVec3;
bool mUsesEqualBVec4; bool mUsesEqualBVec4;
struct Constructor // Describes a constructor signature
{
TType type;
TString name;
typedef std::vector<TType> ParameterArray;
ParameterArray parameters;
};
struct CompareConstructor
{
bool operator()(const Constructor &x, const Constructor &y) const;
};
typedef std::set<Constructor, CompareConstructor> ConstructorSet;
ConstructorSet mConstructors;
int mArgumentIndex; // For creating unique argument names int mArgumentIndex; // For creating unique argument names
}; };
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment