• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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