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
15namespace rx
16{
17class TransformFeedbackImpl;
18}
19
20namespace gl
21{
22
23class 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