Mesa (master): glapi: Fix OpenGL and OpenGL ES interop.

Chia-I Wu olv at kemper.freedesktop.org
Thu Jan 20 09:16:40 UTC 2011


Module: Mesa
Branch: master
Commit: e8c7d7598fb48237508f566204c71ba8f74d544f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e8c7d7598fb48237508f566204c71ba8f74d544f

Author: Chia-I Wu <olv at lunarg.com>
Date:   Sun Dec 26 18:24:13 2010 +0800

glapi: Fix OpenGL and OpenGL ES interop.

When --enable-shared-glapi is specified, libGL will share libglapi with
OpenGL ES instead of defining its own copy of glapi.  This makes sure an
app will get only one copy of glapi in its address space.

The new option is disabled by default.  When enabled, libGL and libglapi
must be built from the same source tree and distributed together.  This
requirement comes from the fact that the dispatch offsets used by these
libraries are re-assigned whenever GLAPI XMLs are changed.

For GLX, indirect rendering for has_different_protocol() functions is
tricky.  A has_different_protocol() function is assigned only one
dispatch offset, yet each entry point needs a different protocol opcode.
It cannot be supported by the shared glapi.  The fix to this is to make
glXGetProcAddress handle such functions specially before calling
_glapi_get_proc_address.

Note that these files are automatically generated/re-generated

 src/glx/indirect.c
 src/glx/indirect.h
 src/mapi/glapi/glapi_mapi_tmp.h

---

 configs/autoconf.in                     |    1 +
 configure.ac                            |   16 +-
 src/gallium/targets/egl/Makefile        |    6 +-
 src/gallium/targets/libgl-xlib/Makefile |    4 +
 src/glx/Makefile                        |    6 +
 src/glx/glxcmds.c                       |    7 +-
 src/glx/indirect.c                      |   64 +-
 src/glx/indirect.h                      |    4 +
 src/mapi/glapi/Makefile                 |   58 +-
 src/mapi/glapi/gen/Makefile             |    6 +
 src/mapi/glapi/gen/glX_proto_send.py    |   53 +
 src/mapi/glapi/glapi_mapi_tmp.h         |13105 +++++++++++++++++++++++++++++++
 src/mapi/shared-glapi/Makefile          |    2 +-
 src/mesa/drivers/x11/Makefile           |    3 +
 14 files changed, 13306 insertions(+), 29 deletions(-)

Diff:   http://cgit.freedesktop.org/mesa/mesa/diff/?id=e8c7d7598fb48237508f566204c71ba8f74d544f



More information about the mesa-commit mailing list