diff options
author | Liang Qi <liang.qi@qt.io> | 2016-05-12 07:31:50 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-05-12 08:33:08 +0200 |
commit | 990969655c5fb4d03682e96df9b12101f5ee9815 (patch) | |
tree | b8fb5c50285105c8bc5a938fb50f93ff9f24889d /src/3rdparty/angle/src/libANGLE/Uniform.h | |
parent | a213011a53f12f101d08a04afc8fdacd2d54a232 (diff) | |
parent | e64b2234e829cc47872225debcf80d6c06db18f0 (diff) |
Merge remote-tracking branch 'origin/5.7' into dev
Conflicts:
config_help.txt
configure
src/corelib/io/qprocess_wince.cpp
src/plugins/platforms/windows/qwindowstheme.cpp
src/plugins/platforms/xcb/qxcbbackingstore.cpp
tests/auto/corelib/tools/qtimezone/BLACKLIST
tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp
tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
Change-Id: I26644d1cb3b78412c8ff285e2a55bea1bd641c01
Diffstat (limited to 'src/3rdparty/angle/src/libANGLE/Uniform.h')
-rw-r--r-- | src/3rdparty/angle/src/libANGLE/Uniform.h | 65 |
1 files changed, 30 insertions, 35 deletions
diff --git a/src/3rdparty/angle/src/libANGLE/Uniform.h b/src/3rdparty/angle/src/libANGLE/Uniform.h index dcf30f23cc..e62a583f3d 100644 --- a/src/3rdparty/angle/src/libANGLE/Uniform.h +++ b/src/3rdparty/angle/src/libANGLE/Uniform.h @@ -12,6 +12,7 @@ #include "angle_gl.h" #include "common/debug.h" +#include "common/MemoryBuffer.h" #include "compiler/translator/blocklayout.h" #include "libANGLE/angletypes.h" @@ -19,57 +20,51 @@ namespace gl { // Helper struct representing a single shader uniform -struct LinkedUniform : angle::NonCopyable +struct LinkedUniform : public sh::Uniform { + LinkedUniform(); LinkedUniform(GLenum type, GLenum precision, const std::string &name, unsigned int arraySize, const int blockIndex, const sh::BlockMemberInfo &blockInfo); - + LinkedUniform(const sh::Uniform &uniform); + LinkedUniform(const LinkedUniform &uniform); + LinkedUniform &operator=(const LinkedUniform &uniform); ~LinkedUniform(); - bool isArray() const; - unsigned int elementCount() const; - bool isReferencedByVertexShader() const; - bool isReferencedByFragmentShader() const; - bool isInDefaultBlock() const; size_t dataSize() const; + uint8_t *data(); + const uint8_t *data() const; bool isSampler() const; + bool isInDefaultBlock() const; + bool isField() const; + size_t getElementSize() const; + uint8_t *getDataPtrToElement(size_t elementIndex); + const uint8_t *getDataPtrToElement(size_t elementIndex) const; - const GLenum type; - const GLenum precision; - const std::string name; - const unsigned int arraySize; - const int blockIndex; - const sh::BlockMemberInfo blockInfo; - - unsigned char *data; - bool dirty; - - unsigned int psRegisterIndex; - unsigned int vsRegisterIndex; - unsigned int registerCount; + int blockIndex; + sh::BlockMemberInfo blockInfo; - // Register "elements" are used for uniform structs in ES3, to appropriately identify single uniforms - // inside aggregate types, which are packed according C-like structure rules. - unsigned int registerElement; + private: + mutable rx::MemoryBuffer mLazyData; }; // Helper struct representing a single shader uniform block -struct UniformBlock : angle::NonCopyable +struct UniformBlock { - // use GL_INVALID_INDEX for non-array elements - UniformBlock(const std::string &name, unsigned int elementIndex, unsigned int dataSize); + UniformBlock(); + UniformBlock(const std::string &nameIn, bool isArrayIn, unsigned int arrayElementIn); + UniformBlock(const UniformBlock &other) = default; + UniformBlock &operator=(const UniformBlock &other) = default; - bool isArrayElement() const; - bool isReferencedByVertexShader() const; - bool isReferencedByFragmentShader() const; + std::string nameWithArrayIndex() const; - const std::string name; - const unsigned int elementIndex; - const unsigned int dataSize; + std::string name; + bool isArray; + unsigned int arrayElement; + unsigned int dataSize; - std::vector<unsigned int> memberUniformIndexes; + bool vertexStaticUse; + bool fragmentStaticUse; - unsigned int psRegisterIndex; - unsigned int vsRegisterIndex; + std::vector<unsigned int> memberUniformIndexes; }; } |