Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / angle / src / libGLESv2 / TransformFeedback.cpp
index 79ce084..bfa7072 100644 (file)
@@ -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