1 // 2 // Copyright (c) 2014 The ANGLE Project Authors. All rights reserved. 3 // Use of this source code is governed by a BSD-style license that can be 4 // found in the LICENSE file. 5 // 6 7 #ifndef LIBGLESV2_TRANSFORM_FEEDBACK_H_ 8 #define LIBGLESV2_TRANSFORM_FEEDBACK_H_ 9 10 #include "common/angleutils.h" 11 #include "common/RefCountObject.h" 12 13 #include "angle_gl.h" 14 15 namespace rx 16 { 17 class TransformFeedbackImpl; 18 } 19 20 namespace gl 21 { 22 23 class TransformFeedback : public RefCountObject 24 { 25 public: 26 TransformFeedback(rx::TransformFeedbackImpl* impl, GLuint id); 27 virtual ~TransformFeedback(); 28 29 void start(GLenum primitiveMode); 30 void stop(); 31 GLboolean isStarted() const; 32 33 GLenum getDrawMode() const; 34 35 void pause(); 36 void resume(); 37 GLboolean isPaused() const; 38 39 private: 40 DISALLOW_COPY_AND_ASSIGN(TransformFeedback); 41 42 rx::TransformFeedbackImpl* mTransformFeedback; 43 44 GLboolean mStarted; 45 GLenum mPrimitiveMode; 46 GLboolean mPaused; 47 }; 48 49 } 50 51 #endif // LIBGLESV2_TRANSFORM_FEEDBACK_H_ 52