[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