void State::getBooleanv(GLenum pname, GLboolean *params) { switch (pname) { case GL_SAMPLE_COVERAGE_INVERT: *params = mSampleCoverageInvert; break; case GL_DEPTH_WRITEMASK: *params = mDepthStencil.depthMask; break; case GL_COLOR_WRITEMASK: params[0] = mBlend.colorMaskRed; params[1] = mBlend.colorMaskGreen; params[2] = mBlend.colorMaskBlue; params[3] = mBlend.colorMaskAlpha; break; case GL_CULL_FACE: *params = mRasterizer.cullFace; break; case GL_POLYGON_OFFSET_FILL: *params = mRasterizer.polygonOffsetFill; break; case GL_SAMPLE_ALPHA_TO_COVERAGE: *params = mBlend.sampleAlphaToCoverage; break; case GL_SAMPLE_COVERAGE: *params = mSampleCoverage; break; case GL_SCISSOR_TEST: *params = mScissorTest; break; case GL_STENCIL_TEST: *params = mDepthStencil.stencilTest; break; case GL_DEPTH_TEST: *params = mDepthStencil.depthTest; break; case GL_BLEND: *params = mBlend.blend; break; case GL_DITHER: *params = mBlend.dither; break; case GL_TRANSFORM_FEEDBACK_ACTIVE: *params = getCurrentTransformFeedback()->isStarted(); break; case GL_TRANSFORM_FEEDBACK_PAUSED: *params = getCurrentTransformFeedback()->isPaused(); break; default: UNREACHABLE(); break; } }
bool State::isTransformFeedbackActiveUnpaused() const { gl::TransformFeedback *curTransformFeedback = getCurrentTransformFeedback(); return curTransformFeedback && curTransformFeedback->isStarted() && !curTransformFeedback->isPaused(); }