piglit-dispatch: Introduce OpenGL API spec files

This is the first in a series of patches that replaces GLEW with a new
mechanism called "piglit-dispatch".

This patch introduces files which describe the OpenGL API in
machine-readable form.  These files are duplicates of those found at
http://www.opengl.org/registry/.

Later patches in the series will transform these spec files to C code.
piglit-dispatch: Corrections to OpenGL API spec files

This patch corrects a few minor errors in the OpenGL API spec files
from http://www.opengl.org/registry/:

- ALL_ATTRIB_BITS was incorrectly defined as 0xFFFFFFFF.  The correct
  value is 0x000FFFFF, since ALL_ATTRIB_BITS is not meant to apply to
  MULTISAMPLE_BIT (see extension specs 3DFX_multisample,
  ARB_multisample, EXT_multisample, and SGIS_multisample).

- IsProgramARB and IsProgramNV were incorrectly marked as aliases of
  each other.  This is not the case, since IsProgram is used for GLSL
  programs, and IsProgramARB/IsProgramNV are used for assembly
  programs.

- GenVertexArraysAPPLE was incorrectly marked as an alias for
  "GenVertexArray".  There is no such function--the correct function
  is "GenVertexArrays".

- TransformFeedbackVaryingsNV was incorrectly marked as an alias for
  TransformFeedbackVaryings.  This is incorrect--the two functions
  interpret their arguments differently.  Similarly,
  GetTransformFeedbackVaryingNV was incorrectly marked as an alias for
  GetTransformFeedbackVarying.

- StencilFuncSeparateATI was incorrectly marked as an alias for
  StencilFuncSeparate.  This is incorrect--the two functions interpret
  their arguments differently.

- NV functions dealing with vertex attributes
  (GetVertexAttrib{d,f,i}vNV, VertexAttrib{1,2,3,4}{d,f,s}{,v}NV, and
  VertexAttrib4ub{,v}NV) were incorrectly marked as an alias for the
  corresponding core functions.  This is incorrect--NV extensions
  handle vertex attribute numbering differently.

The reason these errors were not caught by the maintainers of
opengl.org is likely because they don't affect the contents of the
glext.h header file.
piglit-dispatch: Additions to OpenGL API spec files

This patch adds descriptions of the extensions
OES_compressed_paletted_texture, ATI_texture_compression_3dc, and
NVX_gpu_memory_info to the OpenGL API spec files.  The extension
OES_compressed_paletted_texture was previously commented out (since it
is part of GLES), and the others weren't present at all.
WIP: piglit-dispatch: Code generation script

This is the first in a series of patches that replaces GLEW with a new
mechanism called "piglit-dispatch".  This patch adds the script that
will be used by piglit-dispatch to build its generated code.

The input to the code generation script is a set of XML files
describing the GL API, in the same form as used by Mesa.  For the time
being, these files can be found at
git://github.com/stereotype441/glapi.git.

v2: Ensure that a copyright notice appears in the generated file.

Whoops, wasn't actually uniquifying the functions

Sort enums by value and eliminate duplicates.

Declare types in a uniform way

Experiment: generate code from json

Remove unused gen_dispatch stuff

Add parse_glspec.py

parse_glspec fixup

WIP: piglit-dispatch: CMake code to build generated files

This patch adds the necessary build infrastructure to build
piglit-dispatch's two generated files, generated_dispatch.c and
generated_dispatch.h.

These files can be built by invoking "make piglit_dispatch_gen" from
the toplevel source directory.

Rework code generation CMake

Cmake fixup

Generated code

WIP: piglit-dispatch: Remaining infrastructure

Previous patches introduced code generation for the auto-generated
portions of the piglit-dispatch mechanism.  This patch supplies the
remaining hand-written code, which includes:

- Code to initialize piglit-dispatch.

- The actions to be taken when looking up a function, when function
  lookup fails, or when a function is unsupported.

- Code to determine whether piglit-dispatch has been initialized,
  which GL version is supported, and whether a given extension is
  supported.

- Definitions of basic GL types.

Mac workaround

Mac workaround

Mac GetProcAddress

Mac GetProcAddress fix

Mac GetProcAddress fix

Mac workaround for APIENTRY/GLAPIENTRY

Oops, GLhalfNV needed

Change to piglit_dispatch_function_ptr

Use other function pointers in the conventional way too

Use APIENTRY everywhere

Split out resolve functions and make tables

Add piglit_dispatch_resolve_function

Regenerate

Regenerate
piglit-dispatch: Switch to using piglit-dispatch instead of GLEW.

Previous patches set up the piglit-dispatch infrastructure but did not
use it.  This patch enables piglit-dispatch and uses it instead of
GLEW.

No piglit regressions on Intel SandyBridge (Linux).

Make piglit_get_proc_address point to piglit_dispatch_resolve_function()
piglit-dispatch: Remove GLEW.

This patch removes the files glew.c and glew.h, which are no longer
used.  The "piglit-dispatch" mechanism is used instead.
WIP: glean: use piglit_get_proc_address()

Previously glean got the address of GL functions by directly calling
an OS-specific function (e.g. glXGetProcAddressARB(), dlsym(), or
wglGetProcAddress()).  This patch changes it to use
piglit_get_proc_address(), which is OS-independent.  This paves the
way for switching to the piglit-dispatch mechanism of accessing GL
functions.

TODO: split out stuff?
Check initialized when resolving a function by name