diff options
Diffstat (limited to 'src/3rdparty/angle/src/libANGLE/Data.h')
-rw-r--r-- | src/3rdparty/angle/src/libANGLE/Data.h | 48 |
1 files changed, 41 insertions, 7 deletions
diff --git a/src/3rdparty/angle/src/libANGLE/Data.h b/src/3rdparty/angle/src/libANGLE/Data.h index 7eb6827dfc..f7230d74bc 100644 --- a/src/3rdparty/angle/src/libANGLE/Data.h +++ b/src/3rdparty/angle/src/libANGLE/Data.h @@ -9,28 +9,62 @@ #ifndef LIBANGLE_DATA_H_ #define LIBANGLE_DATA_H_ +#include "common/angleutils.h" #include "libANGLE/State.h" namespace gl { -struct Data final +struct Data final : public angle::NonCopyable { public: - Data(GLint clientVersion, const State &state, const Caps &caps, - const TextureCapsMap &textureCaps, const Extensions &extensions, - const ResourceManager *resourceManager); + Data(uintptr_t context, + GLint clientVersion, + const State &state, + const Caps &caps, + const TextureCapsMap &textureCaps, + const Extensions &extensions, + const ResourceManager *resourceManager, + const Limitations &limitations); ~Data(); - Data(const Data &other); - Data &operator=(const Data &other); - + uintptr_t context; GLint clientVersion; const State *state; const Caps *caps; const TextureCapsMap *textureCaps; const Extensions *extensions; const ResourceManager *resourceManager; + const Limitations *limitations; +}; + +class ValidationContext : angle::NonCopyable +{ + public: + ValidationContext(GLint clientVersion, + const State &state, + const Caps &caps, + const TextureCapsMap &textureCaps, + const Extensions &extensions, + const ResourceManager *resourceManager, + const Limitations &limitations, + bool skipValidation); + virtual ~ValidationContext() {} + + virtual void recordError(const Error &error) = 0; + + const Data &getData() const { return mData; } + int getClientVersion() const { return mData.clientVersion; } + const State &getState() const { return *mData.state; } + const Caps &getCaps() const { return *mData.caps; } + const TextureCapsMap &getTextureCaps() const { return *mData.textureCaps; } + const Extensions &getExtensions() const { return *mData.extensions; } + const Limitations &getLimitations() const { return *mData.limitations; } + bool skipValidation() const { return mSkipValidation; } + + protected: + Data mData; + bool mSkipValidation; }; } |