[Mesa-dev] [PATCH] glsl: reuse main extension table to appropriate restrict extensions

Eric Engestrom eric.engestrom at imgtec.com
Mon Jun 13 16:19:54 UTC 2016


On Mon, Jun 13, 2016 at 12:08:24PM +0100, Eric Engestrom wrote:
> 
> > diff --git a/src/mesa/main/extensions_table.c b/src/mesa/main/extensions_table.c
> > new file mode 100644
> > index 0000000..1e37fbc
> > --- /dev/null
> > +++ b/src/mesa/main/extensions_table.c
> > @@ -0,0 +1,51 @@
> > +/*
> > + * Mesa 3-D graphics library
> > + *
> > + * Copyright (C) 1999-2008  Brian Paul   All Rights Reserved.
> > + * Copyright (C) 2009  VMware, Inc.  All Rights Reserved.
> > + *
> > + * Permission is hereby granted, free of charge, to any person obtaining a
> > + * copy of this software and associated documentation files (the "Software"),
> > + * to deal in the Software without restriction, including without limitation
> > + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> > + * and/or sell copies of the Software, and to permit persons to whom the
> > + * Software is furnished to do so, subject to the following conditions:
> > + *
> > + * The above copyright notice and this permission notice shall be included
> > + * in all copies or substantial portions of the Software.
> > + *
> > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
> > + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> > + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
> > + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
> > + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> > + * OTHER DEALINGS IN THE SOFTWARE.
> > + */
> > +
> > +#include "main/mtypes.h"
> > +#include "main/extensions.h"
> > +
> > +/**
> > + * Given a member \c x of struct gl_extensions, return offset of
> > + * \c x in bytes.
> > + */
> > +#define o(x) offsetof(struct gl_extensions, x)
> > +
> > +/**
> > + * \brief Table of supported OpenGL extensions for all API's.
> > + */
> > +const struct mesa_extension _mesa_extension_table[] = {
> > +#define EXT(name_str, driver_cap, gll_ver, glc_ver, gles_ver, gles2_ver, yyyy) \
> > +        { .name = "GL_" #name_str, .offset = o(driver_cap), \
> > +          .version = { \
> > +            [API_OPENGL_COMPAT] = gll_ver, \
> > +            [API_OPENGL_CORE]   = glc_ver, \
> > +            [API_OPENGLES]      = gles_ver, \
> > +            [API_OPENGLES2]     = gles2_ver, \
> > +           }, \
> > +           .year = yyyy \
> > +        },
> > +#include "extensions_table.h"
> > +#undef EXT
> 
> I'm not sure this macro is useful in the first place, but:
> 
> 	#undef o

Second errata:
I just realised this is a .c, not a .h, so the dangling #define doesn't matter.
Please disregard my earlier comment about it, and I apologise :)


More information about the mesa-dev mailing list