Commit f4b2c4fd by Jamie Madill

Refactor DynamicHLSL geometry shader code more.

This refactor adds a typed iterator class for helping to iterate over varying registers from packed varyings. We use the same iteration logic in several places and it has a triple loop, so encapsulating this into an iterator class keeps it cleaner. The other change is to use std::stringstream in places where we would return a std::string. These refactorings will aid in subsequent work to implement provoking vertex fixes and to refactor our varying packing algorithm. BUG=angleproject:754 Change-Id: Id44a1f68ccd4edc3458f1cf514f5eab4b8cd4151 Reviewed-on: https://chromium-review.googlesource.com/309811Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org> Tested-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 62c49f5d
...@@ -115,20 +115,24 @@ class DynamicHLSL : angle::NonCopyable ...@@ -115,20 +115,24 @@ class DynamicHLSL : angle::NonCopyable
struct SemanticInfo; struct SemanticInfo;
std::string getVaryingSemantic(bool pointSize) const; std::string getVaryingSemantic(bool programUsesPointSize) const;
SemanticInfo getSemanticInfo(unsigned int startRegisters, SemanticInfo getSemanticInfo(unsigned int startRegisters,
bool position, bool position,
bool fragCoord, bool fragCoord,
bool pointCoord, bool pointCoord,
bool pointSize, bool pointSize,
bool pixelShader) const; bool pixelShader) const;
std::string generateVaryingLinkHLSL(const SemanticInfo &info, void generateVaryingLinkHLSL(const gl::Caps &caps,
const std::string &varyingHLSL) const; bool programUsesPointSize,
std::string generateVaryingHLSL(const gl::Caps &caps, const SemanticInfo &info,
const std::vector<PackedVarying> &varyings, const std::vector<PackedVarying> &packedVaryings,
bool shaderUsesPointSize) const; std::stringstream &linkStream) const;
void generateVaryingHLSL(const gl::Caps &caps,
const std::vector<PackedVarying> &varyings,
bool programUsesPointSize,
std::stringstream &hlslStream) const;
void storeUserLinkedVaryings(const std::vector<PackedVarying> &packedVaryings, void storeUserLinkedVaryings(const std::vector<PackedVarying> &packedVaryings,
bool shaderUsesPointSize, bool programUsesPointSize,
std::vector<gl::LinkedVarying> *linkedVaryings) const; std::vector<gl::LinkedVarying> *linkedVaryings) const;
void storeBuiltinLinkedVaryings(const SemanticInfo &info, void storeBuiltinLinkedVaryings(const SemanticInfo &info,
std::vector<gl::LinkedVarying> *linkedVaryings) const; std::vector<gl::LinkedVarying> *linkedVaryings) const;
......
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