/** * /return GL_TRUE = one or more fragments passed, * GL_FALSE = all fragments failed. */ GLboolean _swrast_stencil_and_ztest_span(GLcontext *ctx, SWspan *span) { if (span->arrayMask & SPAN_XY) return stencil_and_ztest_pixels(ctx, span, span->facing); else return stencil_and_ztest_span(ctx, span, span->facing); }
/** * /return GL_TRUE = one or more fragments passed, * GL_FALSE = all fragments failed. */ GLboolean _swrast_stencil_and_ztest_span(GLcontext *ctx, struct sw_span *span) { /* span->facing can only be non-zero if using two-sided stencil */ ASSERT(ctx->Stencil.TestTwoSide || span->facing == 0); if (span->arrayMask & SPAN_XY) return stencil_and_ztest_pixels(ctx, span, span->facing); else return stencil_and_ztest_span(ctx, span, span->facing); }
/** * /return GL_TRUE = one or more fragments passed, * GL_FALSE = all fragments failed. */ GLboolean _swrast_stencil_and_ztest_span(struct gl_context *ctx, SWspan *span) { const GLuint face = (span->facing == 0) ? 0 : ctx->Stencil._BackFace; if (span->arrayMask & SPAN_XY) return stencil_and_ztest_pixels(ctx, span, face); else return stencil_and_ztest_span(ctx, span, face); }