[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