[Mesa-dev] [PATCH] mesa: Restore depth texture state on glPopAttrib(GL_TEXTURE_BIT).
Brian Paul
brianp at vmware.com
Fri Jun 1 06:46:27 PDT 2012
On 06/01/2012 04:52 AM, Kenneth Graunke wrote:
> According to Table 6.17 in the GL 2.1 specification, DEPTH_TEXTURE_MODE,
> TEXTURE_COMPARE_MODE, and TEXTURE_COMPARE_FUNC need to be restored on
> glPopAttrib(GL_TEXTURE_BIT).
>
> Makes a number of oglconform tests happier.
>
> v2: Make restoration conditional on the ARB_shadow and ARB_depth_texture
> extensions, as suggested by Brian. I'm not sure that any
> implementations still remain that don't support those, but why not?
>
> NOTE: This is a candidate for stable release branches.
>
> Signed-off-by: Kenneth Graunke<kenneth at whitecape.org>
> ---
> src/mesa/main/attrib.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c
> index b114ec9..318d576 100644
> --- a/src/mesa/main/attrib.c
> +++ b/src/mesa/main/attrib.c
> @@ -799,6 +799,14 @@ pop_texture_group(struct gl_context *ctx, struct texture_state *texstate)
> _mesa_TexParameterf(target, GL_TEXTURE_COMPARE_FAIL_VALUE_ARB,
> samp->CompareFailValue);
> }
> + if (ctx->Extensions.ARB_shadow) {
> + _mesa_TexParameteri(target, GL_TEXTURE_COMPARE_MODE,
> + samp->CompareMode);
> + _mesa_TexParameteri(target, GL_TEXTURE_COMPARE_FUNC,
> + samp->CompareFunc);
> + }
> + if (ctx->Extensions.ARB_depth_texture)
> + _mesa_TexParameteri(target, GL_DEPTH_TEXTURE_MODE, samp->DepthMode);
> }
>
> /* remove saved references to the texture objects */
Reviewed-by: Brian Paul <brianp at vmware.com>
More information about the mesa-dev
mailing list