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#include "libGLESv2/TransformFeedback.h" 8#include "libGLESv2/renderer/TransformFeedbackImpl.h" 9 10namespace gl 11{ 12 13TransformFeedback::TransformFeedback(rx::TransformFeedbackImpl* impl, GLuint id) 14 : RefCountObject(id), 15 mTransformFeedback(impl), 16 mStarted(GL_FALSE), 17 mPrimitiveMode(GL_NONE), 18 mPaused(GL_FALSE) 19{ 20 ASSERT(impl != NULL); 21} 22 23TransformFeedback::~TransformFeedback() 24{ 25 SafeDelete(mTransformFeedback); 26} 27 28void TransformFeedback::start(GLenum primitiveMode) 29{ 30 mStarted = GL_TRUE; 31 mPrimitiveMode = primitiveMode; 32 mPaused = GL_FALSE; 33 mTransformFeedback->begin(primitiveMode); 34} 35 36void TransformFeedback::stop() 37{ 38 mStarted = GL_FALSE; 39 mPrimitiveMode = GL_NONE; 40 mPaused = GL_FALSE; 41 mTransformFeedback->end(); 42} 43 44GLboolean TransformFeedback::isStarted() const 45{ 46 return mStarted; 47} 48 49GLenum TransformFeedback::getDrawMode() const 50{ 51 return mPrimitiveMode; 52} 53 54void TransformFeedback::pause() 55{ 56 mPaused = GL_TRUE; 57 mTransformFeedback->pause(); 58} 59 60void TransformFeedback::resume() 61{ 62 mPaused = GL_FALSE; 63 mTransformFeedback->resume(); 64} 65 66GLboolean TransformFeedback::isPaused() const 67{ 68 return mPaused; 69} 70 71} 72