diff options
Diffstat (limited to 'src/3rdparty/angle/src/libANGLE/TransformFeedback.h')
-rw-r--r-- | src/3rdparty/angle/src/libANGLE/TransformFeedback.h | 44 |
1 files changed, 33 insertions, 11 deletions
diff --git a/src/3rdparty/angle/src/libANGLE/TransformFeedback.h b/src/3rdparty/angle/src/libANGLE/TransformFeedback.h index 7673db93ff..098e4ea4d6 100644 --- a/src/3rdparty/angle/src/libANGLE/TransformFeedback.h +++ b/src/3rdparty/angle/src/libANGLE/TransformFeedback.h @@ -10,6 +10,7 @@ #include "libANGLE/RefCountObject.h" #include "common/angleutils.h" +#include "libANGLE/Debug.h" #include "angle_gl.h" @@ -20,29 +21,50 @@ class TransformFeedbackImpl; namespace gl { +class Buffer; +struct Caps; -class TransformFeedback : public RefCountObject +class TransformFeedback final : public RefCountObject, public LabeledObject { public: - TransformFeedback(rx::TransformFeedbackImpl* impl, GLuint id); + TransformFeedback(rx::TransformFeedbackImpl* impl, GLuint id, const Caps &caps); virtual ~TransformFeedback(); - void start(GLenum primitiveMode); - void stop(); - GLboolean isStarted() const; - - GLenum getDrawMode() const; + void setLabel(const std::string &label) override; + const std::string &getLabel() const override; + void begin(GLenum primitiveMode); + void end(); void pause(); void resume(); - GLboolean isPaused() const; + + bool isActive() const; + bool isPaused() const; + GLenum getPrimitiveMode() const; + + void bindGenericBuffer(Buffer *buffer); + const BindingPointer<Buffer> &getGenericBuffer() const; + + void bindIndexedBuffer(size_t index, Buffer *buffer, size_t offset, size_t size); + const OffsetBindingPointer<Buffer> &getIndexedBuffer(size_t index) const; + size_t getIndexedBufferCount() const; + + void detachBuffer(GLuint bufferName); + + rx::TransformFeedbackImpl *getImplementation(); + const rx::TransformFeedbackImpl *getImplementation() const; private: - rx::TransformFeedbackImpl* mTransformFeedback; + rx::TransformFeedbackImpl* mImplementation; - GLboolean mStarted; + std::string mLabel; + + bool mActive; GLenum mPrimitiveMode; - GLboolean mPaused; + bool mPaused; + + BindingPointer<Buffer> mGenericBuffer; + std::vector<OffsetBindingPointer<Buffer>> mIndexedBuffers; }; } |