summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/libGLESv2/TransformFeedback.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/angle/src/libGLESv2/TransformFeedback.cpp')
-rw-r--r--src/3rdparty/angle/src/libGLESv2/TransformFeedback.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/3rdparty/angle/src/libGLESv2/TransformFeedback.cpp b/src/3rdparty/angle/src/libGLESv2/TransformFeedback.cpp
index 79ce08405d..bfa7072326 100644
--- a/src/3rdparty/angle/src/libGLESv2/TransformFeedback.cpp
+++ b/src/3rdparty/angle/src/libGLESv2/TransformFeedback.cpp
@@ -5,20 +5,24 @@
//
#include "libGLESv2/TransformFeedback.h"
+#include "libGLESv2/renderer/TransformFeedbackImpl.h"
namespace gl
{
-TransformFeedback::TransformFeedback(GLuint id)
+TransformFeedback::TransformFeedback(rx::TransformFeedbackImpl* impl, GLuint id)
: RefCountObject(id),
+ mTransformFeedback(impl),
mStarted(GL_FALSE),
mPrimitiveMode(GL_NONE),
mPaused(GL_FALSE)
{
+ ASSERT(impl != NULL);
}
TransformFeedback::~TransformFeedback()
{
+ SafeDelete(mTransformFeedback);
}
void TransformFeedback::start(GLenum primitiveMode)
@@ -26,6 +30,7 @@ void TransformFeedback::start(GLenum primitiveMode)
mStarted = GL_TRUE;
mPrimitiveMode = primitiveMode;
mPaused = GL_FALSE;
+ mTransformFeedback->begin(primitiveMode);
}
void TransformFeedback::stop()
@@ -33,6 +38,7 @@ void TransformFeedback::stop()
mStarted = GL_FALSE;
mPrimitiveMode = GL_NONE;
mPaused = GL_FALSE;
+ mTransformFeedback->end();
}
GLboolean TransformFeedback::isStarted() const
@@ -48,11 +54,13 @@ GLenum TransformFeedback::getDrawMode() const
void TransformFeedback::pause()
{
mPaused = GL_TRUE;
+ mTransformFeedback->pause();
}
void TransformFeedback::resume()
{
mPaused = GL_FALSE;
+ mTransformFeedback->resume();
}
GLboolean TransformFeedback::isPaused() const