[Piglit] [PATCH] Rework the PIGLIT_GL_VISUAL flags, fix RGB vs RGBA vs ALPHA confusion

Marek Olšák maraeo at gmail.com
Fri Apr 12 10:01:10 PDT 2013


OK, but I would like to commit this conversion code instead of hacking the
bits:

diff --git a/tests/util/piglit-framework-gl/piglit_glut_framework.c
b/tests/util/piglit-framework-gl/piglit_glut_framework.c
index ee5ac01..cfadf77 100644
--- a/tests/util/piglit-framework-gl/piglit_glut_framework.c
+++ b/tests/util/piglit-framework-gl/piglit_glut_framework.c
@@ -98,12 +98,27 @@ init_glut(void)
        const struct piglit_gl_test_config *test_config =
glut_fw.gl_fw.test_config;
        char *argv[] = {"piglit"};
        int argc = 1;
+       unsigned flags = GLUT_RGB;
+
+       if (test_config->window_visual & PIGLIT_GL_VISUAL_RGBA)
+               flags |= GLUT_ALPHA;
+       if (test_config->window_visual & PIGLIT_GL_VISUAL_DEPTH)
+               flags |= GLUT_DEPTH;
+       if (test_config->window_visual & PIGLIT_GL_VISUAL_STENCIL)
+               flags |= GLUT_STENCIL;
+       if (test_config->window_visual & PIGLIT_GL_VISUAL_ACCUM)
+               flags |= GLUT_ACCUM;
+
+       if (test_config->window_visual & PIGLIT_GL_VISUAL_DOUBLE)
+               flags |= GLUT_DOUBLE;
+       else
+               flags |= GLUT_SINGLE;

        glutInit(&argc, argv);
        glutInitWindowPosition(0, 0);
        glutInitWindowSize(test_config->window_width,
                           test_config->window_height);
-       glutInitDisplayMode(test_config->window_visual);
+       glutInitDisplayMode(flags);
        glut_fw.window = glutCreateWindow("Piglit");

        glutDisplayFunc(display);


Marek



On Tue, Apr 2, 2013 at 7:16 PM, Chad Versace
<chad.versace at linux.intel.com>wrote:

> On Tue, Mar 26, 2013 at 06:13:59PM +0100, Marek Olšák wrote:
> > Hi,
> >
> > would anyone like to comment on this? Or is it still stuck in the
> > moderation queue?
>
> The hunk below will break Piglit on Windows and Mac. Comments below.
>
> > diff --git a/tests/util/piglit-framework-gl.h
> b/tests/util/piglit-framework-gl.h
> > index bc3a3cd..f6ad839 100644
> > --- a/tests/util/piglit-framework-gl.h
> > +++ b/tests/util/piglit-framework-gl.h
> > @@ -34,25 +34,15 @@
> >   * Each enum has the same value of its corresponding GLUT enum. That
> is, for
> >   * each X, `PIGLIT_GL_VISUAL_X == GLUT_X`.
> >   *
> > - * Note that PIGLIT_GL_VISUAL_RGBA is an alias for PIGLIT_GL_VISUAL_RGB
> and is
> > - * always selected. From the documentation of glutInitDisplayMode in
> > - * Kilgard's GLUT:
> > - *
> > - * Note that GLUT_RGBA selects the RGBA color model, but it does not
> > - * request any bits of alpha (sometimes called an alpha buffer or
> > - * destination alpha) be allocated. To request alpha, specify
> GLUT_ALPHA.
> > - *
> >   * \see piglit_gl_test_config::window_visual
> >   */
> >   enum piglit_gl_visual {
> > -     PIGLIT_GL_VISUAL_RGB = 0,
> > -     PIGLIT_GL_VISUAL_RGBA = 0,
> > -     PIGLIT_GL_VISUAL_SINGLE = 0,
> > -     PIGLIT_GL_VISUAL_DOUBLE = 1 << 1,
> > -     PIGLIT_GL_VISUAL_ACCUM = 1 << 2,
> > -     PIGLIT_GL_VISUAL_ALPHA = 1 << 3,
> > +     PIGLIT_GL_VISUAL_RGB = 1 << 0,
> > +     PIGLIT_GL_VISUAL_RGBA = 1 << 1,
> > +     PIGLIT_GL_VISUAL_DOUBLE = 1 << 2,
> > +     PIGLIT_GL_VISUAL_ACCUM = 1 << 3,
> >       PIGLIT_GL_VISUAL_DEPTH = 1 << 4,
> > -     PIGLIT_GL_VISUAL_STENCIL = 1 << 5,
> > +     PIGLIT_GL_VISUAL_STENCIL = 1 << 5
> > };
> > /**
>
> Currently, Waffle is used only on Linux. Mac and Windows still use GLUT.
> So,
> any change in the PIGLIT_GL_VISUAL values must be compatible with GLUT.
>
> I think the hunk below won't regress GLUT users, but I haven't tested it.
>
> diff --git a/tests/util/piglit-framework-gl.h
> b/tests/util/piglit-framework-gl.h
>   enum piglit_gl_visual {
>       PIGLIT_GL_VISUAL_RGB      = 0,
> -     PIGLIT_GL_VISUAL_RGBA     = 0,
> -     PIGLIT_GL_VISUAL_SINGLE   = 0,
>       PIGLIT_GL_VISUAL_DOUBLE   = 1 << 1,
>       PIGLIT_GL_VISUAL_ACCUM    = 1 << 2,
> -     PIGLIT_GL_VISUAL_ALPHA    = 1 << 3,
> +     PIGLIT_GL_VISUAL_RGBA     = 1 << 3,
>       PIGLIT_GL_VISUAL_DEPTH    = 1 << 4,
>       PIGLIT_GL_VISUAL_STENCIL  = 1 << 5,
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/piglit/attachments/20130412/7433a200/attachment.html>


More information about the Piglit mailing list