Commit bb0a0bbd by Geoff Lang

Rename TransformFeedback members to match the spec.

BUG=angleproject:763 Change-Id: I12fa57de9263eb0cb5ff1840cf44b0a8f2a40912 Reviewed-on: https://chromium-review.googlesource.com/263721Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Tested-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent cfaeaa9f
...@@ -851,7 +851,7 @@ TransformFeedback *State::getCurrentTransformFeedback() const ...@@ -851,7 +851,7 @@ TransformFeedback *State::getCurrentTransformFeedback() const
bool State::isTransformFeedbackActiveUnpaused() const bool State::isTransformFeedbackActiveUnpaused() const
{ {
gl::TransformFeedback *curTransformFeedback = getCurrentTransformFeedback(); gl::TransformFeedback *curTransformFeedback = getCurrentTransformFeedback();
return curTransformFeedback && curTransformFeedback->isStarted() && !curTransformFeedback->isPaused(); return curTransformFeedback && curTransformFeedback->isActive() && !curTransformFeedback->isPaused();
} }
void State::detachTransformFeedback(GLuint transformFeedback) void State::detachTransformFeedback(GLuint transformFeedback)
...@@ -1149,8 +1149,8 @@ void State::getBooleanv(GLenum pname, GLboolean *params) ...@@ -1149,8 +1149,8 @@ void State::getBooleanv(GLenum pname, GLboolean *params)
case GL_DEPTH_TEST: *params = mDepthStencil.depthTest; break; case GL_DEPTH_TEST: *params = mDepthStencil.depthTest; break;
case GL_BLEND: *params = mBlend.blend; break; case GL_BLEND: *params = mBlend.blend; break;
case GL_DITHER: *params = mBlend.dither; break; case GL_DITHER: *params = mBlend.dither; break;
case GL_TRANSFORM_FEEDBACK_ACTIVE: *params = getCurrentTransformFeedback()->isStarted(); break; case GL_TRANSFORM_FEEDBACK_ACTIVE: *params = getCurrentTransformFeedback()->isActive() ? GL_TRUE : GL_FALSE; break;
case GL_TRANSFORM_FEEDBACK_PAUSED: *params = getCurrentTransformFeedback()->isPaused(); break; case GL_TRANSFORM_FEEDBACK_PAUSED: *params = getCurrentTransformFeedback()->isPaused() ? GL_TRUE : GL_FALSE; break;
default: default:
UNREACHABLE(); UNREACHABLE();
break; break;
......
...@@ -12,60 +12,70 @@ namespace gl ...@@ -12,60 +12,70 @@ namespace gl
TransformFeedback::TransformFeedback(rx::TransformFeedbackImpl* impl, GLuint id) TransformFeedback::TransformFeedback(rx::TransformFeedbackImpl* impl, GLuint id)
: RefCountObject(id), : RefCountObject(id),
mTransformFeedback(impl), mImplementation(impl),
mStarted(GL_FALSE), mActive(false),
mPrimitiveMode(GL_NONE), mPrimitiveMode(GL_NONE),
mPaused(GL_FALSE) mPaused(false)
{ {
ASSERT(impl != NULL); ASSERT(impl != NULL);
} }
TransformFeedback::~TransformFeedback() TransformFeedback::~TransformFeedback()
{ {
SafeDelete(mTransformFeedback); SafeDelete(mImplementation);
} }
void TransformFeedback::start(GLenum primitiveMode) void TransformFeedback::begin(GLenum primitiveMode)
{ {
mStarted = GL_TRUE; mActive = true;
mPrimitiveMode = primitiveMode; mPrimitiveMode = primitiveMode;
mPaused = GL_FALSE; mPaused = false;
mTransformFeedback->begin(primitiveMode); mImplementation->begin(primitiveMode);
} }
void TransformFeedback::stop() void TransformFeedback::end()
{ {
mStarted = GL_FALSE; mActive = false;
mPrimitiveMode = GL_NONE; mPrimitiveMode = GL_NONE;
mPaused = GL_FALSE; mPaused = false;
mTransformFeedback->end(); mImplementation->end();
} }
GLboolean TransformFeedback::isStarted() const void TransformFeedback::pause()
{ {
return mStarted; mPaused = true;
mImplementation->pause();
} }
GLenum TransformFeedback::getDrawMode() const void TransformFeedback::resume()
{ {
return mPrimitiveMode; mPaused = false;
mImplementation->resume();
} }
void TransformFeedback::pause() bool TransformFeedback::isActive() const
{ {
mPaused = GL_TRUE; return mActive;
mTransformFeedback->pause();
} }
void TransformFeedback::resume() bool TransformFeedback::isPaused() const
{ {
mPaused = GL_FALSE; return mPaused;
mTransformFeedback->resume();
} }
GLboolean TransformFeedback::isPaused() const GLenum TransformFeedback::getPrimitiveMode() const
{ {
return mPaused; return mPrimitiveMode;
}
rx::TransformFeedbackImpl *TransformFeedback::getImplementation()
{
return mImplementation;
}
const rx::TransformFeedbackImpl *TransformFeedback::getImplementation() const
{
return mImplementation;
} }
} }
...@@ -27,22 +27,24 @@ class TransformFeedback : public RefCountObject ...@@ -27,22 +27,24 @@ class TransformFeedback : public RefCountObject
TransformFeedback(rx::TransformFeedbackImpl* impl, GLuint id); TransformFeedback(rx::TransformFeedbackImpl* impl, GLuint id);
virtual ~TransformFeedback(); virtual ~TransformFeedback();
void start(GLenum primitiveMode); void begin(GLenum primitiveMode);
void stop(); void end();
GLboolean isStarted() const;
GLenum getDrawMode() const;
void pause(); void pause();
void resume(); void resume();
GLboolean isPaused() const;
bool isActive() const;
bool isPaused() const;
GLenum getPrimitiveMode() const;
rx::TransformFeedbackImpl *getImplementation();
const rx::TransformFeedbackImpl *getImplementation() const;
private: private:
rx::TransformFeedbackImpl* mTransformFeedback; rx::TransformFeedbackImpl* mImplementation;
GLboolean mStarted; bool mActive;
GLenum mPrimitiveMode; GLenum mPrimitiveMode;
GLboolean mPaused; bool mPaused;
}; };
} }
......
...@@ -63,32 +63,32 @@ TEST_F(TransformFeedbackTest, SideEffectsOfStartAndStop) ...@@ -63,32 +63,32 @@ TEST_F(TransformFeedbackTest, SideEffectsOfStartAndStop)
{ {
testing::InSequence seq; testing::InSequence seq;
EXPECT_EQ(GL_FALSE, mFeedback->isStarted()); EXPECT_FALSE(mFeedback->isActive());
EXPECT_CALL(*mImpl, begin(GL_TRIANGLES)); EXPECT_CALL(*mImpl, begin(GL_TRIANGLES));
mFeedback->start(GL_TRIANGLES); mFeedback->begin(GL_TRIANGLES);
EXPECT_EQ(GL_TRUE, mFeedback->isStarted()); EXPECT_TRUE(mFeedback->isActive());
EXPECT_EQ(static_cast<GLenum>(GL_TRIANGLES), mFeedback->getDrawMode()); EXPECT_EQ(static_cast<GLenum>(GL_TRIANGLES), mFeedback->getPrimitiveMode());
EXPECT_CALL(*mImpl, end()); EXPECT_CALL(*mImpl, end());
mFeedback->stop(); mFeedback->end();
EXPECT_EQ(GL_FALSE, mFeedback->isStarted()); EXPECT_FALSE(mFeedback->isActive());
} }
TEST_F(TransformFeedbackTest, SideEffectsOfPauseAndResume) TEST_F(TransformFeedbackTest, SideEffectsOfPauseAndResume)
{ {
testing::InSequence seq; testing::InSequence seq;
EXPECT_FALSE(mFeedback->isStarted()); EXPECT_FALSE(mFeedback->isActive());
EXPECT_CALL(*mImpl, begin(GL_TRIANGLES)); EXPECT_CALL(*mImpl, begin(GL_TRIANGLES));
mFeedback->start(GL_TRIANGLES); mFeedback->begin(GL_TRIANGLES);
EXPECT_EQ(GL_FALSE, mFeedback->isPaused()); EXPECT_FALSE(mFeedback->isPaused());
EXPECT_CALL(*mImpl, pause()); EXPECT_CALL(*mImpl, pause());
mFeedback->pause(); mFeedback->pause();
EXPECT_EQ(GL_TRUE, mFeedback->isPaused()); EXPECT_TRUE(mFeedback->isPaused());
EXPECT_CALL(*mImpl, resume()); EXPECT_CALL(*mImpl, resume());
mFeedback->resume(); mFeedback->resume();
EXPECT_EQ(GL_FALSE, mFeedback->isPaused()); EXPECT_FALSE(mFeedback->isPaused());
EXPECT_CALL(*mImpl, end()); EXPECT_CALL(*mImpl, end());
mFeedback->stop(); mFeedback->end();
} }
} // namespace } // namespace
...@@ -1488,8 +1488,8 @@ bool ValidateDrawArrays(Context *context, GLenum mode, GLint first, GLsizei coun ...@@ -1488,8 +1488,8 @@ bool ValidateDrawArrays(Context *context, GLenum mode, GLint first, GLsizei coun
const State &state = context->getState(); const State &state = context->getState();
gl::TransformFeedback *curTransformFeedback = state.getCurrentTransformFeedback(); gl::TransformFeedback *curTransformFeedback = state.getCurrentTransformFeedback();
if (curTransformFeedback && curTransformFeedback->isStarted() && !curTransformFeedback->isPaused() && if (curTransformFeedback && curTransformFeedback->isActive() && !curTransformFeedback->isPaused() &&
curTransformFeedback->getDrawMode() != mode) curTransformFeedback->getPrimitiveMode() != mode)
{ {
// It is an invalid operation to call DrawArrays or DrawArraysInstanced with a draw mode // It is an invalid operation to call DrawArrays or DrawArraysInstanced with a draw mode
// that does not match the current transform feedback object's draw mode (if transform feedback // that does not match the current transform feedback object's draw mode (if transform feedback
...@@ -1579,7 +1579,7 @@ bool ValidateDrawElements(Context *context, GLenum mode, GLsizei count, GLenum t ...@@ -1579,7 +1579,7 @@ bool ValidateDrawElements(Context *context, GLenum mode, GLsizei count, GLenum t
const State &state = context->getState(); const State &state = context->getState();
gl::TransformFeedback *curTransformFeedback = state.getCurrentTransformFeedback(); gl::TransformFeedback *curTransformFeedback = state.getCurrentTransformFeedback();
if (curTransformFeedback && curTransformFeedback->isStarted() && !curTransformFeedback->isPaused()) if (curTransformFeedback && curTransformFeedback->isActive() && !curTransformFeedback->isPaused())
{ {
// It is an invalid operation to call DrawElements, DrawRangeElements or DrawElementsInstanced // It is an invalid operation to call DrawElements, DrawRangeElements or DrawElementsInstanced
// while transform feedback is active, (3.0.2, section 2.14, pg 86) // while transform feedback is active, (3.0.2, section 2.14, pg 86)
......
...@@ -1026,7 +1026,7 @@ void GL_APIENTRY BeginTransformFeedback(GLenum primitiveMode) ...@@ -1026,7 +1026,7 @@ void GL_APIENTRY BeginTransformFeedback(GLenum primitiveMode)
TransformFeedback *transformFeedback = context->getState().getCurrentTransformFeedback(); TransformFeedback *transformFeedback = context->getState().getCurrentTransformFeedback();
ASSERT(transformFeedback != NULL); ASSERT(transformFeedback != NULL);
if (transformFeedback->isStarted()) if (transformFeedback->isActive())
{ {
context->recordError(Error(GL_INVALID_OPERATION)); context->recordError(Error(GL_INVALID_OPERATION));
return; return;
...@@ -1038,7 +1038,7 @@ void GL_APIENTRY BeginTransformFeedback(GLenum primitiveMode) ...@@ -1038,7 +1038,7 @@ void GL_APIENTRY BeginTransformFeedback(GLenum primitiveMode)
} }
else else
{ {
transformFeedback->start(primitiveMode); transformFeedback->begin(primitiveMode);
} }
} }
} }
...@@ -1059,13 +1059,13 @@ void GL_APIENTRY EndTransformFeedback(void) ...@@ -1059,13 +1059,13 @@ void GL_APIENTRY EndTransformFeedback(void)
TransformFeedback *transformFeedback = context->getState().getCurrentTransformFeedback(); TransformFeedback *transformFeedback = context->getState().getCurrentTransformFeedback();
ASSERT(transformFeedback != NULL); ASSERT(transformFeedback != NULL);
if (!transformFeedback->isStarted()) if (!transformFeedback->isActive())
{ {
context->recordError(Error(GL_INVALID_OPERATION)); context->recordError(Error(GL_INVALID_OPERATION));
return; return;
} }
transformFeedback->stop(); transformFeedback->end();
} }
} }
...@@ -1126,7 +1126,7 @@ void GL_APIENTRY BindBufferRange(GLenum target, GLuint index, GLuint buffer, GLi ...@@ -1126,7 +1126,7 @@ void GL_APIENTRY BindBufferRange(GLenum target, GLuint index, GLuint buffer, GLi
// Cannot bind a transform feedback buffer if the current transform feedback is active (3.0.4 pg 91 section 2.15.2) // Cannot bind a transform feedback buffer if the current transform feedback is active (3.0.4 pg 91 section 2.15.2)
TransformFeedback *curTransformFeedback = context->getState().getCurrentTransformFeedback(); TransformFeedback *curTransformFeedback = context->getState().getCurrentTransformFeedback();
if (curTransformFeedback && curTransformFeedback->isStarted()) if (curTransformFeedback && curTransformFeedback->isActive())
{ {
context->recordError(Error(GL_INVALID_OPERATION)); context->recordError(Error(GL_INVALID_OPERATION));
return; return;
...@@ -1200,7 +1200,7 @@ void GL_APIENTRY BindBufferBase(GLenum target, GLuint index, GLuint buffer) ...@@ -1200,7 +1200,7 @@ void GL_APIENTRY BindBufferBase(GLenum target, GLuint index, GLuint buffer)
{ {
// Cannot bind a transform feedback buffer if the current transform feedback is active (3.0.4 pg 91 section 2.15.2) // Cannot bind a transform feedback buffer if the current transform feedback is active (3.0.4 pg 91 section 2.15.2)
TransformFeedback *curTransformFeedback = context->getState().getCurrentTransformFeedback(); TransformFeedback *curTransformFeedback = context->getState().getCurrentTransformFeedback();
if (curTransformFeedback && curTransformFeedback->isStarted()) if (curTransformFeedback && curTransformFeedback->isActive())
{ {
context->recordError(Error(GL_INVALID_OPERATION)); context->recordError(Error(GL_INVALID_OPERATION));
return; return;
...@@ -3005,7 +3005,7 @@ void GL_APIENTRY BindTransformFeedback(GLenum target, GLuint id) ...@@ -3005,7 +3005,7 @@ void GL_APIENTRY BindTransformFeedback(GLenum target, GLuint id)
{ {
// Cannot bind a transform feedback object if the current one is started and not paused (3.0.2 pg 85 section 2.14.1) // Cannot bind a transform feedback object if the current one is started and not paused (3.0.2 pg 85 section 2.14.1)
TransformFeedback *curTransformFeedback = context->getState().getCurrentTransformFeedback(); TransformFeedback *curTransformFeedback = context->getState().getCurrentTransformFeedback();
if (curTransformFeedback && curTransformFeedback->isStarted() && !curTransformFeedback->isPaused()) if (curTransformFeedback && curTransformFeedback->isActive() && !curTransformFeedback->isPaused())
{ {
context->recordError(Error(GL_INVALID_OPERATION)); context->recordError(Error(GL_INVALID_OPERATION));
return; return;
...@@ -3104,8 +3104,8 @@ void GL_APIENTRY PauseTransformFeedback(void) ...@@ -3104,8 +3104,8 @@ void GL_APIENTRY PauseTransformFeedback(void)
TransformFeedback *transformFeedback = context->getState().getCurrentTransformFeedback(); TransformFeedback *transformFeedback = context->getState().getCurrentTransformFeedback();
ASSERT(transformFeedback != NULL); ASSERT(transformFeedback != NULL);
// Current transform feedback must be started and not paused in order to pause (3.0.2 pg 86) // Current transform feedback must be active and not paused in order to pause (3.0.2 pg 86)
if (!transformFeedback->isStarted() || transformFeedback->isPaused()) if (!transformFeedback->isActive() || transformFeedback->isPaused())
{ {
context->recordError(Error(GL_INVALID_OPERATION)); context->recordError(Error(GL_INVALID_OPERATION));
return; return;
...@@ -3131,8 +3131,8 @@ void GL_APIENTRY ResumeTransformFeedback(void) ...@@ -3131,8 +3131,8 @@ void GL_APIENTRY ResumeTransformFeedback(void)
TransformFeedback *transformFeedback = context->getState().getCurrentTransformFeedback(); TransformFeedback *transformFeedback = context->getState().getCurrentTransformFeedback();
ASSERT(transformFeedback != NULL); ASSERT(transformFeedback != NULL);
// Current transform feedback must be started and paused in order to resume (3.0.2 pg 86) // Current transform feedback must be active and paused in order to resume (3.0.2 pg 86)
if (!transformFeedback->isStarted() || !transformFeedback->isPaused()) if (!transformFeedback->isActive() || !transformFeedback->isPaused())
{ {
context->recordError(Error(GL_INVALID_OPERATION)); context->recordError(Error(GL_INVALID_OPERATION));
return; return;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment