Lines Matching full:clear

21  * \brief Depth and stencil clear tests.
66 struct Clear struct
68 Clear(void) in Clear() function
139 void generateClears(vector<Clear> &dst, uint32_t seed);
140 void renderGL(tcu::Surface &dst, const vector<Clear> &clears);
141 void renderReference(tcu::Surface &dst, const vector<Clear> &clears);
221 vector<Clear> clears; in iterate()
241 void DepthStencilClearCase::generateClears(vector<Clear> &clears, uint32_t seed) in generateClears()
250 for (vector<Clear>::iterator clear = clears.begin(); clear != clears.end(); clear++) in generateClears() local
259 clear->useScissor = true; // \todo [pyry] Should we randomize? in generateClears()
260 clear->scissor = tcu::IVec4(x, y, w, h); in generateClears()
263 clear->useScissor = false; in generateClears()
265 clear->clearDepth = rnd.getFloat(-0.2f, 1.2f); in generateClears()
266 clear->clearStencil = rnd.getUint32(); in generateClears()
268 clear->depthMask = m_masked ? rnd.getBool() : true; in generateClears()
269 clear->stencilMask = m_masked ? rnd.getUint32() : 0xffffffffu; in generateClears()
276 clear->clearMask = GL_DEPTH_BUFFER_BIT; in generateClears()
279 clear->clearMask = GL_STENCIL_BUFFER_BIT; in generateClears()
282 clear->clearMask = GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT; in generateClears()
287 clear->clearMask = GL_DEPTH_BUFFER_BIT; in generateClears()
291 clear->clearMask = GL_STENCIL_BUFFER_BIT; in generateClears()
296 void DepthStencilClearCase::renderGL(tcu::Surface &dst, const vector<Clear> &clears) in renderGL()
303 // Clear with default values. in renderGL()
307 gl.clear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); in renderGL()
311 for (vector<Clear>::const_iterator clear = clears.begin(); clear != clears.end(); clear++) in renderGL() local
313 if (clear->useScissor) in renderGL()
316 … gl.scissor(clear->scissor.x(), clear->scissor.y(), clear->scissor.z(), clear->scissor.w()); in renderGL()
319 // Clear values. in renderGL()
320 gl.clearDepthf(clear->clearDepth); in renderGL()
321 gl.clearStencil(clear->clearStencil); in renderGL()
324 gl.depthMask(clear->depthMask ? GL_TRUE : GL_FALSE); in renderGL()
325 gl.stencilMask(clear->stencilMask); in renderGL()
327 // Execute clear. in renderGL()
328 gl.clear(clear->clearMask); in renderGL()
330 if (clear->useScissor) in renderGL()
405 void DepthStencilClearCase::renderReference(tcu::Surface &dst, const vector<Clear> &clears) in renderReference()
410 // Clear surface to red. in renderReference()
411 tcu::clear(dst.getAccess(), tcu::RGBA::red().toVec()); in renderReference()
421 // Clear to default value. in renderReference()
426 … for (vector<Clear>::const_iterator clear = clears.begin(); clear != clears.end(); clear++) in renderReference() local
428 // Clear / mask test. in renderReference()
429 if ((clear->clearMask & GL_DEPTH_BUFFER_BIT) == 0 || !clear->depthMask) in renderReference()
433clear->useScissor ? clear->scissor : tcu::IVec4(0, 0, dst.getWidth(), dst.getHeight()); in renderReference()
440 rowAccess.setPixDepth(de::clamp(clear->clearDepth, 0.0f, 1.0f), x, 0); in renderReference()
468 // Clear to default value. in renderReference()
473 … for (vector<Clear>::const_iterator clear = clears.begin(); clear != clears.end(); clear++) in renderReference() local
475 // Clear / mask test. in renderReference()
476 if ((clear->clearMask & GL_STENCIL_BUFFER_BIT) == 0 || clear->stencilMask == 0) in renderReference()
480clear->useScissor ? clear->scissor : tcu::IVec4(0, 0, dst.getWidth(), dst.getHeight()); in renderReference()
490 … ((oldVal & ~clear->stencilMask) | (clear->clearStencil & clear->stencilMask)) & bufMask; in renderReference()
512 : TestCaseGroup(context, "depth_stencil_clear", "Depth and stencil clear tests") in DepthStencilClearTests()