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