Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / angle / src / libGLESv2 / TransformFeedback.h
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_