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 <GLES3/gl3.h>
14#include <GLES2/gl2.h>
15
16namespace gl
17{
18
19class TransformFeedback : public RefCountObject
20{
21  public:
22    explicit TransformFeedback(GLuint id);
23    virtual ~TransformFeedback();
24
25    void start(GLenum primitiveMode);
26    void stop();
27    GLboolean isStarted() const;
28
29    GLenum getDrawMode() const;
30
31    void pause();
32    void resume();
33    GLboolean isPaused() const;
34
35  private:
36    DISALLOW_COPY_AND_ASSIGN(TransformFeedback);
37
38    GLboolean mStarted;
39    GLenum mPrimitiveMode;
40    GLboolean mPaused;
41};
42
43}
44
45#endif // LIBGLESV2_TRANSFORM_FEEDBACK_H_
46