commit 96286708a4d7ebb6d5b06042d9f9aa5ed6a61fbf Author: Emmanuele Bassi Date: Mon Feb 6 16:00:20 2017 +0000 Bump version to 1.4 for release configure.ac | 2 +- meson.build | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 7782509bdbb429cf884d5a1dc28fa9132075ae6a Merge: ec93dcd 075172f Author: Emmanuele Bassi Date: Mon Feb 6 15:59:24 2017 +0000 Add API to allow for platform detection On Linux and other Unix variants we may not have access to GLX and EGL at run time. Dependent libraries can only discover this by using dlsym() on various symbols, because as soon as they attempt to call those symbols through Epoxy, Epoxy will abort. This means that a bunch of code needs to be copy-pasted between projects, with the high chance of somebody getting it wrong. Epoxy already has all the internals needed to detect whether GLX and EGL are available, so exposing a simple API is a better alternative. Fixes #73 commit ec93dcd5a13de753b853141780ba6021ff371cc6 Merge: 6a2994d 7b52d33 Author: Emmanuele Bassi Date: Mon Feb 6 15:58:53 2017 +0000 Allow enabling and disabling GLX support Since X11 can be used on multiple platforms, or disabled in special environments, we should provide a way to control whether or not Epoxy is built with GLX support. Fixes anholt/libepoxy#52 Fixes anholt/libepoxy#63 Closes anholt/libepoxy#80 Closes anholt/libepoxy#81 commit 7b52d33d86b23d663adb585a32a411e658d5a4c9 Author: Emmanuele Bassi Date: Mon Feb 6 14:49:21 2017 +0000 Encode Epoxy capabilities into the pkg-config file Since Epoxy can be built with different platform-specific API, having a way for dependent projects to discover those capabilities without necessarily crashing the minute they attempt to use them is a good feature to have. We strongly direct library and application developers to use pkg-config in order to use Epoxy, so it makes sense to add variables to the epoxy.pc file that can be easily extracted at configuration time. configure.ac | 9 +++++++++ epoxy.pc.in | 4 ++++ meson.build | 3 +++ 3 files changed, 16 insertions(+) commit 2b6f01b0085e10b4644b672ef03b6120b1927911 Author: Emmanuele Bassi Date: Wed Jan 18 16:07:02 2017 +0000 Allow enabling and disabling GLX support, part II After doing this for Meson in commit fc014fa1, let's do the same dance for the Autotools build. configure.ac | 111 ++++++++++++++++++++++++++++++++++++------------------- test/Makefile.am | 7 +++- 2 files changed, 79 insertions(+), 39 deletions(-) commit 6a2994d1ed63ebadcdf659f03461194b6e31ce5f Author: Emmanuele Bassi Date: Mon Feb 6 15:36:51 2017 +0000 doc: Ignore a private symbol doc/Doxyfile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2e2b96301d74ac931e3e3bbe883f1453cc40eca1 Author: Emmanuele Bassi Date: Mon Feb 6 15:20:28 2017 +0000 Generate a ChangeLog for the dist tarball It's useful for people that like rummaging inside tarballs. Makefile.am | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 43a66ca8d87e04242d81439d9721f09b5ad2e7fb Author: Emmanuele Bassi Date: Mon Feb 6 15:00:37 2017 +0000 Generate xz tarballs on distcheck Both gz and bz2 tarballs are discouraged, in this day and age. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d4104fbbcd67aa3a51a60dae31717275d314cf91 Author: Emmanuele Bassi Date: Fri Feb 3 15:35:38 2017 +0000 Drop additional stdbool.h include directives src/dispatch_common.h | 2 -- 1 file changed, 2 deletions(-) commit 476851ba416c0fa478a8ec0620d482ed5079e38b Author: Emmanuele Bassi Date: Wed Jan 18 15:40:00 2017 +0000 Allow enabling and disabling GLX support Currently, GLX support in libepoxy at build time is hard coded, but various platforms have expressed their preference for having a configure-time option for it. For instance: - various embedded distributors do not ship with X11, but wish to use libraries that depend on libepoxy now that Wayland is available - distributors for macOS still wish to retain the ability to ship their software with X11 enabled By default, we want epoxy to build with GLX enabled pretty much everywhere it makes sense, since it's only a build-time option and it's not a run-time dependency. meson.build | 28 +++++++++++++++++++++++++--- meson_options.txt | 5 +++++ src/dispatch_common.h | 8 +++----- test/meson.build | 2 +- 4 files changed, 34 insertions(+), 9 deletions(-) commit 075172f485fe7d4006f84237eef49a586b92c380 Author: Emmanuele Bassi Date: Fri Feb 3 16:19:30 2017 +0000 Add epoxy_has_egl() Similar to `epoxy_has_glx()`, but for the EGL windowing system API. include/epoxy/egl.h | 1 + src/dispatch_egl.c | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) commit d94b9c28b53b1bf99f4a497486af681d8bc95d95 Author: Emmanuele Bassi Date: Fri Feb 3 16:16:13 2017 +0000 Add epoxy_has_glx() Libraries and applications that depend on Epoxy currently have no way to safely degrade functionality if they are used on a platform without GLX support; the only way to achieve that is to perform a symbol check themselves, by essentially copying what Epoxy already does. By exposing `epoxy_has_glx()`, those libraries and applications now have the chance of querying Epoxy itself and gracefully handle failure. include/epoxy/glx.h | 1 + src/dispatch_glx.c | 26 +++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) commit 30b8a4cd2d115eab93ca39709c956f48aa8dadbe Author: Emmanuele Bassi Date: Fri Feb 3 16:13:45 2017 +0000 Add conservative functions for checking platform symbols When checking whether GLX or EGL are available on the system, we don't want to use the internal API that forces an exit() on missing libraries and symbols — as that would defeat the point. Instead, we should have safe functions to call internally that simply return a NULL pointer, so we can bail out ourselves in a controlled fashion. src/dispatch_common.c | 16 ++++++++++++++-- src/dispatch_common.h | 2 ++ 2 files changed, 16 insertions(+), 2 deletions(-) commit acdd6d8bf88a5381800affaaf59fd4c5300b6cd6 Author: Emmanuele Bassi Date: Fri Feb 3 15:35:38 2017 +0000 Drop additional stdbool.h include directives src/dispatch_common.h | 2 -- 1 file changed, 2 deletions(-) commit 6af57b07459742b90ef7471733bd090a4580fe61 Author: Emmanuele Bassi Date: Fri Jan 27 18:12:05 2017 +0000 Write the API reference Now that we have Doxygen generating it, we should fill out the API reference for Epoxy. include/epoxy/egl.h | 2 + include/epoxy/gl.h | 2 + include/epoxy/glx.h | 2 + src/dispatch_common.c | 118 +++++++++++++++++++++++++++++++++++++++++++++----- src/dispatch_egl.c | 30 +++++++++++++ src/dispatch_glx.c | 33 ++++++++++++++ 6 files changed, 175 insertions(+), 12 deletions(-) commit 59d9c2d83db722599d612f4339d9d8405f0c13e7 Author: Emmanuele Bassi Date: Wed Jan 25 16:38:02 2017 +0000 Generate the Epoxy API reference using Doxygen The build is conditional on: * using the Meson build * passing the `-Denable-docs=true` configuration switch * having `doxygen` installed Currently, the generated HTML is kind of empty, but it works. doc/Doxyfile.in | 206 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ doc/meson.build | 32 +++++++++ meson.build | 9 +++ meson_options.txt | 3 + 4 files changed, 250 insertions(+) commit 3d1193fd30da12bcf1591bce18ccc615055424c1 Author: Emmanuele Bassi Date: Wed Feb 1 12:36:07 2017 +0000 Use container based CI on Travis We don't really use `sudo` anywhere, except for installing packages; this means we should be able to use the faster container-based environment on Travis, instead of the VM-based one. .travis.yml | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) commit 6973dd5db30057c66fd8db99c55917f671e5d380 Author: Emmanuele Bassi Date: Wed Feb 1 00:02:16 2017 +0000 Add a fallback for missing stdbool.h Older versions of the Microsoft Visual C compiler do not support C99 and do not have stdbool.h. Additionally, Epoxy is pretty much C89 compliant, and stdbool.h is part of C99. We can add a simple fallback for MSVC, in case we end up getting built with it. include/epoxy/common.h | 8 ++++++++ include/epoxy/egl.h | 2 -- include/epoxy/gl.h | 2 -- include/epoxy/glx.h | 1 - include/epoxy/wgl.h | 1 - 5 files changed, 8 insertions(+), 6 deletions(-) commit 5bcc550a6c85e7db4a8564aa292113e32d9993f0 Merge: 39a10ca 7a06803 Author: Emmanuele Bassi Date: Tue Jan 31 18:09:34 2017 +0000 Merge branch 'symbol-visibility' commit 39a10ca79b58dc768ce037f4db9e347ee74e277f Author: Emmanuele Bassi Date: Tue Jan 31 17:53:18 2017 +0000 Revert "Use Trusty for Travis" This reverts commit a11c76e1faa63d6071556b097d7b1b88c05b37d6. Return to the default of Precise, and keep Epoxy under CI. .travis.yml | 1 - 1 file changed, 1 deletion(-) commit 136d3cde8327e5e67aecf5318450edc995897e84 Author: Emmanuele Bassi Date: Tue Jan 31 17:52:53 2017 +0000 Revert "build: Tell autoconf to use a macro dir" This reverts commit de84448e3a1c07c0b6f749bc59b03c52f99571d7. In order to make Epoxy build on Travis with the Precise package set, we need to revert this commit, as the autotools version shipped on Ubuntu 12.04 bail out at the missing macro directory — whereas newer versions just create it if needed. Updating the Travis environment to Trusty allows the build to finish, but have the knock-on effect of making more tests run — and the EGL-without-GLX tests fail. Since there's nothing newer than Trusty on Travis, we should back out this change until we have the ability to build a suitable test/CI environment. Makefile.am | 2 -- configure.ac | 1 - 2 files changed, 3 deletions(-) commit a11c76e1faa63d6071556b097d7b1b88c05b37d6 Author: Emmanuele Bassi Date: Tue Jan 31 13:22:40 2017 +0000 Use Trusty for Travis Trusty (14.04) is outdated, but at least not as terribly outdated as the Precise (12.04) default. .travis.yml | 1 + 1 file changed, 1 insertion(+) commit 061cc48f40efa5fd2f0e85b3e5be7c91fe6ba349 Author: Emmanuele Bassi Date: Tue Jan 31 13:00:06 2017 +0000 Update README The OpenGL registry has been updated with the 4.5 API. README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d1b5f3becb03f9f92d7657c84d25ea52f2fdc8de Merge: aab6092 09c7657 Author: Emmanuele Bassi Date: Tue Jan 31 12:59:50 2017 +0000 Merge branch 'khronos-registry' commit aab6092f65cd94da4ed1bcfcc97320a825cd8386 Author: Emmanuele Bassi Date: Wed Jan 18 16:25:24 2017 +0000 gen_dispatch: Ignore 'glsc2' API The new GL registry XML contains the 'glsc2' identifier for the OpenGL SC 2.0 API. We can safely ignore it, since we don't really know what to do with it, at the moment. src/gen_dispatch.py | 2 ++ 1 file changed, 2 insertions(+) commit de84448e3a1c07c0b6f749bc59b03c52f99571d7 Author: Emmanuele Bassi Date: Tue Jan 31 12:45:56 2017 +0000 build: Tell autoconf to use a macro dir This avoids warnings coming from libtoolize and recent versions of autoconf. Makefile.am | 2 ++ configure.ac | 1 + 2 files changed, 3 insertions(+) commit aef80bc9e112cb3ff607791b697a27c67e827ce8 Author: Emmanuele Bassi Date: Tue Jan 31 12:43:58 2017 +0000 build: Ensure that autogen exits with the right code Since autogen.sh calls other commands that may fail, we should return the exit code from those commands. autogen.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 80f20ce62c45ee76e73deeb5e0bcf52eee534d64 Author: Emmanuele Bassi Date: Mon Jan 30 15:17:31 2017 +0000 cross: Tweak inclusion path for Fedora/mingw64 We should explicitly add the include directory under the mingw64 toolchain to the C arguments when cross-compiling, just like we add the libdir to the link flags. cross/fedora-mingw64.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 2b2055576ebb70336a2ced67f5298c216b3329a5 Merge: 50272b7 ced192c Author: Emmanuele Bassi Date: Mon Jan 30 13:02:55 2017 +0000 Merge pull request #90 from nwnk/egl-get-current-context-api egl: Fix the query for the current context's API commit 09c76573701de4d3ba45e05a93b902c86b0cec5b Author: Emmanuele Bassi Date: Mon Jan 30 11:54:47 2017 +0000 Import registry from SVN 33390 registry/egl.xml | 527 ++++++++++++- registry/gl.xml | 2294 +++++++++++++++++++++++++++++++++++++++++++++++------- registry/glx.xml | 16 +- registry/wgl.xml | 15 +- 4 files changed, 2573 insertions(+), 279 deletions(-) commit 50272b7042517a53abec0a459176d87e8600ce12 Merge: 7c902e3 61dac91 Author: Emmanuele Bassi Date: Sat Jan 28 12:22:35 2017 +0000 Merge pull request #99 from TingPing/meson-cleanup build: Clean up some Meson usage commit 61dac912e612aadc9458f890b76ab394b32c6056 Author: Patrick Griffis Date: Fri Jan 27 19:13:48 2017 -0500 build: Clean up some Meson usage include/epoxy/meson.build | 8 ++++---- meson.build | 8 ++++---- src/meson.build | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) commit 7c902e3e2be1835d2b626b6a2dcceb313b12c82f Author: Emmanuele Bassi Date: Wed Jan 25 14:51:04 2017 +0000 docs: Update the README file Use the appropriate Markdown syntax (with GitHub extensions) for code blocks and preformatted bits, and update the build instructions and dependencies for Meson and Ninja. README.md | 116 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 59 insertions(+), 57 deletions(-) commit 7a06803465dd07e152de1b30763d6bea0d3fcc93 Author: Emmanuele Bassi Date: Tue Jan 24 17:43:59 2017 +0000 Improve consistency of the symbol visibility To avoid a symbols file on Windows, Epoxy annotates all the publicly visible symbols directly in the source, but uses the default symbol visibility everywhere else. This means that only some symbols are annotated as `EPOXY_IMPORTEXPORT`, and generally only on Windows. Additionally, Epoxy has a private 'PUBLIC' pre-processor macro for internal use, which duplicates the `EPOXY_IMPORTEXPORT` but contains more logic to detect GCC, in case we're building with GCC on Windows. This would be enough, except that EGL is also available on Windows, which means we'd have to annotate the exported `epoxy_*` API inside epoxy/egl.h as well. At that point, though, we should probably avoid any confusion, and adopt a single symbol visibility policy across the board. This requires some surgery of the generated and common dispatch sources, but cuts down the overall complexity: - there is only one annotation, `EPOXY_PUBLIC`, used everywhere - the annotation detection is done at Epoxy configuration time - only annotated symbols are public, on every platform - annotated symbols are immediately visible from the header configure.ac | 52 ++++++++++++++++++++++++++++++++------------------ include/epoxy/common.h | 4 ++++ include/epoxy/egl.h | 4 ++-- include/epoxy/gl.h | 11 +++-------- include/epoxy/glx.h | 4 ++-- include/epoxy/wgl.h | 4 ++-- meson.build | 17 +++++++++++++++++ src/dispatch_common.c | 10 +++++----- src/dispatch_common.h | 16 ++-------------- src/dispatch_egl.c | 4 ++-- src/dispatch_glx.c | 4 ++-- src/dispatch_wgl.c | 12 ++++++------ src/gen_dispatch.py | 16 +++++++++------- src/meson.build | 2 +- 14 files changed, 90 insertions(+), 70 deletions(-) commit 0625a74d69f762df8d411bc0451927424aee1f2c Author: Emmanuele Bassi Date: Tue Jan 24 15:31:46 2017 +0000 Add common header We're going to use this header to provide shared macros. Right now, we can use it to replace the: #ifdef __cplusplus extern "C" { #endif … #ifdef __cplusplus } #endif Stanzas for every installed header, with easier to read macros in the same spirit of Cairo and GLib. include/epoxy/Makefile.am | 1 + include/epoxy/common.h | 40 ++++++++++++++++++++++++++++++++++++++++ include/epoxy/egl.h | 12 +++++------- include/epoxy/gl.h | 12 +++++------- include/epoxy/glx.h | 10 +++------- include/epoxy/meson.build | 4 +++- include/epoxy/wgl.h | 12 +++++------- 7 files changed, 62 insertions(+), 29 deletions(-) commit 41bea9e0fbea83654b49ea5d0f37650626003b65 Author: Emmanuele Bassi Date: Fri Dec 9 21:09:09 2016 +0000 build: Drop '-Wall' from the checked compiler arguments Meson adds `-Wall` for us with `warning_level=1`. meson.build | 1 - 1 file changed, 1 deletion(-) commit ba2e7b151bb0ee97c136a44c62555a1b7be80371 Author: Emmanuele Bassi Date: Thu Jan 19 18:41:40 2017 +0000 build: Explicitly link against gdi32 We need to explicitly link against gdi32 in order to access SetPixelFormat and ChoosetPixelFormat, and the order of the linking is relevant when using static libraries. This is a slight workaround to the order of compiler arguments generated by Meson, and it's supposed to go away in the near future. meson.build | 14 ++++++++++++++ src/meson.build | 3 +-- 2 files changed, 15 insertions(+), 2 deletions(-) commit bbcc3b4b81203726add2e11d8cb29728a79bca7b Author: Emmanuele Bassi Date: Wed Dec 14 11:34:56 2016 +0000 build: Add cross-compile definitions for Mingw64 on Fedora Meson uses plain text files for describing the cross-compilation environment, binaries, and properties. The values are taken from the mingw wrapper around configure that Fedora provides for autotools projects. cross/fedora-mingw64.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) commit 59318edf6419afb850b7875ffee4d97522449a5a Author: Emmanuele Bassi Date: Wed Dec 14 15:35:44 2016 +0000 build: Rework the build rules for generated files in Meson Instead of using a generator and having to deal with tweaking the inclusion paths, we can use a custom target rule, which will do the right thing and put the generate files where we expect them to be. Due to how Meson and Ninja work we need to be a bit more careful as to how we deal with dependencies and generated files, especially since Epoxy is built on the assumption that the only inclusion path for the headers lies under the 'include' sub-directory. First of all, we need to split the dispatch table generation into two separate steps, one for the headers and one for the source files. Additionally, we need to munge the paths of the non-generated headers so that we reference them by their correct path. These changes are necessary to ensure that Epoxy can be built on a system without Epoxy installed already; the previous Meson-based build system relied on the headers being installed in a system directory. include/epoxy/meson.build | 80 ++++++++++++++++++++++++++++++++++ meson.build | 25 +++++++++-- src/gen_dispatch.py | 41 ++++++++++++------ src/meson.build | 107 +++++++++++++++++++++++++++++++--------------- test/meson.build | 3 ++ 5 files changed, 205 insertions(+), 51 deletions(-) commit 08cc4d021dc523c4243a23b2b4ba432af760716b Author: Emmanuele Bassi Date: Fri Dec 9 12:28:42 2016 +0000 build: Add Meson build files Meson is a Python-based build system that generates build rules of Ninja, Visual Studio, and XCode. It's designed to be fast, and have a small, non-Turing complete language to describe the build process, tests, and dependencies. It's simpler than CMake, and faster than autotools. As a direct comparison in terms of speed, three build and check runs for libepoxy from a clean Git repository clone yield these results on my Kabylake Core i7 7500U (nproc=4): - Autotools (make) Run #1 (cold) real: 22.384s, user: 20.011s, sys: 3.689s Run #2 (warm) real: 22.429s, user: 20.220s, sys: 3.708s Run #3 (warm) real: 22.068s, user: 19.743s, sys: 3.594s - Meson (ninja) Run #1 (cold) real: 5.932s, user: 9.371s, sys: 1.625s Run #2 (warm) real: 6.273s, user: 10.066, sys: 1.740s Run #3 (warm) real: 5.796s, user: 9.233s, sys: 1.607s Which means that Meson and ninja are approximately 4x faster than autotools. In terms of simplicity, the autotools build takes six files and a total of 645 lines; Meson requires 3 files, and 361 lines to achieve the same result. Additionally, Meson automatically builds in a separate build directory and does not leave files inside the source directory; and Meson does not use libtool. Since Meson is quite new and still actively developed, we're going to leave the autotools build in place for a while, with the intention of switching to Meson in the future. meson.build | 125 +++++++++++++++++++++++++++++++++++++++ src/meson.build | 88 ++++++++++++++++++++++++++++ test/meson.build | 174 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 387 insertions(+) commit e2e2fedbdb6cbf4155919c548545956dd6cacc4c Author: Emmanuele Bassi Date: Fri Dec 9 12:43:01 2016 +0000 build: Split arguments for dispatch generator The gen_dispatch.py script relies on the source and include directories to exist before dumping the files in there, split by type, in order to sustain the split of the headers existing in a separate root from the source files. This causes a spooky-action-at-a-distance scenario where headers are generated by rules inside the source directory but influence the contents of a separate directory — and require a separate set of rules to install those headers. Different build systems would require either splitting the generation in to two separate passes (which is more expensive and time consuming), or generate the header and source files in the same directory, and just tweak the inclusion paths accordingly. Since we want to maintain this fiction for the autotools build, but ignore it for different build systems, let's add a separate set of arguments for gen_dispatch.py that make the rules inside Makefile.am work appropriately. src/Makefile.am | 20 ++++++++++++++++---- src/gen_dispatch.py | 22 +++++++++++++++++----- 2 files changed, 33 insertions(+), 9 deletions(-) commit 4fe238e023d152e55c7aac210be2e930b06b412c Author: Emmanuele Bassi Date: Thu Jan 19 18:00:01 2017 +0000 tests/wgl: Use the right array offsets And avoid an out of bounds access warning. test/wgl_usefontbitmaps.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) commit 3a383713670a8a31c6a9c84e3729d88d27c718ab Author: Chun-wei Fan Date: Wed Jul 29 18:34:10 2015 +0800 MSVC Builds: Support PACKED Define PACKED for Visual Studio builds, so that we can try to reduce our library size for Visual Studio builds. Add a ENDPACKED macro that is currently defined only for Visual Studio builds as packing is done via __pragma(pack(push,n), that should be popped when done. Signed-off-by: Emmanuele Bassi src/dispatch_common.h | 5 +++++ src/gen_dispatch.py | 2 ++ 2 files changed, 7 insertions(+) commit 6b68ddeaa04d2eebae79a148738bfe619c58f088 Author: Emmanuele Bassi Date: Wed Jan 18 14:24:09 2017 +0000 build: Skip GLESv1 tests if there's no GLESv1 It's pretty much pointless to build and run tests for a library that we know is not available. The Meson build already skips the GLES 1.0 test, so let's make the Autotools build do the same. configure.ac | 3 +++ test/Makefile.am | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) commit 2aec628eb015b85ab08650289277de2af2b2efc4 Author: Adam Jackson Date: Thu Nov 5 10:26:03 2015 -0500 test: Fix dlwrap on ppc64 and s390x These have dlsym versions of GLIBC_2.3 and GLIBC_2.2, respectively. Signed-off-by: Adam Jackson test/dlwrap.c | 2 ++ 1 file changed, 2 insertions(+) commit 5b9ddf129195bc26d035f7ec619e518e1810a8ac Author: Emmanuele Bassi Date: Wed Jan 18 14:13:01 2017 +0000 build: Hide mkdir We don't really need to mess the log when creating the include directory in the build directory. src/Makefile.am | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) commit 0f7f16b7320fd19480ad1519346354c8b52662a3 Author: Emmanuele Bassi Date: Wed Dec 7 16:13:09 2016 +0000 build: Protect paths from spaces Completes commit 83cfa6a1b5b665ec99f5bbd44650b4816ba8fef5. autogen.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit a15a92c2cbe0a8f45a1ff6258b22957c17c7118e Author: Emmanuele Bassi Date: Mon Dec 12 14:18:15 2016 +0000 Ensure we don't assert if GLX is not available Certain X server do not have GLX enabled or supported, such as x2go. We can handle this case gracefully inside libepoxy. Signed-off-by: Emmanuele Bassi src/dispatch_glx.c | 6 ++++++ 1 file changed, 6 insertions(+) commit 5df022edb53748901490ee78929a089ae839a1da Author: Emmanuele Bassi Date: Thu Jan 19 17:58:59 2017 +0000 Do not call errx() on platforms without it Like, say, Windows. src/dispatch_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit bac9400bb04ce56c7a71a490e175284106743698 Author: Emmanuele Bassi Date: Wed Jan 18 15:36:54 2017 +0000 Use EGL to retrieve pointers if available EGL is available on different platforms, so we should favor it, if available. This also allows us to decouple EGL from GLX, and use the former without the latter being compiled in. src/dispatch_common.c | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) commit 9e46b8e659bfb61a713f099a339c1c1e8b552a8f Author: Yaron Cohen-Tal Date: Tue Dec 13 12:26:41 2016 +0000 Use the appropriate GLES library name for Windows Shared libraries on Windows use `.dll` for the extension, not `.so`. Signed-off-by: Emmanuele Bassi src/dispatch_common.c | 4 ++++ 1 file changed, 4 insertions(+) commit a937245efc14a99be328627e006ae05004c0dd30 Author: Simon Parzer Date: Tue Nov 3 01:32:56 2015 +0100 add glBindRenderbufferEXT to half_aliases it seems like this was forgotten, because glBindFramebufferEXT is already there for the same reason Signed-off-by: Emmanuele Bassi src/gen_dispatch.py | 2 ++ 1 file changed, 2 insertions(+) commit f5ce42e3fed1dfe2ec7aebb67f748886a1c063e9 Author: Adam Jackson Date: Fri Sep 23 03:22:21 2016 -0400 egl: Be somewhat aware of EGL client extensions Client extensions are always available, and are only listed in eglQueryString(dpy=NULL). Without this we can't call anything from e.g. EXT_platform_base. Signed-off-by: Adam Jackson src/dispatch_egl.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) commit 7e9e12f41dd740dff8a81e6b7f32b14242b33cdc Author: Martin Castillo Date: Fri Feb 26 18:54:23 2016 +0100 fixes 'cd error' in autogen.sh If a parent directory of the libepoxy source dir contains a space, 'cd' in line 10 fails. autogen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 91916269e501e041406b092c7242757d0320b802 Author: Adam Jackson Date: Tue Oct 18 11:08:12 2016 -0400 egl: Fix the query for the current context's API Binding an API does not change the type of the current context. Even if it did, EGL 1.5 treats EGL_OPENGL_API and EGL_OPENGLES_API as identical for this purpose. If you want to know properties of the current context, query it. Signed-off-by: Adam Jackson src/dispatch_common.c | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) commit ad1f9204a2f00c7c703f202e9c692e9620ee1f56 Author: Emmanuele Bassi Date: Wed Dec 7 15:12:15 2016 +0000 Avoid C99 declaration after statement The rest of the library is C89-only, so we should keep it that way. src/dispatch_common.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit f62c9d92d0cb721b5b1ba0ea68bd00756c644425 Author: Olivier Blin Date: Mon Sep 21 13:04:50 2015 +0200 dlwrap: add GLIBC_2.4 version to be able to run tests from ARM See sysdeps/unix/sysv/linux/arm/libdl.abilist in glibc Signed-off-by: Emmanuele Bassi test/dlwrap.c | 1 + 1 file changed, 1 insertion(+) commit c2e09ebde9f6f529a28e59c037fa53abb7f35f96 Author: Daniel Wolf Date: Mon Sep 21 23:09:23 2015 -0400 support newer/larger gl.xml Signed-off-by: Emmanuele Bassi src/gen_dispatch.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit c45cc5f821b10fe1c0a3c327502d8133365a09ba Author: Yaron Cohen-Tal Date: Fri Jul 29 17:55:49 2016 +0300 Check for NULL extensions string Some X server not supporting any OpenGL feature, glXQueryExtensionsString will return NULL and causes the function to fail. Thanks to Emmanuel Stapf (manus@eiffel.com) for the original patch. This was verified running an application on macOS while the X server was running on Windows Xming 7.5.0.10 Signed-off-by: Emmanuele Bassi src/dispatch_common.c | 2 ++ 1 file changed, 2 insertions(+) commit f887dcf79b35c47b1c70eb773f6ad9b6a5f81466 Author: Bryan Kadzban Date: Tue Sep 6 22:28:39 2016 -0700 nVidia glx.h uses __glx_h__; define that too. The code used to check this symbol, but commit 689abf4 replaced it with GLX_H, presumably to work better with either Mesa or Khronos headers. But nVidia's header use the older include guard. Add it as another option. Should fix the headerguards.c compile test when the system glx.h is from nVidia's binary drivers. Signed-off-by: Emmanuele Bassi include/epoxy/glx.h | 1 + 1 file changed, 1 insertion(+) commit 407f579f2d9a915a282becba80c6aa081a524b93 Author: Chun-wei Fan Date: Tue Jul 28 18:35:59 2015 +0800 src/gen_dispatch.py: Make Generated Code Build Under C89 ...so that the generated code are buildable by pre-2013 Visual Studio. The main thing that this does is that we avoid named initializers, but instead initialize the structs in old-school C89 way. The generated code may not look that robust, but since this is generated code, I think this is not that much an issue; when the Khronos registry gets updated, all that is needed is that the code gets re-generated, and we have the items in the right order. Signed-off-by: Emmanuele Bassi src/gen_dispatch.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit 8dead45cb366bf5c08539bef2ccaa36b80eb1483 Author: Emmanuele Bassi Date: Wed Dec 7 14:45:14 2016 +0000 Revert all changes since 8bbc0d40 Most of the changes that happened after commit 8bbc0d40 broke epoxy pretty much irreparably because of the CMake build and the attempt at making libepoxy a static library that can be copy-pasted into another project without generating files. Since all the commits are entangled, and are full of unrelated changes, we cannot simply do a localized set of reverts; instead, we need to hit the reset button. From this point forward, we're going to improve libepoxy's build while attempting to keep the existing build system working. This may mean reinstating the CMake build system at a later date. .gitignore | 14 + CMakeLists.txt | 98 - README.md | 156 +- autogen.sh | 2 +- cmake/FindEGL.cmake | 12 - cmake/FindGLESv1.cmake | 12 - cmake/FindGLESv2.cmake | 12 - cmake/FindPythonInterp.cmake | 106 - cmake/epoxy_run_test_wrapper.cmake | 17 - include/epoxy/Makefile.am | 3 - include/epoxy/common.h | 74 - include/epoxy/config.h.guess | 56 - include/epoxy/config.h.in | 44 - include/epoxy/egl.h | 19 +- include/epoxy/egl_pregenerated.h | 985 - include/epoxy/eglplatform.h | 134 - include/epoxy/gl.h | 71 +- include/epoxy/gl_pregenerated.h | 18668 ----- include/epoxy/glx.h | 22 +- include/epoxy/glx_pregenerated.h | 966 - include/epoxy/khrplatform.h | 276 - include/epoxy/wgl.h | 17 +- include/epoxy/wgl_pregenerated.h | 895 - msvc/detectenv-msvc.mak | 103 - src/CMakeLists.txt | 123 - src/Makefile.am | 11 - src/Makefile.sources | 46 - src/Makefile.vc | 73 - src/dispatch_common.c | 205 +- src/dispatch_common.h | 49 +- src/dispatch_egl.c | 14 +- src/dispatch_glx.c | 33 +- src/dispatch_wgl.c | 43 +- src/egl_pregenerated_dispatch.c | 4201 - src/gen_dispatch.py | 64 +- src/gl_pregenerated_dispatch.c | 122270 ------------------------------ src/glx_pregenerated_dispatch.c | 4807 -- src/wgl_pregenerated_dispatch.c | 5245 -- test/CMakeLists.txt | 150 - test/Makefile.sources | 73 - test/Makefile.vc | 68 - test/dlwrap.c | 3 - test/egl_and_glx_different_pointers.c | 15 +- test/egl_common.c | 10 +- test/egl_common.h | 2 +- test/egl_gl.c | 11 +- test/egl_has_extension_nocontext.c | 5 +- test/egl_without_glx.c | 39 +- test/glx_alias_prefer_same_name.c | 5 +- test/glx_beginend.c | 3 +- test/glx_common.c | 4 +- test/glx_gles2.c | 4 +- test/glx_glxgetprocaddress_nocontext.c | 3 +- test/glx_has_extension_nocontext.c | 3 +- test/glx_public_api.c | 3 +- test/glx_public_api_core.c | 3 +- test/glx_static.c | 3 +- test/headerguards.c | 43 +- test/khronos_typedefs_nonepoxy.c | 19 +- test/miscdefines.c | 6 +- test/wgl_common.c | 4 +- test/wgl_core_and_exts.c | 4 +- test/wgl_per_context_funcptrs.c | 6 +- test/wgl_usefontbitmaps.c | 8 +- 64 files changed, 492 insertions(+), 159951 deletions(-) commit 0aa9d1bc831683bfe93980eb3cffa1f0c2f058fb Merge: cc5e015 d5dfe2b Author: Yaron Cohen-Tal Date: Tue Nov 8 09:52:59 2016 +0200 Merge pull request #93 from ebassi/clean-autofoo-build build: Drop autogenerated autotools files from Git commit cc5e0157ebdd65e5eb07db330424b9a9537ecd80 Merge: 1589832 04387bc Author: Yaron Cohen-Tal Date: Tue Nov 8 09:51:40 2016 +0200 Merge pull request #92 from ebassi/force-rebuild build: Force replacing autotools generated files commit d5dfe2bd96d3b2f35c9ae8b0205a0522e820371f Author: Emmanuele Bassi Date: Mon Nov 7 20:20:04 2016 +0000 build: Drop autogenerated autotools files from Git These files should not be under revision control. This commit partially reverts: * 06fd4a271ad88476d8c6a37d49b6a8af5a11d988 * 62e384129b5b9243634ca4a71108c6f8699a24bd Makefile.in | 916 -- aclocal.m4 | 11861 ------------------------ compile | 347 - config.guess | 1420 --- config.h.in | 97 - config.sub | 1799 ---- configure | 21469 -------------------------------------------- depcomp | 791 -- include/epoxy/Makefile.in | 610 -- install-sh | 527 -- ltmain.sh | 9661 -------------------- missing | 215 - src/Makefile.in | 882 -- test-driver | 139 - test/Makefile.in | 1743 ---- 15 files changed, 52477 deletions(-) commit 04387bc188a6b0c2d7bc4a032bb46fb41ae59079 Author: Emmanuele Bassi Date: Mon Nov 7 19:34:01 2016 +0000 build: Force replacing autotools generated files If the '--force' switch is not passed to autoreconf, the autotools will try to reuse the generated files committed in the Git repo, which hard code the names and versions of the tools originally used to generate them. autogen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit ced192c30b8c1bcc9ad2d5dc3362395b7d2fab8b Author: Adam Jackson Date: Tue Oct 18 11:08:12 2016 -0400 egl: Fix the query for the current context's API Binding an API does not change the type of the current context. Even if it did, EGL 1.5 treats EGL_OPENGL_API and EGL_OPENGLES_API as identical for this purpose. If you want to know properties of the current context, query it. Signed-off-by: Adam Jackson src/dispatch_common.c | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) commit 15898325c1b3610dba737c311a33b28d83e343c7 Merge: 594e2e0 c8fb7dd Author: Yaron Cohen-Tal Date: Sat Oct 8 11:17:58 2016 +0300 Merge pull request #3 from RobotCaleb/patch-2 Update README.md commit c8fb7dd27dfc582326d2ce42aa2c676112cc49db Author: Caleb Anderson Date: Fri Oct 7 22:14:37 2016 -0600 Update README.md Typo and code block fixes README.md | 80 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 40 insertions(+), 40 deletions(-) commit 1814f06490a1d903092c292b965fb2f2f160d516 Author: Caleb Anderson Date: Thu Sep 29 01:21:44 2016 -0600 Update README.md Fix nmake list README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 594e2e082add2247afaa9cd331b30eaf05d2c18f Merge: b8d609e 5861026 Author: Yaron Cohen-Tal Date: Wed Sep 7 17:28:47 2016 +0300 Merge pull request #2 from BryanKadzban/master nVidia glx.h uses __glx_h__; define that too. commit 58610268fe41cb92a12700c1094a7cdf57c5b092 Author: Bryan Kadzban Date: Tue Sep 6 22:28:39 2016 -0700 nVidia glx.h uses __glx_h__; define that too. The code used to check this symbol, but commit 689abf4 replaced it with GLX_H, presumably to work better with either Mesa or Khronos headers. But nVidia's header use the older include guard. Add it as another option. Should fix the headerguards.c compile test when the system glx.h is from nVidia's binary drivers. include/epoxy/glx.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit b8d609e8f9fc1f9c4ff359adb2c1c44619a9e7cf Author: Yaron Cohen-Tal Date: Fri Jul 29 17:55:49 2016 +0300 Fox some X server not supporting any OpenGL feature, glXQueryExtensionsString will return NULL and causes the function to fail. Thanx to Emmanuel Stapf (manus@eiffel.com) for the original patch. This was verified running an application on macOS while the X server was running on Windows Xming 7.5.0.10 src/dispatch_common.c | 2 ++ 1 file changed, 2 insertions(+) commit c342cba2a1b882f30b1864b5819bdb8986f5ee9c Author: Yaron Cohen-Tal Date: Thu Nov 5 17:51:01 2015 +0200 Add glibc versions 2.2 and 2.3 to "dlwrap_real_dlsym". test/dlwrap.c | 2 ++ 1 file changed, 2 insertions(+) commit d81ab07f0b9a09c2a30b6f438cdc3f643c9612a8 Author: Yaron Cohen-Tal Date: Tue Nov 3 10:12:50 2015 +0200 Update pregenerated files. src/egl_pregenerated_dispatch.c | 301 +- src/gl_pregenerated_dispatch.c | 6905 ++++++++++++++++++++------------------- src/glx_pregenerated_dispatch.c | 335 +- src/wgl_pregenerated_dispatch.c | 343 +- 4 files changed, 3952 insertions(+), 3932 deletions(-) commit 6e3fa879cf62a8feaaca4f4c85541896ef5d8c1b Merge: a4ead97 4509aaf Author: Yaron Cohen-Tal Date: Tue Nov 3 10:11:45 2015 +0200 Merge branch "oncer/half_aliases_fix". commit 4509aafdd247a1310479bbc87ffdf45c877e571d Author: Simon Parzer Date: Tue Nov 3 01:32:56 2015 +0100 add glBindRenderbufferEXT to half_aliases it seems like this was forgotten, because glBindFramebufferEXT is already there for the same reason src/gen_dispatch.py | 2 ++ 1 file changed, 2 insertions(+) commit a4ead97cfd0493b5416a954b5d4aac304f25fbde Author: Yaron Cohen-Tal Date: Sat Oct 31 20:31:42 2015 +0200 Make "epoxy_current_context_is_egl" visible. include/epoxy/gl.h | 1 + src/dispatch_common.c | 4 +--- 2 files changed, 2 insertions(+), 3 deletions(-) commit 8d58c890646fc1f43bcab702bb9ed6bae94daefe Author: Yaron Cohen-Tal Date: Mon Sep 21 19:58:03 2015 +0300 Fix "epoxy_egl_get_current_gl_context_api" to use "eglQueryContext" with "EGL_CONTEXT_CLIENT_TYPE" as "attribute". src/dispatch_common.c | 32 +++++++------------------------- 1 file changed, 7 insertions(+), 25 deletions(-) commit b3b8bd9af7bf1fcfe544fd131f4d4f0d117ae7bc Author: Yaron Cohen-Tal Date: Tue Sep 29 11:57:55 2015 +0300 Fix "epoxy_glx_version" to handle the case when GLX is not active on the display. src/dispatch_glx.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) commit 7d1c96c85ffcfccfc4ddd36a2be96a219134bed8 Author: Yaron Cohen-Tal Date: Tue Sep 22 20:14:37 2015 +0300 Update pregenerated files. src/egl_pregenerated_dispatch.c | 2471 +- src/gl_pregenerated_dispatch.c | 70593 +++++++++++++++++++++++++++++++++++--- src/glx_pregenerated_dispatch.c | 3026 +- src/wgl_pregenerated_dispatch.c | 3395 +- 4 files changed, 74516 insertions(+), 4969 deletions(-) commit 6fe6b8e2d4f038654aec248d688ac955035bdbae Merge: 2bf2468 262a623 Author: Yaron Cohen-Tal Date: Tue Sep 22 10:02:44 2015 +0300 Merge branch "nephatrine/registry-support". commit 262a62345220c1b2a5e55a04717bcc927538d6c9 Author: Daniel Wolf Date: Mon Sep 21 23:09:23 2015 -0400 support newer/larger gl.xml src/gen_dispatch.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) commit 2bf2468502cf96b5db9f21366348f82b51990cce Merge: 4b6d637 fe7a96e Author: Yaron Cohen-Tal Date: Mon Sep 21 14:15:44 2015 +0300 Merge branch "blino/master". commit fe7a96e0771fe0c3a8f103f3bb2d1f811a5f3641 Author: Olivier Blin Date: Mon Sep 21 13:04:50 2015 +0200 dlwrap: add GLIBC_2.4 version to be able to run tests from ARM See sysdeps/unix/sysv/linux/arm/libdl.abilist in glibc test/dlwrap.c | 1 + 1 file changed, 1 insertion(+) commit 4b6d637ae036acbd7ad45d114af7ed498da730ae Author: Yaron Cohen-Tal Date: Sat Sep 5 10:37:14 2015 +0300 Update "README.md". README.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) commit 2af1715fbf5e7a9508bec01e70ec6bba8ec5204b Author: Yaron Cohen-Tal Date: Fri Sep 4 12:51:13 2015 +0300 Fix "FindGLESv1.cmake" and "FindGLESv2.cmake". cmake/FindGLESv1.cmake | 6 +++--- cmake/FindGLESv2.cmake | 4 ++-- test/CMakeLists.txt | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) commit 44d51f28445d40451bc600b26f3b4b17fd003c67 Author: Yaron Cohen-Tal Date: Thu Sep 3 23:17:39 2015 +0300 Fix support for a static build of Epoxy. Add support building and running tests with CMake. Add support for linking with the static run-time library with MSVC. CMakeLists.txt | 88 ++++++++++++++----- README.md | 16 +++- cmake/FindEGL.cmake | 12 +++ cmake/FindGLESv1.cmake | 12 +++ cmake/FindGLESv2.cmake | 12 +++ cmake/epoxy_run_test_wrapper.cmake | 17 ++++ include/epoxy/common.h | 29 ++++--- src/CMakeLists.txt | 85 +++++++++---------- src/dispatch_common.c | 3 +- src/dispatch_common.h | 0 src/dispatch_egl.c | 2 +- src/dispatch_wgl.c | 75 +++++++++++++++++ src/dllmain.c | 101 ---------------------- test/CMakeLists.txt | 150 +++++++++++++++++++++++++++++++++ test/egl_and_glx_different_pointers.c | 5 +- test/egl_gl.c | 3 +- test/egl_has_extension_nocontext.c | 3 +- test/egl_without_glx.c | 3 +- test/glx_alias_prefer_same_name.c | 5 +- test/glx_beginend.c | 3 +- test/glx_common.c | 4 +- test/glx_gles2.c | 4 +- test/glx_glxgetprocaddress_nocontext.c | 3 +- test/glx_has_extension_nocontext.c | 3 +- test/glx_public_api.c | 3 +- test/glx_public_api_core.c | 3 +- test/glx_static.c | 3 +- test/headerguards.c | 43 ++++------ test/khronos_typedefs_nonepoxy.c | 21 +---- test/miscdefines.c | 6 +- test/wgl_common.c | 4 +- test/wgl_core_and_exts.c | 4 +- test/wgl_per_context_funcptrs.c | 6 +- test/wgl_usefontbitmaps.c | 8 +- 34 files changed, 472 insertions(+), 267 deletions(-) commit 64e2ee2ca81cf7d772bad2f471073e1066572c17 Author: Yaron Cohen-Tal Date: Sun Aug 30 15:32:07 2015 +0300 Fix a bug in which "DllMain" isn't called when using the static version of Epoxy in Windows. src/CMakeLists.txt | 27 ++++++++++---- src/dispatch_common.h | 6 ++- src/dispatch_wgl.c | 58 ++--------------------------- src/dllmain.c | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 128 insertions(+), 64 deletions(-) commit dd695faee34c9b95fe4f1fd5b7a7247e5612036d Author: Yaron Cohen-Tal Date: Sun Aug 30 10:41:48 2015 +0300 Remove redundant code in "epoxy_get_bootstrap_proc_address". src/dispatch_common.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) commit ec2f42f01a95df0c524671ad7bf0ef1c55ecd63e Author: Yaron Cohen-Tal Date: Thu Aug 27 18:47:50 2015 +0300 Add support for building static libs with CMake. Fix file permissions. Update documentation about building static libs and about using OpenGL ES / EGL. CMakeLists.txt | 17 ++++++----- README.md | 81 +++++++++++++++++++++++++++++++++++++++------------ compile | 0 config.guess | 0 config.sub | 0 depcomp | 0 install-sh | 0 missing | 0 src/CMakeLists.txt | 55 ++++++++++++++++++++++++---------- src/dispatch_common.h | 4 +-- test-driver | 0 11 files changed, 113 insertions(+), 44 deletions(-) commit 62e384129b5b9243634ca4a71108c6f8699a24bd Author: Yaron Cohen-Tal Date: Wed Aug 26 21:40:01 2015 +0300 Add some files to the repo so that it's possible to build without running "autogen.sh". .gitignore | 13 - Makefile.in | 916 ++++ aclocal.m4 | 11861 ++++++++++++++++++++++++++++++++++++++++++++ compile | 347 ++ config.guess | 1420 ++++++ config.h.in | 97 + config.sub | 1799 +++++++ depcomp | 791 +++ include/epoxy/Makefile.in | 610 +++ include/epoxy/config.h.in | 44 + install-sh | 527 ++ ltmain.sh | 9661 ++++++++++++++++++++++++++++++++++++ missing | 215 + src/Makefile.in | 882 ++++ src/dispatch_common.h | 2 - test-driver | 139 + test/Makefile.in | 1743 +++++++ 17 files changed, 31052 insertions(+), 15 deletions(-) commit 06fd4a271ad88476d8c6a37d49b6a8af5a11d988 Author: Yaron Cohen-Tal Date: Mon Aug 3 21:07:37 2015 +0300 Add support for CMake (no support for building/running the tests yet). Fix support for Android. Add built-in support for building with EGL support (using "khrplatform.h" and "eglplatform.h" which are distributed together with Epoxy, and should work with any platform). .gitignore | 1 - CMakeLists.txt | 49 + README.md | 58 +- cmake/FindPythonInterp.cmake | 106 + configure | 21469 +++++++++++++ include/epoxy/Makefile.am | 2 + include/epoxy/common.h | 15 +- include/epoxy/config.h.guess | 56 + include/epoxy/egl.h | 16 +- include/epoxy/egl_pregenerated.h | 985 + include/epoxy/eglplatform.h | 134 + include/epoxy/gl.h | 64 +- include/epoxy/gl_pregenerated.h | 18668 ++++++++++++ include/epoxy/glx.h | 17 +- include/epoxy/glx_pregenerated.h | 966 + include/epoxy/khrplatform.h | 276 + include/epoxy/wgl.h | 16 +- include/epoxy/wgl_pregenerated.h | 895 + msvc/detectenv-msvc.mak | 3 + src/CMakeLists.txt | 90 + src/Makefile.am | 10 + src/dispatch_common.c | 42 +- src/dispatch_common.h | 27 +- src/dispatch_egl.c | 10 + src/egl_pregenerated_dispatch.c | 1993 ++ src/gen_dispatch.py | 37 - src/gl_pregenerated_dispatch.c | 60774 +++++++++++++++++++++++++++++++++++++ src/glx_pregenerated_dispatch.c | 2050 ++ src/wgl_pregenerated_dispatch.c | 2139 ++ 29 files changed, 110810 insertions(+), 158 deletions(-) commit 540952010bc2707bedfbbfe89c77d1a1640e76ae Author: Yaron Cohen-Tal Date: Sun Jul 19 20:55:36 2015 +0300 Fix tests to work with some OpenGL ES / EGL implementations. README.md | 3 ++- test/egl_and_glx_different_pointers.c | 10 +++++----- test/egl_common.c | 10 +++++----- test/egl_common.h | 2 +- test/egl_gl.c | 8 ++++---- test/egl_has_extension_nocontext.c | 2 +- test/egl_without_glx.c | 36 ++++++----------------------------- 7 files changed, 24 insertions(+), 47 deletions(-) commit 4c4a6e49ca6a5d0d4ff103ecbd4e70617805afce Author: Yaron Cohen-Tal Date: Sat Jul 18 13:03:01 2015 +0300 Fix support of some OpenGL ES and EGL implementations, specifically on Windows. src/dispatch_common.c | 126 ++++++++++++++++---------------------------------- 1 file changed, 40 insertions(+), 86 deletions(-) commit c976864bc9edc23f4ae0c4361be107338e9b1d04 Author: Chun-wei Fan Date: Tue Jul 28 18:35:59 2015 +0800 src/gen_dispatch.py: Make Generated Code Build Under C89 ...so that the generated code are buildable by pre-2013 Visual Studio. The main thing that this does is that we avoid named initializers, but instead initialize the structs in old-school C89 way. The generated code may not look that robust, but since this is generated code, I think this is not that much an issue; when the Khronos registry gets updated, all that is needed is that the code gets re-generated, and we have the items in the right order. src/gen_dispatch.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit b527c5f01f4f5977a6de03295e07c6f370d2ab0d Author: Yaron Cohen-Tal Date: Sun Jul 19 20:59:13 2015 +0300 Add new header file "common.h" to the installed files. include/epoxy/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit 90c6158d61a4b27f00997049d67344b425275c5c Author: Yaron Cohen-Tal Date: Sun Jul 19 12:59:31 2015 +0300 Unite defenitions "PUBLIC" and "EPOXY_IMPORTEXPORT" and add it where appropriate. Fix tests build errors. README.md | 5 ++++ include/epoxy/common.h | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ include/epoxy/egl.h | 9 ++++---- include/epoxy/gl.h | 10 +++----- include/epoxy/glx.h | 12 +++++----- include/epoxy/wgl.h | 7 +++--- src/Makefile.am | 1 + src/Makefile.vc | 2 +- src/dispatch_common.c | 10 ++++---- src/dispatch_common.h | 14 ------------ src/dispatch_egl.c | 4 ++-- src/dispatch_glx.c | 4 ++-- src/dispatch_wgl.c | 12 +++++----- src/gen_dispatch.py | 2 +- 14 files changed, 103 insertions(+), 51 deletions(-) commit 773dd02f596b3f256bb1c0f65ac091db93a9518b Author: Yaron Cohen-Tal Date: Sat Jul 18 12:00:06 2015 +0300 Added makefiles to build with MSVC 2013, and fixed errors and warnings. README.md | 12 ++++- include/epoxy/egl.h | 4 +- msvc/detectenv-msvc.mak | 100 +++++++++++++++++++++++++++++++++++++++ src/Makefile.sources | 46 ++++++++++++++++++ src/Makefile.vc | 73 ++++++++++++++++++++++++++++ src/dispatch_common.h | 24 +++++----- src/gen_dispatch.py | 2 +- test/Makefile.sources | 73 ++++++++++++++++++++++++++++ test/Makefile.vc | 68 ++++++++++++++++++++++++++ test/khronos_typedefs_nonepoxy.c | 2 + 10 files changed, 387 insertions(+), 17 deletions(-) commit 8bbc0d40c6c4e023e71ac8bfe7f5898005cac920 Author: Eric Anholt Date: Thu Jul 16 11:24:34 2015 -0700 Make the glx_alias_prefer_same_name test work, and hook it up. Apparently I started writing it, and didn't notice I wasn't building my code when I committed the library support. Makefile.am | 1 + test/Makefile.am | 2 +- test/glx_alias_prefer_same_name.c | 25 +++++++------------------ 3 files changed, 9 insertions(+), 19 deletions(-) commit c8cd4b7e0cb4a2b7646063766203f781a6f04f6b Author: Eric Anholt Date: Thu Jul 16 11:20:11 2015 -0700 Add missing files in the make dist. Make dist is such a terrible idea. Makefile.am | 2 ++ 1 file changed, 2 insertions(+) commit e2c33af5bfcfc9d168f9e776156dd47c33f428b3 Author: Eric Anholt Date: Wed Jul 15 16:46:36 2015 -0700 Bump to version 1.3.1 for release. A small bug was noticed during debian packaging. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 35016b75894adbf8eabb6682f80f68dfca14300c Author: Eric Anholt Date: Wed Jul 15 16:44:44 2015 -0700 Also drop the publishing of epoxy_conservative_egl_version() Like epoxy_conservative_gl_version(), it's internal only (and didn't have a published prototype in the headers). src/dispatch_egl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 118565cd8e8a352303d53643558adca9ec1c6406 Author: Eric Anholt Date: Wed Jul 15 16:13:12 2015 -0700 Bump version to 1.3 for release. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 585c703699a3e21c2aabf4886ff8d9bdf5d7742c Author: Eric Anholt Date: Wed Jul 15 15:42:37 2015 -0700 Add some missing spacing in generated code. src/gen_dispatch.py | 1 + 1 file changed, 1 insertion(+) commit b2c00a18af8e3816b77f57092b0d24843a59a8a5 Author: Eric Anholt Date: Wed Jul 15 15:37:26 2015 -0700 Use a concatenated string for enum descriptions. Saves another 15kb of compiled code. src/gen_dispatch.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) commit d4620b7dd30e5cd398e10d8d5fb0e25f4cc65817 Author: Eric Anholt Date: Wed Jul 15 14:46:55 2015 -0700 Use __attribute__((packed)) to reduce our data size. Since our provider enums are small, we can store them as bytes or shorts if we just let the compiler know that it's OK. Saves 20kb in the compiled library. src/dispatch_common.c | 19 ------------------- src/dispatch_common.h | 9 ++++++--- src/gen_dispatch.py | 11 +++++++++-- 3 files changed, 15 insertions(+), 24 deletions(-) commit 62861d12f9d3c1d3c61c7daa939239990b6a6c7f Author: Eric Anholt Date: Wed Jul 15 14:26:43 2015 -0700 Emit APIENTRY for typedefs that use it. The XML uses a node for where the string should be. This should fix segfaults using GL_ARB_debug_output on windows. Fixes #46. src/gen_dispatch.py | 2 ++ 1 file changed, 2 insertions(+) commit 8154c0efd3b98e6b602bf2a320360e6f9cf503b1 Merge: a7c270f 5987e1e Author: Eric Anholt Date: Wed Jul 15 14:08:43 2015 -0700 Merge branch 'khronos-registry' This brings in support for non-error context extensions. commit 5987e1ef1ae5ee13e766a6d805277ab0c809a5f3 Author: Eric Anholt Date: Wed Jul 15 14:07:59 2015 -0700 Import registry from SVN 31705 registry/egl.xml | 8 +++++- registry/gl.xml | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 75 insertions(+), 9 deletions(-) commit a7c270f8e2b8dcbf9874632e18a0948255de49d3 Author: Yaron Cohen-Tal Date: Thu Jul 9 13:44:52 2015 +0300 Fix epoxy_egl_get_current_gl_context_api() on non-conformant ES. According to the OpenGL ES standard, "glGetString(GL_VERSION)" should return a string starting with "OpenGL ES". However, PowerVR's OpenGL ES implementation (and perhaps others) don't comply with the standard here. If our context happend to be bound using EGL, then we can just ask EGL what kind of context it was, avoiding the glGetString() check. src/dispatch_common.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) commit 227d1312e6a7d5ec46d29ad4d13d434736e70f71 Author: Eric Anholt Date: Wed Jul 15 13:52:56 2015 -0700 Look for GL 1.1 functions in win32's OpenGL32.dll. The windows ABI is GL 1.1, not 1.0. You get NULL pointers for 1.1 functions when calling wglGetProcAddress(). Fixes #47. src/dispatch_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8ce3e5f14f13cdfea68c7b8e437d04bae29fbb47 Author: Eric Anholt Date: Wed Jul 15 13:42:43 2015 -0700 Update README for the dropping of X11 on OSX. Fixes #39 README.md | 5 ----- 1 file changed, 5 deletions(-) commit d9df59df711d4bf9fa9f309ab3b1c880f07c2883 Author: Chun-wei Fan Date: Wed Jun 17 09:38:53 2015 +0800 src/dispatch_common.c: Remove Unneeded PUBLIC Annotation Don't mark epoxy_conservative_gl_version() for export, as it is meant to be a private API to be used within libepoxy only. Reviewed-by: Eric Anholt src/dispatch_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit a2a51904b0811510e90d8e6cf554de237b9205ab Author: Chun-wei Fan Date: Fri Jun 5 14:07:35 2015 +0800 test/wgl_per_context_funcptrs.c: Fix build on Visual Studio Ensure that we do __stdcall only after the return type, as Visual Studio will not like it otherwise. test/wgl_per_context_funcptrs.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit e9f68fe3a34e769ac2f3e5d4b92c1358edd7af5c Author: Chun-wei Fan Date: Fri Jun 5 14:06:23 2015 +0800 Fix generated code for building on MSVC 2013 This updates the script to generate code that is buildable by Visual Studio 2013 by: -Using a macro to define the compiler-specific way to do noinline for a function, and use it when needed. -Avoid using empty arrays and structs as that is a C99 feature that will likely be never support on Visual Studio as it is now an optional feature of C11. src/gen_dispatch.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) commit 7d5e8e9d5604736601e28f4c8530759fc537fd12 Author: Chun-wei Fan Date: Fri Jun 5 17:38:26 2015 -0700 Put the callspec after the return type for MSVC. Visual Studio does not like __stdcall before the return type, which is what GLAPIENTRY and EPOXY_CALLSPEC expands to on Windows. src/dispatch_common.c | 4 ++-- src/dispatch_common.h | 14 +++++++------- src/dispatch_wgl.c | 8 ++++---- 3 files changed, 13 insertions(+), 13 deletions(-) commit e2424977284e7f0f124b2ae84d48addbfbf4b03e Author: Chun-wei Fan Date: Fri Jun 5 17:37:01 2015 -0700 Avoid empty struct intializer on MSVC. It is a C99 feature that is not supported (nor will it probably be at any point) on Visual Studio. src/dispatch_common.c | 2 ++ 1 file changed, 2 insertions(+) commit 95ecc2d1a1731c7018cea1d11d1ad85a71629d21 Author: Chun-wei Fan Date: Fri Jun 5 14:03:51 2015 +0800 Port the library_init() constructor to MSVC. src/dispatch_common.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) commit d88c639e63099c5143a0b06214aa80161c8d5a95 Author: Chun-wei Fan Date: Fri Jun 5 13:56:33 2015 +0800 Fix public headers for building in Visual Studio Ensure that we also have import/export decorations for the prototypes, as Visual Studio does not like such decorations on the function definitions without the prototypes decorated as well, when the function prototypes exist. include/epoxy/gl.h | 6 +++--- include/epoxy/wgl.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) commit 136cf854248118b1f2e3582df868cdecd1d5fb7b Author: Eric Anholt Date: Fri Jun 5 17:19:07 2015 -0700 Use the provider enum to tie-break sorting by function provider name. Without this, we got code generation that was dependent on the original ordering in the hash table, and thus non-reproducible builds. Based on a commit by Stephan Kulow, but retaining the sorting by function name first (that way all providers with the same name appear next to each other like before, and also happens to ensure that core names tend to appear before non-core names) src/gen_dispatch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit b9fbcaf0e280b990d984899a2809eaacfc0391e2 Merge: 6411628 eeda3a5 Author: Eric Anholt Date: Fri Jun 5 16:58:26 2015 -0700 Merge remote-tracking branch 'airlied/master' commit 6411628392fc123eeb3c5397493d41bf451fe5f1 Merge: 20062c2 b7e921d Author: Eric Anholt Date: Fri Jun 5 16:52:45 2015 -0700 Merge pull request #42 from cicku/patch-1 Update the homepage URL commit eeda3a5a6d21695e8c875d4f3974b753a5be16d7 Merge: 20062c2 85e5100 Author: Dave Airlie Date: Tue May 5 16:03:00 2015 +1000 Merge branch 'khronos-registry' commit 85e5100d673bba0945fa097966160720a1f86a36 Author: Dave Airlie Date: Tue May 5 16:02:01 2015 +1000 Import registry from SVN 31039 registry/egl.xml | 185 ++++++++-- registry/gl.xml | 1002 +++++++++++++++++++++++++++++++++++++++++++++++++----- registry/wgl.xml | 6 +- 3 files changed, 1080 insertions(+), 113 deletions(-) commit b7e921da131e98aeeced824d6accea6703ff2b70 Author: Christopher Meng Date: Wed Mar 4 10:37:02 2015 +0800 Update the homepage URL configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 20062c25e7612cab023cdef44d3277ba1bd0b2de Merge: 135f7bf e9ce388 Author: Eric Anholt Date: Sat Jan 10 11:59:51 2015 +1300 Merge branch 'khronos-registry' commit e9ce388f746f6c0557b863a38648ae1646658951 Author: Eric Anholt Date: Sat Jan 10 11:59:10 2015 +1300 Import registry from SVN 29350 registry/egl.xml | 302 ++++- registry/gl.xml | 3305 ++++++++++++++++++++++++++++++++++++++++++++++++------ registry/glx.xml | 127 ++- registry/wgl.xml | 408 +++---- 4 files changed, 3593 insertions(+), 549 deletions(-) commit 135f7bf1043ca2a48d88d920fd46f3fe0097f359 Author: Eric Anholt Date: Sat Jan 10 11:18:50 2015 +1300 wgl: Fix an extra break statement. This would have leaked our TLS indices on process exit. Fixes #32 src/dispatch_wgl.c | 1 - 1 file changed, 1 deletion(-) commit 363d57a9de7d9241264590c35638705f14022daa Merge: b2ae054 e305148 Author: Eric Anholt Date: Sat Jan 10 10:29:17 2015 +1300 Merge remote-tracking branch 'sonicadvance/OSX-NoX11Support' I've come around to the various contributors' positions: X11 on OSX is basically dead, and we're not serving our users by trying to support it. commit b2ae054b3aa0d6796b6936c7a89b8cce7cefe7ba Author: Eric Anholt Date: Fri Jun 13 15:54:29 2014 -0700 Avoid name conflicts between pkgconfig's EGL_LIBS and a temporary var. I felt a little uncomfortable knowing I had two things defining EGL_LIBS, but it worked on my system. It failed on the travis ci build. test/Makefile.am | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit 0096b79923f4a2b73b004f679d48ef110936a459 Author: Eric Anholt Date: Fri Jun 13 15:00:31 2014 -0700 Fix context type detection if we find eglGetCurrentContext(). Fixes #29. src/dispatch_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit d56f21c494b315306215c4730835a9b291360e9b Author: Eric Anholt Date: Fri Jun 13 14:59:37 2014 -0700 Use the EGL pkgconfig for finding eglplatform.h. We don't ever explicity link against libEGL, so no need to make use of EGL_LIBS. Fixes #30. configure.ac | 1 + src/Makefile.am | 1 + test/Makefile.am | 4 +++- 3 files changed, 5 insertions(+), 1 deletion(-) commit 27298ee31b9979fb058c3908cc631e8dce9ea674 Author: Eric Anholt Date: Fri Jun 13 14:41:41 2014 -0700 tests: Fix the passing of the "-z now" arg to the linker. These LDFLAGS go to the compiler, and getting the arg to the linker requires -Wl or -Xlinker. gcc apparently was passing this through anyway, while clang was getting angry. test/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 4a76cb97f80522261929e312b8a93b76c119a022 Author: Eric Anholt Date: Fri Jun 13 13:43:20 2014 -0700 Add a control file for Travis CI. This isn't quite as good as I'd like -- the XVFB setup doesn't support a bunch of context creation extensions that we use, and I haven't looked into the multiplatform stuff for doing OS X testing yet. I think it's a good start, though. .travis.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) commit 28c9c471b2705b4cf8b00729b355b04326960812 Author: Eric Anholt Date: Tue Jun 10 14:16:06 2014 -0700 Remove a C99ism from dispatch. I've decided it's time to accept that building with MSVC 2010 is a way that people want to use this software. src/dispatch_common.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 4d64234e0512ced15f5c87a0ff2ac9755c592549 Merge: 7422de5 c791612 Author: Eric Anholt Date: Fri Jun 13 13:55:01 2014 -0700 Merge pull request #27 from Sonicadvance1/Android-Support Add support for Android. commit e3051481cc9f5b7b36b317aff1454ee16ea9cdb9 Author: Ryan Houdek Date: Sun May 4 22:52:12 2014 -0500 Adds support for OS X without X11. OS X support shouldn't depend on X11 being installed on the host. Removes the X11 dependency. configure.ac | 2 +- src/dispatch_common.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit c791612b0a468b5c572352e66eeaeb1d8c8947e5 Author: Ryan Houdek Date: Sun May 4 19:05:34 2014 -0500 Adds support for Android. This has been tested with both OpenGL and OpenGL ES on Android. We can't use dlsym on Android to get all the function pointers since Android's libGLES* libraries are just shim libraries that pass everything through to the real vendor specific libraries. Due to this we must grab function pointers entirely through eglGetProcAddress instead of dlsym. src/dispatch_common.c | 32 +++++++++++++++++++++++++------- src/dispatch_common.h | 5 +++++ 2 files changed, 30 insertions(+), 7 deletions(-) commit 7422de5b4be7b19d789136b3bb5f932de42db27c Author: Eric Anholt Date: Tue May 13 17:22:08 2014 -0700 Bump version to 1.2 for release. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5f88ca5cd690377277a616670ef6f81039680072 Merge: c7a9184 3f402f6 Author: Eric Anholt Date: Tue May 13 13:41:14 2014 -0700 Merge branch 'khronos-registry' commit 3f402f60526208f05fb08312588449fc2cc59bfc Author: Eric Anholt Date: Tue May 13 13:41:00 2014 -0700 Import registry from SVN 26622 registry/egl.xml | 32 ++- registry/gl.xml | 77 ++++- registry/glx.xml | 846 ++++++++++++++++++++++++++++--------------------------- 3 files changed, 536 insertions(+), 419 deletions(-) commit c7a91844deb0232dd398a87090a556bcc5069eec Author: Eric Anholt Date: Tue May 13 12:30:48 2014 -0700 Don't forget to install the wgl headers. Fixes #26 include/epoxy/Makefile.am | 5 +++++ src/Makefile.am | 1 + 2 files changed, 6 insertions(+) commit 568533441ffe113ac919ce3db16fcde8126a9b70 Author: Eric Anholt Date: Thu Apr 10 13:30:05 2014 -0700 Move __stdcall into the parens for function pointer definitions. MSVC 2010 appears to require that it be located there. include/epoxy/gl.h | 11 ++++++++--- src/dispatch_common.h | 19 +++++++++---------- src/gen_dispatch.py | 2 +- 3 files changed, 18 insertions(+), 14 deletions(-) commit 6eb075c70e2f91a9c45a90677bd46e8fb0432655 Author: Eric Anholt Date: Tue Apr 8 23:47:54 2014 -0700 Fix EGL context detection for non-GLES2-core functions. Fixes failure of the X Server with glamor using desktop GL on EGL, and the associated testcase in the tree. This was clearly just copy-and-paste failure on my part in b251e3ae337cecda3cbede6fde8cc8f7cef942c9. src/dispatch_common.c | 18 ++++++++---------- test/Makefile.am | 1 - 2 files changed, 8 insertions(+), 11 deletions(-) commit bb94003b78d9bf533d89ead5f630e364261ca5a6 Author: Eric Anholt Date: Tue Apr 8 23:47:25 2014 -0700 Add a test for a failure I found with the X Server after my last fixes. test/.gitignore | 1 + test/Makefile.am | 4 ++ test/egl_gl.c | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 135 insertions(+) commit 756dcaf6a5e07ead098457efba15f5be75bf2123 Author: Eric Anholt Date: Fri Mar 28 16:38:19 2014 -0700 Disable the dlwrap-based tests on apple. We'd need a dlvsym() equivalent. configure.ac | 6 ++++++ test/Makefile.am | 12 ++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) commit 3e09de7550cd901b8d3ecbf27e0128f0dc0f0b99 Author: Eric Anholt Date: Wed Mar 19 14:18:26 2014 -0700 win32: Delay using dispatch tables until the second MakeCurrent. Fixes #11. README.md | 8 +------- src/dispatch_common.h | 39 ++++++++++++++++++++------------------- src/dispatch_wgl.c | 29 ++++++++++++++++++++++------- src/gen_dispatch.py | 24 ++++++++++++------------ 4 files changed, 55 insertions(+), 45 deletions(-) commit 370c49d5cdd8060ea2fee1e777311f86b495aa94 Author: Eric Anholt Date: Fri Mar 28 12:49:28 2014 -0700 Use #defines to shrink the size of gl_generated_dispatch.c I was running into file size limits with win32 debug symbols. src/dispatch_common.h | 93 +++++++++++++++++++++++++++++++++++++++++++++++---- src/gen_dispatch.py | 90 ++++++++++++------------------------------------- 2 files changed, 108 insertions(+), 75 deletions(-) commit 11a946cbf5ebd4ba79915ab06434847ae2581e47 Author: Eric Anholt Date: Fri Mar 28 14:27:29 2014 -0700 Prefer non-aliased functions when resolving. This increases the size of the library, but avoids some of the concerns that have been brought up with the library silently switching you from glWhateverEXT() to glWhatever() if there might be slight behavior differences between the two that hadn't been identified. The downside is that it means we can't share the resolver functions among aliases. src/gen_dispatch.py | 29 ++++++------ test/.gitignore | 1 + test/Makefile.am | 7 ++- test/glx_alias_prefer_same_name.c | 93 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 115 insertions(+), 15 deletions(-) commit ea12f935c14351a26a721fc6ffee6c67b53b0e15 Author: Eric Anholt Date: Fri Mar 28 12:06:47 2014 -0700 wgl: Add a test for MakeCurrent returning different function pointers. Huh, my old rule of "untested code is broken code" didn't hold up, for once. test/Makefile.am | 3 + test/wgl_per_context_funcptrs.c | 166 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 169 insertions(+) commit b1d875ef0b4558a138e633cdcd275d11b669eb89 Author: Eric Anholt Date: Thu Mar 27 19:18:24 2014 -0700 Clean up epoxy_current_context_is_glx(). Now that it's split out from epoxy_get_core_proc_address(), the particular symbols we were testing for before calling GetCurrentContext() didn't make much sense, plus we were leaking dlerror()s still. src/dispatch_common.c | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) commit db5b939f986b7c052185a28864fcb7351bc20e8a Author: Eric Anholt Date: Thu Mar 27 19:06:21 2014 -0700 Ask glXGetProcAddress for ES symbols when we're on a GLX context. Fixes #24 src/dispatch_common.c | 24 ++++++++++++++++++------ test/Makefile.am | 1 - 2 files changed, 18 insertions(+), 7 deletions(-) commit b251e3ae337cecda3cbede6fde8cc8f7cef942c9 Author: Eric Anholt Date: Thu Mar 27 19:04:27 2014 -0700 Factor out the GLX versus EGL current context detection code. It turns out I need to reuse this for GLES symbols when using GLX_EXT_create_context_es2_profile. src/dispatch_common.c | 113 +++++++++++++++++++++++++++++++------------------- 1 file changed, 70 insertions(+), 43 deletions(-) commit d48978c0849e48020d5326bcb35ce99b067e4b9d Author: Eric Anholt Date: Thu Mar 27 18:54:12 2014 -0700 Don't leak dlerror()s while we're trying to probe libraries. Again, no known bugs, but it seems like a bad idea. src/dispatch_common.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) commit 72187a29c2d1e4852dfcb9b397418ff21dae1835 Author: Eric Anholt Date: Thu Mar 27 18:53:10 2014 -0700 Don't dlsym() if we failed to dlopen(). No reported bugs I'm fixing here, just cleanup. src/dispatch_common.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) commit e230042ffe3f55c24153d908c8aa0c255e1b3620 Author: Eric Anholt Date: Thu Mar 27 18:36:59 2014 -0700 test: Add a test using GLX_EXT_create_context_es2_profile. This is based on a bug report from Steinar H. Gunderson about using GLES3 with SDL and epoxy. test/.gitignore | 1 + test/Makefile.am | 6 +++ test/glx_gles2.c | 118 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 125 insertions(+) commit 46da7790b2f327d49b20597c92a10de20a8efba3 Author: Eric Anholt Date: Thu Mar 27 17:32:16 2014 -0700 test: Avoid segfaulting when nvidia driver does a dlopen(RTLD_DEFAULT) test/dlwrap.c | 3 +++ 1 file changed, 3 insertions(+) commit 7f5fc047daa0054c1d71d6206db4fd9b26a4ff7c Author: Eric Anholt Date: Thu Mar 27 15:37:32 2014 -0700 win32: Fix a C90 compiler warning. test/wgl_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit e7d3088d714e5d19aa4a1bab1e375d7d4e537907 Author: Eric Anholt Date: Thu Mar 27 13:44:26 2014 -0700 win32: Add support for wglUseFontBitmaps(). Fixes #10. include/epoxy/wgl.h | 6 ++++++ src/gen_dispatch.py | 7 +++++++ 2 files changed, 13 insertions(+) commit 5a37cf88b5a71c450caf9bb94a0d9b379baa0781 Author: Eric Anholt Date: Thu Mar 27 13:41:19 2014 -0700 win32: Add a test for wglUseFontBitmaps(). test/.gitignore | 2 ++ test/Makefile.am | 7 +++++ test/wgl_usefontbitmaps.c | 75 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 84 insertions(+) commit e7f69038da3b3e6788f54b19b9c10e4f1df8370a Author: Eric Anholt Date: Thu Mar 27 10:53:33 2014 -0700 Add EGL_NOK_swap_region definition. I couldn't find a spec for this one on the internet, but this matches the prototype in eglmesaext.h. The note in swap_region2 says: 4) How is this extension an improvement over EGL_NOK_swap_region? RESOLVED: This extension builds on the previous EGL_NOK_swap_region extension by requiring that the implementation considers the update region provided by the application as a mandate rather than a hint. This allows for region-restricted rendering without requiring the use of preserved buffer swaps which may be relatively expensive for the implementation. Furthermore, whilst preserved swap behaviour is necessary for incremental rendering, many applications fully re-render modified surface regions and so don't require preserved swap behaviour. This extension provides a lighter weight surface update mechanism for such applications. registry/egl.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit d74355fc96aceb6d0856ccb39476239155f65839 Author: Eric Anholt Date: Thu Mar 27 10:47:41 2014 -0700 Add EGL_NOK_swap_region2 definition. Found at: https://www.khronos.org/registry/egl/extensions/NOK/EGL_NOK_swap_region2.txt registry/egl.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) commit d53169404a9a07a3e3d00517dd615ccd02fed4dd Author: Eric Anholt Date: Thu Mar 27 10:41:04 2014 -0700 Add EGL_NOK_texture_from_pixmap definition. Found at: https://www.khronos.org/registry/egl/extensions/NOK/EGL_NOK_texture_from_pixmap.txt registry/egl.xml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) commit 91d8e5f8480908ec8abe642f2f67fc74814fefb5 Merge: 5dcdfe9 f762c7f Author: Eric Anholt Date: Thu Mar 27 09:05:12 2014 -0700 Merge branch 'khronos-registry' This brings in GLES 3.1, EGL 1.5, and GLX_MESA_query_renderer. commit f762c7feb7da5cd1d4b43719caf9adb3fcca9ac1 Author: Eric Anholt Date: Thu Mar 27 09:02:27 2014 -0700 Import registry from SVN 26007 registry/egl.xml | 356 +++++++++++++++----- registry/gl.xml | 991 +++++++++++++++++++++++++++++++++++-------------------- registry/glx.xml | 60 +++- registry/wgl.xml | 2 +- 4 files changed, 973 insertions(+), 436 deletions(-) commit 5dcdfe9d794feac044bc826ce2e32d2f81f10a36 Author: Eric Anholt Date: Thu Mar 27 08:43:31 2014 -0700 Remove a debug printf that slipped in. src/dispatch_common.c | 2 -- 1 file changed, 2 deletions(-) commit 847a6d50dbd3947951d3b12dc3c6b4d6a43000a5 Author: Eric Anholt Date: Wed Mar 19 18:27:10 2014 -0700 Avoid using eglGPA() for core funcs when the current context is GLX. If you already had GLX loaded by epoxy, this wouldn't happen, but on the first call, fallback cases might have taken the EGL path if EGL was loaded. src/dispatch_common.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) commit b670c840390859d20c478b9494e09b0c99aaab51 Author: Eric Anholt Date: Wed Mar 19 18:24:29 2014 -0700 Refactor dispatch_common's EGL context detection code. I want to reuse this from get_core_proc_address(). src/dispatch_common.c | 76 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 46 insertions(+), 30 deletions(-) commit e6d9bb971bfeb9e3990ee54bdc84b701e1eaabd8 Author: Eric Anholt Date: Wed Mar 19 17:47:01 2014 -0700 Try to use glXGPA() for core funcs if the current context is GLX. Fixes the GLX-only subtest of egl_and_glx_different_pointers. Now what remains is dispatch tables for when you're actively using both. Fixes #23 src/dispatch_common.c | 30 +++++++++++++----------------- test/Makefile.am | 1 - 2 files changed, 13 insertions(+), 18 deletions(-) commit 698185e24a35f046d29e440b0edc4f9737f2f76d Author: Eric Anholt Date: Wed Mar 19 17:44:21 2014 -0700 Try to avoid looking up bootstrap functions in the wrong library. Fixes the EGL-only subtest of egl_and_glx_different_pointers. src/dispatch_common.c | 8 +++----- test/Makefile.am | 1 - 2 files changed, 3 insertions(+), 6 deletions(-) commit 037ac7f56646a906326dd35567410045e4a1f314 Author: Eric Anholt Date: Tue Mar 18 17:17:15 2014 -0700 Add a test for EGL and GLX returning different function pointers. This is the case on the nvidia binary driver's GL, or when you've got a system mixing nvidia binary GL and Mesa EGL. src/dispatch_common.c | 2 + test/.gitignore | 3 + test/Makefile.am | 31 +++++ test/dlwrap.c | 209 ++++++++++++++++++----------- test/dlwrap.h | 10 ++ test/egl_and_glx_different_pointers.c | 246 ++++++++++++++++++++++++++++++++++ 6 files changed, 426 insertions(+), 75 deletions(-) commit dae231680e2d400560a74518dcfb4dacb2a474a3 Author: Eric Anholt Date: Wed Mar 19 12:32:36 2014 -0700 Import a copy of dlwrap from libfips. This is just cworth's code, reindented for this project. test/dlwrap.c | 253 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ test/dlwrap.h | 57 +++++++++++++ 2 files changed, 310 insertions(+) commit 9efad17eb439a9c8fbced62486e826690b289b3b Author: Eric Anholt Date: Mon Mar 17 11:21:11 2014 -0700 Actually fix #21 (hopefully). src/gen_dispatch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 14f24485e33816139398d1bd170d617703473738 Author: Eric Anholt Date: Mon Mar 17 11:17:19 2014 -0700 Add support for looking up GLES3 functions using dlsym(). ARM and Mesa disagreed on how to look up the functions, so support both ways. Fixes #21 src/dispatch_common.c | 23 ++++++++++++++++++++++- src/dispatch_common.h | 1 + 2 files changed, 23 insertions(+), 1 deletion(-) commit 053ac5f45780ed82eeaffa457353e6c25593bef3 Author: Eric Anholt Date: Mon Mar 17 11:18:36 2014 -0700 Fix test build. I was initially planning on having a separate file of the overrides when I'd forgotten I couldn't rely on ELF symbol lookup. test/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 53b87c33e4f547a147fe8931b2494b84bad82406 Author: Eric Anholt Date: Mon Mar 17 09:48:33 2014 -0700 Catch eglBindAPI() failures in looking up bootstrap functions. This fixes crashes on ARM's Mali drivers, where desktop GL isn't supported, and epoxy didn't notice the error and tried to dlsym() on libGL.so.1. An alternative would have been to look at the response from eglQueryAPI() first, but that would have meant that we still need to BindAPI in the case that eglQueryAPI returns something like VG or CL, and so we needed to handle these errors regardless. Fixes #22 src/dispatch_common.c | 43 ++++++++++++++++++++++++------------------- test/Makefile.am | 2 -- 2 files changed, 24 insertions(+), 21 deletions(-) commit f15c169cad38964892ea1067208bd84e34382005 Author: Eric Anholt Date: Mon Mar 17 09:12:18 2014 -0700 Extend the egl_without_glx test for another quirk of the platform. Epoxy dlsym()s directly into libEGL instead of using dlsym() on a NULL handle, so we can't relying on ELF resolution like we do for dlopen(). Instead, just override epoxy's function pointers for the functions epoxy will call in the process of getting one of these bootstrap functions. test/Makefile.am | 6 ++++-- test/egl_without_glx.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 58 insertions(+), 6 deletions(-) commit d4ad80fb8e7c85c4df455ade75f8dd78579c4d7c Author: Fredrik Höglund Date: Wed Feb 12 18:11:24 2014 +0100 Add aliases for OES_get_program_binary registry/gl.xml | 2 ++ 1 file changed, 2 insertions(+) commit 35e3b0a6da2e921e507e907a0f26dac4f47643ff Author: Fredrik Höglund Date: Wed Feb 12 18:07:44 2014 +0100 Add aliases for APPLE_sync registry/gl.xml | 7 +++++++ 1 file changed, 7 insertions(+) commit 30de2e86ea49530241dae884d0c83d2c953b54d5 Author: Fredrik Höglund Date: Tue Feb 11 22:37:17 2014 +0100 Add aliases for EXT_texture_storage registry/gl.xml | 3 +++ 1 file changed, 3 insertions(+) commit fea4a8feee978b8f847fce3ee381622327998c02 Author: Fredrik Höglund Date: Tue Feb 11 22:30:44 2014 +0100 Add alias for NV_framebuffer_multisample registry/gl.xml | 1 + 1 file changed, 1 insertion(+) commit 64e90baf8782f0d7c8262b6c2a6eacc6fcca88e5 Author: Fredrik Höglund Date: Tue Feb 11 22:21:33 2014 +0100 Add aliases for OES_texture_3D registry/gl.xml | 6 ++++++ 1 file changed, 6 insertions(+) commit e20b3ce6c7895f355fd1bad81b45341d98b5ee76 Author: Fredrik Höglund Date: Tue Feb 11 20:49:58 2014 +0100 Fix EGLDisplay parameters in epoxy functions EGLDisplay is typedefed as a pointer. include/epoxy/egl.h | 4 ++-- src/dispatch_egl.c | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) commit 87a099b141faa188be2a46976ce8657a213ab94b Author: Fredrik Höglund Date: Mon Feb 10 18:41:12 2014 +0100 Add alias for NV_framebuffer_blit registry/gl.xml | 1 + 1 file changed, 1 insertion(+) commit 6c5417db468d67c8fbd2dd60951350e912976500 Author: Fredrik Höglund Date: Mon Feb 10 18:29:21 2014 +0100 Add aliases for EXT_map_buffer_range Note that GLES doesn't allow zero-length mappings, unlike desktop GL. registry/gl.xml | 2 ++ 1 file changed, 2 insertions(+) commit 8d942b8639f83788162469bba118287b5a50a381 Author: Fredrik Höglund Date: Mon Feb 10 18:24:19 2014 +0100 Add aliases for OES_vertex_array_object registry/gl.xml | 4 ++++ 1 file changed, 4 insertions(+) commit 93a5b15ae9d815994fb25b9e9f2276bea5964ca4 Author: Fredrik Höglund Date: Mon Feb 10 18:18:09 2014 +0100 Add aliases for NV_instanced_arrays registry/gl.xml | 3 +++ 1 file changed, 3 insertions(+) commit f09c4d00dcfa8f1bca3a18ef9dd2fa80216dac9a Author: Fredrik Höglund Date: Mon Feb 10 18:17:48 2014 +0100 Add aliases for ANGLE_instanced_arrays registry/gl.xml | 3 +++ 1 file changed, 3 insertions(+) commit e1e13a51b47e0463070e0fb20eee0e572fa3f724 Author: Eric Anholt Date: Thu Feb 6 15:08:38 2014 -0800 Bump version to 1.1 for release. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 67a1ad4f6c99b508209973cf3d5382491577a0ff Author: Eric Anholt Date: Thu Feb 6 14:45:53 2014 -0800 Add limited support for the KHRONOS_* defines from khrplatform.h. The only way these get used is when you choose to include epoxy/gl.h but EGL/egl.h. I'm not sure that's something I want to actually support, but piglit happened to do so, and this gets things working. There's not as much support here as in real khrplatform.h, but then there's no EGL for windows. And seriously, compilers support 64-bit and float types, why would you even build this complexity? include/epoxy/gl.h | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 9998c39e8d4e5be0ff8b15f5ea1521c861b2c0e6 Author: Eric Anholt Date: Thu Feb 6 13:20:00 2014 -0800 Fix a bad error message in an EGL test. test/egl_has_extension_nocontext.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit eb7a99d1bd7279584e79314b7d4ae65aa063928c Author: Eric Anholt Date: Thu Feb 6 13:19:16 2014 -0800 Add missing '\n's to wgl test errors. Like some of the other missing '\n's, I'd originally used errx(), then just done a sed job to fprintf when I found that win32 lacked errx(). test/wgl_common.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 81ccc70837811960ad2c6ff0bc5b5f945f60d4a1 Author: Eric Anholt Date: Thu Feb 6 13:17:06 2014 -0800 Fix some silly line-wrapping in a printf. src/dispatch_common.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit c4d19366cc15587a57dfc7e11fdc3e62bf563868 Author: Eric Anholt Date: Thu Feb 6 11:29:36 2014 -0800 Add a missing \n on an error message. src/dispatch_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 766422a82ce1a72bd020574b3df41ddbebd246f4 Author: Eric Anholt Date: Thu Feb 6 11:23:43 2014 -0800 Use the same typedefs as upstream khrplatform.h in a couple cases. This should avoid any differences we might end up with compared to system khrplatform.h. src/gen_dispatch.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit e4f5da9539f606e0043678579de83f66f0b3e9c4 Author: Eric Anholt Date: Thu Feb 6 10:51:33 2014 -0800 Add a test that khrplatform.h (if present) agrees with us. configure.ac | 6 ++++ test/.gitignore | 1 + test/Makefile.am | 7 ++++ test/khronos_typedefs.c | 65 +++++++++++++++++++++++++++++++++++++ test/khronos_typedefs.h | 47 +++++++++++++++++++++++++++ test/khronos_typedefs_nonepoxy.c | 69 ++++++++++++++++++++++++++++++++++++++++ 6 files changed, 195 insertions(+) commit c99653408057065d5a3adb443dc9ba5420de0219 Author: Eric Anholt Date: Thu Feb 6 11:10:41 2014 -0800 Define the rest of the khrplatform.h types, and prevent its inclusion. One of the problems with krhplatform.h (besides it being a terrible idea in the first place) is that it's not present on many systems at all, including apple, win32, and linux before late 2009. So, unless we introduce the first ./configure dependency to the core library build, we really do need to define these standard types to their standard values. But if we allow khrplatform.h inclusion as well, we'll get long-vs-int redefinition warnings on 32-bit. So, we have to completely replicate the header, which is a thing we've done for everything else except for eglplatform.h. A testcase will be used to make sure that our types don't drift from the system khrplatform.h types, if it even exists. Fixes #17 src/gen_dispatch.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) commit 79600fa6d28bbf2718840f8396878db8f5569c8c Merge: 17e5c30 1c2b6da Author: Eric Anholt Date: Sat Feb 1 12:33:08 2014 -0800 Merge branch 'khronos-registry' commit 17e5c307f5e2fd73ab347d9dc35284c935f91d30 Author: Eric Anholt Date: Sat Feb 1 12:22:53 2014 -0800 Add missing dependency on libdl. Everything I'd linked against the library so far already had a libdl dependency (through libX11, for example), so I hadn't noticed. src/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit 5a39b7abe26e6ff42f29861951515b25df837a1d Author: Matt Turner Date: Fri Jan 31 17:37:21 2014 -0800 List X11_LIBS after lib{egl,glx}_common. Fixes linking with --as-needed. test/Makefile.am | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) commit 309f2d2020cf2137845b5e3402b0fc7bc9e96c7b Author: Matt Turner Date: Fri Jan 31 17:37:20 2014 -0800 Use LDADD instead of LDFLAGS/DEPENDENCIES. This is a lot shorter to type, and still gets the dependencies to work (tested with touch src/dispatch_common.c; make check, and touch src/egl_common.c; make check). src/Makefile.am | 5 ++++- test/Makefile.am | 35 +++++++++++++---------------------- 2 files changed, 17 insertions(+), 23 deletions(-) commit 1c2b6daa9ba42a5935abae9e1dc42ee78e32205c Author: Eric Anholt Date: Sat Feb 1 12:13:05 2014 -0800 Import registry from SVN 25146 registry/egl.xml | 16 +++++++++++++--- registry/gl.xml | 46 ++++++++++++++++++++++++++++++---------------- 2 files changed, 43 insertions(+), 19 deletions(-) commit a55d28ee1b31bd99559607d71e47071ef4e3ad41 Author: Eric Anholt Date: Fri Jan 31 15:22:44 2014 -0800 Fix a missing \n on printing out failure to dlsym(). src/dispatch_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit c761908c3eda5c2392add7f934fb3c2c5f0a18de Author: Eric Anholt Date: Fri Jan 31 15:16:40 2014 -0800 Enable compiler warnings in the tests. test/Makefile.am | 2 ++ 1 file changed, 2 insertions(+) commit 36847f88a7790d3bb917a82494e04fff708b39dd Author: Eric Anholt Date: Fri Jan 31 15:19:09 2014 -0800 Fix compiler warnings in the tests. I didn't have CWARNFLAGS in the Makefile.am, so lots of things that would generate warnings had crept in. test/egl_common.c | 7 +++++-- test/glx_common.c | 2 +- test/glx_common.h | 2 +- test/glx_glxgetprocaddress_nocontext.c | 3 ++- test/glx_public_api_core.c | 25 ++++++++++++++----------- 5 files changed, 23 insertions(+), 16 deletions(-) commit 7c660c5c7ae94043a2c4b9d260ccc9367992989e Author: Eric Anholt Date: Fri Jan 31 14:58:07 2014 -0800 Add a COPYING file describing the two licenses for the project code. Fixes #20 COPYING | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) commit 1064406814190cfa1f95ba01d08f87596065ac7e Author: Eric Anholt Date: Fri Jan 31 14:49:00 2014 -0800 Fix using epoxy on systems with only EGL and GLES1 or GLES2. Fixes #19 src/dispatch_common.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++- src/dispatch_common.h | 1 + src/gen_dispatch.py | 4 +-- test/Makefile.am | 2 -- 4 files changed, 72 insertions(+), 5 deletions(-) commit dbf940dabcc34d5c85ab7540a1333e369a04948e Author: Eric Anholt Date: Thu Jan 30 17:52:40 2014 -0800 Test for using GLES1/2 without GLX installed. test/.gitignore | 2 + test/Makefile.am | 17 ++++++++ test/egl_without_glx.c | 113 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 132 insertions(+) commit 72e57908c678ed7e6e50fc47a08c21c47f07d3dd Author: Eric Anholt Date: Fri Jan 31 15:28:13 2014 -0800 Fix typo in gles2 dlsym setup If you happened to do both GLES2 and GLES1 in a process, it meant that you'd try to look up v1 procs in the v2 API, and lose. Caught by piglit oes_fixed_point-attribute-arrays. src/dispatch_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 46953a662c4c73ceca94ea59c00d8b02d43cbc03 Author: Eric Anholt Date: Thu Jan 30 12:19:33 2014 -0800 Add missing make dist of gen_dispatch.py. Fixes distcheck when built out of tree (not that I'm using make dist for distributing releases, currently). src/Makefile.am | 4 ++++ 1 file changed, 4 insertions(+) commit 9e30b7e633c0772a4dff6427bc6c25aff8568950 Author: Eric Anholt Date: Thu Jan 30 12:16:15 2014 -0800 Fix a typo in the Makefile.am. Fixes #15 (and make dist when built out of tree) src/Makefile.am | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit f6e91a7e86c288be5e91d58e2bdb110f3c1c89ea Author: Eric Anholt Date: Thu Jan 30 12:08:57 2014 -0800 Declare a private dependency on libdl. The new linker requires that the consumers of a library link against the libraries that that library depends on, which is supported by Libs.private. Fixes #16 configure.ac | 3 +++ epoxy.pc.in | 1 + 2 files changed, 4 insertions(+) commit 12ef9dcf2d3600bcbe926c83597f9a782c5a068c Author: Eric Anholt Date: Mon Jan 27 17:30:11 2014 -0800 Do a trivial sort on the enums generated. Python was apparently randomizing the output of the hash iterator, preventing ccache after a make clean. src/gen_dispatch.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) commit aa778ef39db0d051d0faa3a67553d7bd6cad08dd Author: Eric Anholt Date: Wed Jan 22 00:57:35 2014 -0800 Add support for Mesa's GLES1 implementation. Mesa reports "OpenGL ES-CM 1.1", so we need to not look for a space after "ES", and 1.1 is still a 1.0-compatible implementation. src/dispatch_common.c | 2 +- src/gen_dispatch.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) commit 7f68641d1b3bc1b3336d846f4ecf7620cde22f82 Author: Eric Anholt Date: Wed Jan 22 00:58:23 2014 -0800 Make headerguards check for double-inclusion of our own headers. Since I was touching these bits, it was easy enough to make sure that our header guards work on our own headers. test/headerguards.c | 4 ++++ 1 file changed, 4 insertions(+) commit f10bff9bc04a82562e8ea5842effe411a8b3f884 Author: Eric Anholt Date: Tue Jan 21 21:32:20 2014 -0800 Avoid polluting the compiler's namespace with our own stuff. We can't completely avoid it, since gl's headers use these defines for their header guards, and we really do need to stop the system GL headers from doing anything. Fixes #14 include/epoxy/egl.h | 6 +++--- include/epoxy/gl.h | 6 +++--- include/epoxy/glx.h | 6 +++--- include/epoxy/wgl.h | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) commit d653a87e4648260713c718a8778b5c5e4088a6de Author: Eric Anholt Date: Tue Jan 21 11:25:05 2014 -0800 Fix the definition of ALL_ATTRIB_BITS. It's been 0x000fffff on Mesa since the initial import in 1999. It's the same value on my OS X 10.8 system, mingw's Windows-compatible gl.h, and a copy of the windows SDK gl.h I found laying around on the internet. Fixes piglit ARB_multisample/pushpop. registry/gl.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8067f15e97573c053bd28e1a18f70d02a4192513 Merge: cfdb26c 46ad30c Author: Eric Anholt Date: Mon Jan 20 09:28:28 2014 -0800 Merge branch 'registry' Conflicts: registry/egl.xml registry/gl.xml The only diff we now have from the source is glUnmapBufferOES()'s alias to normal glUnmapBuffer(). commit 46ad30c54f4c4c3290c5ca1740b4919feec16230 Author: Eric Anholt Date: Mon Jan 20 09:25:48 2014 -0800 Import registry from SVN 24778. registry/egl.xml | 91 +++- registry/gl.xml | 1214 +++++++++++++++++++++++++++++++++++++----------------- registry/glx.xml | 13 + 3 files changed, 924 insertions(+), 394 deletions(-) commit cfdb26c2a47dd2659e5a9e76480f43150304ce48 Author: Eric Anholt Date: Fri Dec 27 17:50:05 2013 -0800 Add missing provider for eglCreateImageKHR. EGL_KHR_image_base defines these two functions, and so does EGL_KHR_image (which is bascically the union of EGL_KHR_image_base and EGL_KHR_image_pixmap). registry/egl.xml | 2 ++ 1 file changed, 2 insertions(+) commit efa64545fb7c833c3ff93cdbc3f09d593233d83c Author: Eric Anholt Date: Fri Dec 27 13:36:58 2013 -0800 Add missing aliases for OES_mapbuffer to desktop's buffer mapping. registry/gl.xml | 3 +++ 1 file changed, 3 insertions(+) commit 0b55e879b133e006445bef3bd9e39d844bf85231 Author: Eric Anholt Date: Tue Dec 17 15:21:48 2013 -0800 Include the README in the distributed tarball. Makefile.am | 1 + 1 file changed, 1 insertion(+) commit e6ec61b73735249d56dfe79a59a2c1e15d18a75a Author: Eric Anholt Date: Tue Dec 17 15:12:35 2013 -0800 Work around README.md rendering on github. It would sure be neat if any of the README previewers out there actually rendered things the same way github does. README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 9bc909f5a7024ca3c2b5aa2fc26b19e8de9c7cf0 Author: Eric Anholt Date: Tue Dec 17 14:32:18 2013 -0800 win32: Convert the API to being based on function pointers, like Linux. For performance, I want to be able to make single-context (well, single-pixel-format-and-device) apps be able to directly call GL functions through function pointers. Bake that into the ABI now so I can get a release out the door and fix this up later. This also fixes the lack of __stdcall annotation on the PFNWHATEVERPROC typedefs. README.md | 10 ++++++++++ include/epoxy/gl.h | 2 +- src/dispatch_common.c | 2 -- src/dispatch_common.h | 12 +++++------- src/dispatch_wgl.c | 4 ++++ src/gen_dispatch.py | 36 ++++++++++++++++++------------------ 6 files changed, 38 insertions(+), 28 deletions(-) commit 3ae4726cdbb0fccdb02bcdba07662fe6f6a15589 Author: Eric Anholt Date: Tue Dec 17 14:18:49 2013 -0800 win32: Expose the dispatch table reset funtion in the public API. Fixes #2. README.md | 11 +++++++++++ include/epoxy/wgl.h | 1 + src/dispatch_wgl.c | 23 ++++++++++++++++------- 3 files changed, 28 insertions(+), 7 deletions(-) commit c4214a39f4ef941316042d48cabfbd826cc7a07f Author: Eric Anholt Date: Tue Dec 17 09:40:17 2013 -0800 win32: Reset all dispatch tables to re-resolve on any wglMakeCurrent. src/dispatch_common.c | 8 -------- src/dispatch_common.h | 8 ++++++++ src/dispatch_wgl.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/gen_dispatch.py | 6 +++++- 4 files changed, 63 insertions(+), 9 deletions(-) commit 8dcd1512db65a66d5693bfa802e9323d26e12b2e Author: Eric Anholt Date: Tue Dec 17 10:40:25 2013 -0800 Drop the PLATFORM_HAS_EGL check in epoxy_egl_dlsym(). If you accidentally call it on a non-egl platform, better to get an informative error message. src/dispatch_common.c | 4 ---- 1 file changed, 4 deletions(-) commit 5112b477c25f8efc65b3892573bc9499de910dbe Author: Eric Anholt Date: Tue Dec 17 10:38:29 2013 -0800 win32: Move dynamic symbol loading to do_dlsym(). This should help get us better error handling when we accidentally call the wrong loader path. src/dispatch_common.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) commit 417927e2ebea79f52f65e63e2524c01a351960ee Author: Eric Anholt Date: Tue Dec 17 10:17:17 2013 -0800 win32: Start wrapping the 1.0 wgl functions. I want to have a chance to intercept wglMakeCurrent for WGL's context-dependent function pointer handling. src/gen_dispatch.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) commit 9a7be0784faba0d97a32051a873d7feb47981a37 Author: Eric Anholt Date: Tue Dec 17 09:31:39 2013 -0800 win32: Use thread local storage to get us a dispatch table per thread. src/dispatch_common.h | 7 ++++++ src/dispatch_wgl.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/gen_dispatch.py | 15 +++++++++++-- 3 files changed, 79 insertions(+), 2 deletions(-) commit 8022cda75d65f537c48d4b43b44879abe558c1b7 Author: Eric Anholt Date: Tue Dec 17 10:51:38 2013 -0800 Don't forget to tell our users that the epoxy GL functions are __dllimport. This lets the compiler generate faster function calls (call through function pointer, instead of call into a linker-generated stub func containing jump to function pointer). include/epoxy/gl.h | 5 +++++ src/dispatch_common.h | 1 + src/gen_dispatch.py | 8 +++----- 3 files changed, 9 insertions(+), 5 deletions(-) commit 920543faa4d789aa2417331a77bb8383574efab0 Author: Eric Anholt Date: Mon Dec 16 10:43:29 2013 -0800 Add and clean up some more comments in the python. Fixes #8 src/gen_dispatch.py | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) commit 7a8553f7992705be4d5d443787ef3bbf945c5249 Author: Eric Anholt Date: Mon Dec 16 09:39:41 2013 -0800 Update python comments about aliases. src/gen_dispatch.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) commit bf628d9cf36332aff50e09d46a2f0e33a94031b1 Author: Eric Anholt Date: Mon Dec 16 09:29:53 2013 -0800 Add support for lower-priority aliases of functions. For example, on desktop 2.1 GL on Apple, there's no glBindVertexArray, but there is glBindVertexArrayAPPLE, and as far as a caller is concerned, the APPLE variant should be able to stand in for the core/ARB version. Similarly for trying to do FBOs on an old Mesa implementation that didn't have ARB_fbo yet, but did have EXT_fbo. src/gen_dispatch.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) commit 972989b4ce364221de64593cd61362ed236f7f06 Author: Eric Anholt Date: Mon Dec 16 09:20:25 2013 -0800 Fix copyrights on the Makefile.ams. When initially writing the Makefiles, I started from a Makefile.am that had ajax's copyright instead of an Intel one. The only line I can see that's left from the original Makefile.am is "pkgconfigdir" in the root Makefile.am. Makefile.am | 33 +++++++++++++++++---------------- include/epoxy/Makefile.am | 33 +++++++++++++++++---------------- src/Makefile.am | 33 +++++++++++++++++---------------- test/Makefile.am | 33 +++++++++++++++++---------------- 4 files changed, 68 insertions(+), 64 deletions(-) commit 21f4346af0fb1076d403ec4cfa6910de05eb06b2 Author: Eric Anholt Date: Mon Dec 16 09:18:58 2013 -0800 Update header comments about how the implementation works. include/epoxy/egl.h | 9 ++------- include/epoxy/gl.h | 11 ++--------- include/epoxy/glx.h | 9 ++------- 3 files changed, 6 insertions(+), 23 deletions(-) commit fa7aa87bc0efb03c52f57a7951ba7b1c2ff62625 Author: Eric Anholt Date: Mon Dec 16 09:14:31 2013 -0800 Drop the inconsistent use of #pragma once. Apparently it's not totally portable, and the #ifdefs work fine (and equivalently to the pragma, on some compilers). include/epoxy/egl.h | 2 -- include/epoxy/glx.h | 2 -- include/epoxy/wgl.h | 2 -- 3 files changed, 6 deletions(-) commit c92fcc852fe123034633eba9cda91c780632b2f8 Author: Eric Anholt Date: Mon Dec 16 08:25:12 2013 -0800 Fix testsuite build on OS X. There's no linker flag of this name in the normal clang, presumably beause the linker feature doesn't exist. configure.ac | 4 ++++ test/Makefile.am | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) commit c24afd8a9e5621638bc86e9013df49c8caa593d8 Author: Eric Anholt Date: Sun Dec 15 22:39:36 2013 -0800 Fix printout of missing versions/extensions. Not sure how I misplaced the \n in the previous fix. src/dispatch_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 8f42fd3fe4ec6376234b520a546846600f23352f Author: Eric Anholt Date: Sun Dec 15 20:54:41 2013 -0800 Fix declaration of glBegin/End_unwrapped. On non-win32, it was declaring a new function pointer variable on every #include, and OS X's linker got angry. src/dispatch_common.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 26880549bc5db7cfd99a82b80ca113c5273bf35a Author: Eric Anholt Date: Sun Dec 15 20:21:02 2013 -0800 Fix loading of extension functions on OS X. For a non-GLX application, at least, we need to pull our extensions using dlsym, not glXGetProcAddress(). The symptom was a segfault in glXGetProcAddress(). src/dispatch_common.c | 2 ++ 1 file changed, 2 insertions(+) commit 28c2dcb99b7b7deb26b4066d850ad4ba3705f7f7 Author: Eric Anholt Date: Fri Dec 13 19:42:31 2013 -0800 Use a non-inlined helper for the simple case of a single provider. This reduces the built size by another 37k. src/gen_dispatch.py | 54 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 16 deletions(-) commit c4f582b5329f4c6832a2b111b9db107da0d87a32 Author: Eric Anholt Date: Fri Dec 13 19:18:11 2013 -0800 Reuse the same string table in one more place. Saves another 53k on disk, no relocations. src/gen_dispatch.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) commit 39ccf7089b0b67d8bec36b571d50d14493ac23c7 Author: Eric Anholt Date: Fri Dec 13 19:01:35 2013 -0800 Use offsets into a string table to reduce the binary size. Saves 54k on disk and 3700 relocations. src/gen_dispatch.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) commit 982e39f188aa34d3b8d5015d56677113dd665e72 Author: Eric Anholt Date: Fri Dec 13 17:51:07 2013 -0800 Move the #defines into the main generated header. I initially thought I was going to have two sets of defines you chose from using #include, but that never ended up being necessary. .gitignore | 4 ---- include/epoxy/egl.h | 1 - include/epoxy/gl.h | 1 - include/epoxy/glx.h | 1 - include/epoxy/wgl.h | 1 - src/Makefile.am | 4 ---- src/gen_dispatch.py | 6 +----- 7 files changed, 1 insertion(+), 17 deletions(-) commit 3d2a2b3c80235bbcae97c1ba552478c40b317185 Author: Eric Anholt Date: Fri Dec 13 14:41:12 2013 -0800 Abandon ifuncs and go with the traditional global function pointers. In addition to the failing testcase, there were a couple of regressions in piglit's attribs test: one from glBegin_unwrapped vs glBegin confusion in the __asm__ directives we were generating, and one where the function pointers apparently were just getting mixed up at application runtime. README.md | 18 ------------- src/dispatch_common.c | 21 ++++++++++++--- src/dispatch_common.h | 16 +++++++++-- src/gen_dispatch.py | 74 ++++++++++++++++++++++++++------------------------- test/Makefile.am | 2 -- 5 files changed, 69 insertions(+), 62 deletions(-) commit e58e98feee46d9862fcac985f3e5b91a3f770b61 Author: Eric Anholt Date: Fri Dec 13 16:59:49 2013 -0800 Fix the behavior of glx_shared_znow if it doesn't die at startup. We're sharing the source file with glx_static, but we don't want to SKIP due to not being statically linked. test/Makefile.am | 1 + test/glx_static.c | 2 ++ 2 files changed, 3 insertions(+) commit 5c4f73fa7f4b680977d5b1fcced28107cccc3a7e Author: Eric Anholt Date: Fri Dec 13 13:01:22 2013 -0800 Add a test showing a way that our ifuncs are broken. test/.gitignore | 1 + test/Makefile.am | 7 +++++++ 2 files changed, 8 insertions(+) commit acd3b38d6e2314a5070a408dd6f310e91f4958a4 Author: Eric Anholt Date: Fri Dec 13 12:27:55 2013 -0800 Relink tests when the library changes. For the dynamically-linked tests, it wasn't a big deal because the updated library was always picked up. But for glx_static, we were actually testing stale code. test/Makefile.am | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) commit 10c611a3f1e2cb6c796a3eb1b3aaf77b69b3466b Author: Eric Anholt Date: Fri Dec 13 12:22:36 2013 -0800 Add a check that we've made it into the C runtime when doing dlopen(). This should give us a more informative failure mode than the one mentioned in the README. src/dispatch_common.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit 03e9537331269442e0c2c3a59fe0b325cc4770a0 Author: Eric Anholt Date: Thu Dec 12 13:44:06 2013 -0800 Fix infinite loop in extension detection when the needle is a substring. We could keep examining the same ptr value over and over. src/dispatch_common.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) commit cb647a085398e2d6dd063aabde626b758f3ab307 Author: Eric Anholt Date: Thu Dec 12 17:16:57 2013 -0800 Fix loading of EGL 1.1+ entrypoints. src/gen_dispatch.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) commit dd6feb7b00545611a7a5b1d469244b3936d46cad Author: Eric Anholt Date: Thu Dec 12 13:12:19 2013 -0800 Include epoxy/gl.h instead of epoxy/gl_generated.h from egl_generated.h This gets us the safety check for including GL/gl.h before epoxy/gl.h src/gen_dispatch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 46e036419ca58f8ef268208c6633e7ac805262c5 Author: Eric Anholt Date: Thu Dec 12 13:00:01 2013 -0800 Include epoxy/gl.h from epoxy/glx.h. This gives us consistency with GL/glx.h's include of GL/gl.h. include/epoxy/glx.h | 1 + 1 file changed, 1 insertion(+) commit 59edbacf7da0ad57645cbe856de053c7ccb4708a Author: Eric Anholt Date: Thu Dec 12 11:44:18 2013 -0800 Remove a bad alias of glGetAttachedShaders. On OS X, GLhandleARB is void *, which is of different size than GLuint on 64-bit. Because of this, the implementation of glGetAttachedObjectsARB must be different from glGetAttachedShaders, since the pointers/ints are packed the output memory. registry/gl.xml | 1 - 1 file changed, 1 deletion(-) commit 0cfb0a044bc43245409c020e2ca34091c96283d4 Author: Eric Anholt Date: Thu Dec 12 11:18:28 2013 -0800 Fix most GLhandleARB warnings on OS X with a big comment in our code. configure.ac | 4 ++++ src/gen_dispatch.py | 23 +++++++++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) commit 8d8334c350e8979c23bd9fe7c942693fcf76f958 Author: Eric Anholt Date: Thu Dec 12 10:55:32 2013 -0800 Use the right library name for GLX on OS X. src/dispatch_common.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) commit d6e4e9ac4c93ac517e8ef98d8dbcb1867b483229 Author: Eric Anholt Date: Wed Dec 11 16:53:36 2013 -0800 Fix the build of the headerguards test on OS X. test/headerguards.c | 5 +++++ 1 file changed, 5 insertions(+) commit d82c5c33a6ba5a1714678e0b0f21eb265b0eaab8 Author: Eric Anholt Date: Wed Dec 11 16:49:08 2013 -0800 Fix the path to the GL library on OS X. src/dispatch_common.c | 11 +++++++++++ 1 file changed, 11 insertions(+) commit 34d7b3d8725cf3ac3e6679dbe1d59e051f5d3b8e Author: Eric Anholt Date: Wed Dec 11 16:44:07 2013 -0800 Fix signedness warning on OS X build of the testsuite. test/glx_glxgetprocaddress_nocontext.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 708c31a4064f67d4ac4ef8877a4b6c313e4dbc5a Author: Eric Anholt Date: Wed Dec 11 16:34:05 2013 -0800 Disable EGL on OS X. It doesn't exist. There's EAGL, but that's not something we're covering. configure.ac | 6 ++++++ src/dispatch_common.c | 14 +++++++++++++- src/dispatch_common.h | 4 ++++ 3 files changed, 23 insertions(+), 1 deletion(-) commit 940438fae3715547256d3cf220e886bbe972521a Author: Eric Anholt Date: Wed Dec 11 16:32:57 2013 -0800 Use X11_CFLAGS during the build so we find the right xlib headers. We don't need x11_libs, because we don't directly call any xlib functions. We're just passing xlib types around. src/Makefile.am | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) commit 847ba1acdfc2c80f4e4dc5c3b69b6ff9e02af85f Author: Eric Anholt Date: Wed Dec 11 16:25:48 2013 -0800 Add an appropriate error message if libX11 is missing. configure.ac | 4 ++++ 1 file changed, 4 insertions(+) commit 6c0e0423f697531927568bd7668d0818594baf91 Author: Eric Anholt Date: Wed Dec 11 16:21:47 2013 -0800 Add build instructions to the readme. README.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) commit 57280133e60f38f7b5385786dacec94a6faf8cba Author: Eric Anholt Date: Wed Dec 11 15:20:10 2013 -0800 Update the README for WGL support. README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 6e8977a177ef4c361cf78512ae45a4e10a0674db Author: Eric Anholt Date: Wed Dec 11 15:15:35 2013 -0800 Link the library with -Bsymbolic. We don't want anybody to accidentally override the library's internal usage of epoxy_has_gl_extension() or similar public interfaces. src/Makefile.am | 1 + 1 file changed, 1 insertion(+) commit 1e443b2daf3de617b20c2263d57de8a484b49dbc Author: Eric Anholt Date: Wed Dec 11 12:55:57 2013 -0800 Use ifuncs on Linux to avoid dispatch table overhead. These tell the linker to generate GNU_IFUNC relocs that rewrite the PLT entries in the user's address space to point to our resolved GL function, so there's no extra function pointer. It also, as a bonus, cuts 400k out of the library. This requires a toolchain from 2010 or so. Unfortunately, it's going to take a bit more investigation to find out what specific bits are required. Fixes #4 README.md | 18 ++++++++++++++++++ src/gen_dispatch.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) commit 6553c08752f3f977db232932dfd92019add9c5da Author: Eric Anholt Date: Wed Dec 11 14:51:22 2013 -0800 Fix compiler warning in glx_static. test/glx_static.c | 1 + 1 file changed, 1 insertion(+) commit 22ce76fe0bcb8cf78ce212cdeb1c6ed69553db1e Author: Eric Anholt Date: Wed Dec 11 14:29:13 2013 -0800 Make glx_static report skip if it was built non-static. It won't have that symbol, unless it happens to be linked against the full library. test/glx_static.c | 5 +++++ 1 file changed, 5 insertions(+) commit 2206e6e3021da18231f27698583b994369c9e566 Author: Eric Anholt Date: Wed Dec 11 13:42:17 2013 -0800 Add a testcase for trying to use libepoxy as a static library. Note that it will only actually link statically against epoxy if you've set --enable-static. test/.gitignore | 1 + test/Makefile.am | 4 ++++ test/glx_static.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+) commit 85dc3821fe318c41b7b8c27caf0a322b8a7ba88b Author: Eric Anholt Date: Wed Dec 11 13:09:07 2013 -0800 Move the unwrapped logic to function setup. I'm going to want the same stuff for ifuncs. src/gen_dispatch.py | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) commit 8a56585dcb5121ae737af64b6c739183c733c36c Author: Eric Anholt Date: Wed Dec 11 12:58:43 2013 -0800 Make func.alias_name always have the name of our alias. The "None" for "we're not an alias of anything else" wasn't actually simplifying things. src/gen_dispatch.py | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) commit f843d63da272a07db5fd767046acf053651fd8ed Author: Eric Anholt Date: Tue Dec 10 17:14:46 2013 -0800 Reduce the overhead of the dispatch table usage. We now initialize our dispatch table with function pointers that go and do the rewrite, then we never have to check for a NULL table entry again. On my 64-bit build, epoxy_glClear() drops from 83 bytes to 14, while the total library size only goes up by 5%. This also paves the way for fixing our dispatch table management using TLS on windows. src/gen_dispatch.py | 62 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 54 insertions(+), 8 deletions(-) commit ca14052cfe5dea77a09fcda4efeacf9ac83b1348 Author: Eric Anholt Date: Mon Dec 9 08:51:27 2013 -0800 Add a test for basic functionality on win32. test/.gitignore | 1 + test/Makefile.am | 19 +++++++ test/wgl_common.c | 128 +++++++++++++++++++++++++++++++++++++++++++++++ test/wgl_common.h | 27 ++++++++++ test/wgl_core_and_exts.c | 81 ++++++++++++++++++++++++++++++ 5 files changed, 256 insertions(+) commit 1d746bfeb234bee77b62af4e75ae90ef8f6c616e Author: Eric Anholt Date: Mon Dec 9 14:52:19 2013 -0800 Add dispatch generation for wgl. This is very poorly tested at this point, but survives a simple testcase. .gitignore | 4 ++++ configure.ac | 8 +++++++ include/epoxy/wgl.h | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/Makefile.am | 29 +++++++++++++++++++++++++ src/dispatch_common.c | 12 ++++++++++- src/dispatch_common.h | 6 ++++++ src/dispatch_wgl.c | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/gen_dispatch.py | 34 +++++++++++++++++++++++++++++ 8 files changed, 212 insertions(+), 1 deletion(-) commit f4992e151856baf9e713dee6bc773a520eacc114 Author: Eric Anholt Date: Tue Dec 10 14:03:21 2013 -0800 Use get_core_proc_address() on win32. This is needed for glGetString() lookup to work, since wglGetProcAddress() returns NULL for core procs. src/gen_dispatch.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 4eaf4bfe215572e82b8ffab029e3527ae910f507 Author: Eric Anholt Date: Tue Dec 10 14:09:37 2013 -0800 Fill in the begin/end counting on win32. src/dispatch_common.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit b128dd9b253b1586458ecb78276eb1b1a74ad4e3 Author: Eric Anholt Date: Mon Dec 9 22:14:09 2013 -0800 Move the check for whether to dlsym or GPA on linux to the common C code. This is going to change for macos and win32, and this will be easier than trying to spread that logic through the python code and into the generated code. src/dispatch_common.c | 10 ++++++++++ src/dispatch_common.h | 1 + src/gen_dispatch.py | 10 ++-------- 3 files changed, 13 insertions(+), 8 deletions(-) commit d73f06fb4520705ad89036cdf2142307ccd1646c Author: Eric Anholt Date: Mon Dec 9 22:56:03 2013 -0800 Use ``` on a bunch of code in the README. Some of it is to be prettier, and some of it is to avoid misformatting when using live preview at http://tmpvar.com/markdown.html README.md | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) commit edf5aedb6fb0a10280cd68dd443df0322d0447b6 Author: Eric Anholt Date: Mon Dec 9 22:36:23 2013 -0800 Rewrite a lot of the README. The story about how we came to needing GetProcAddress functions isn't that interesting, but the featureset is something that should be (particularly when comparing to similar tools that exist). Fixes #7 README.md | 64 ++++++++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 23 deletions(-) commit 880b6b39a5e5074df11923e3ac4467650ca6c472 Author: Carl Worth Date: Mon Dec 9 11:18:10 2013 -0800 Convert list of items to an actual list Otherwise, these were running together in a single line, making them hard to read. README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit eb5f6ac74ea37e44a9139ded8954ef423ad9c56c Author: Carl Worth Date: Mon Dec 9 11:18:09 2013 -0800 Fix "include" examples to use Github-flavored code block Previously, these lines were using '>' which is the Markdown syntax for a "blockquote", but within this, the '#' in "#include" was still interpreted as a header, (which was not desired), and throwing away the rest of the line. It seems that a "codeblock" is what is wanted here instead, (which should result in un-interpreted text wrapped in
). Markdown
    expects 4-space indent for this.
    
    See:
    
            https://help.github.com/articles/github-flavored-markdown

 README.md | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

commit bfd687da8924b0866fd85695e1de1eb710460bdd
Author: Eric Anholt 
Date:   Fri Dec 6 16:33:46 2013 -0800

    Port tests directory to win32.

 Makefile.am      | 2 --
 configure.ac     | 6 ++++++
 test/Makefile.am | 4 ++--
 3 files changed, 8 insertions(+), 4 deletions(-)

commit 259136845d082d02b359c1dbc993b0d294de7b76
Author: Eric Anholt 
Date:   Fri Dec 6 13:40:30 2013 -0800

    Start porting the GL dispatch code to win32.
    
    It now builds successfully builds a .dll file.  Not that it's usable
    or anything yet.

 configure.ac          | 39 +++++++++++++++++++++++++++++----------
 src/Makefile.am       |  5 +++++
 src/dispatch_common.c | 40 +++++++++++++++++++++++++++++++---------
 src/dispatch_common.h |  4 +++-
 4 files changed, 68 insertions(+), 20 deletions(-)

commit 0e7b9c09397304e745a3b8a9f71f660209ca8beb
Author: Eric Anholt 
Date:   Fri Dec 6 17:31:30 2013 -0800

    Fix generation of redundant typedefs.

 src/gen_dispatch.py | 7 +++++++
 1 file changed, 7 insertions(+)

commit 60ea7c38a2e68b8567d47d171ac8e2aa2365fa9d
Author: Eric Anholt 
Date:   Fri Dec 6 12:53:00 2013 -0800

    Move GLX/EGL dispatch code using those API types to separate files.
    
    The dlopen bits are left in place, but the functions required the
    types, and in the case of EGL, the types require that the platform
    header actually exists.

 src/Makefile.am       |  14 ++++--
 src/dispatch_common.c | 120 +-------------------------------------------------
 src/dispatch_common.h |   2 +
 src/dispatch_egl.c    |  69 +++++++++++++++++++++++++++++
 src/dispatch_glx.c    | 105 +++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 187 insertions(+), 123 deletions(-)

commit 906d5b6e3a4f7cbb239a237ca20aa71d5306a340
Author: Eric Anholt 
Date:   Fri Dec 6 12:21:54 2013 -0800

    Conditionalize building the EGL and GLX dispatch code.

 configure.ac          |  2 ++
 src/Makefile.am       | 12 +++++++++++-
 src/dispatch_common.c |  5 +++++
 src/dispatch_common.h | 15 ++++++++++++++-
 4 files changed, 32 insertions(+), 2 deletions(-)

commit 0d7d26537d8d8309ed462fcc5852c7bae9244fee
Author: Eric Anholt 
Date:   Fri Dec 6 12:09:57 2013 -0800

    Conditionalize building GLX and EGL tests and headers.
    
    Note that the generated code is still generated, they just aren't
    built and installed.  The goal with that is that someone could take
    the built .c and .h files and drop it into their own project, if they
    want to avoid shared libs.

 configure.ac              | 21 +++++++++++++++++++++
 include/epoxy/Makefile.am |  5 +++++
 src/Makefile.am           | 12 ++++++++++--
 test/Makefile.am          | 27 +++++++++++++++++++++------
 test/headerguards.c       | 13 +++++++++++++
 test/miscdefines.c        |  6 ++++++
 6 files changed, 76 insertions(+), 8 deletions(-)

commit 19053c4d6ffa391f51657e267e35db9e99b205e4
Author: Eric Anholt 
Date:   Fri Dec 6 15:49:38 2013 -0800

    Fix out of tree build

 test/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

commit 43acf7b021410e02b21d1d9ffba111d8ba4c5eac
Author: Eric Anholt 
Date:   Fri Dec 6 11:50:00 2013 -0800

    Fix make distcheck.
    
    Well, not quite.  One of the regression tests is failing with
    GLXBadFBConfig in that build.  Not sure why.

 Makefile.am               |  2 +-
 configure.ac              |  1 +
 include/epoxy/Makefile.am | 30 ++++++++++++++++++++++++++++++
 src/Makefile.am           | 17 -----------------
 4 files changed, 32 insertions(+), 18 deletions(-)

commit 01ce6940733e649f897a1451f8e42bf96435b37c
Author: Eric Anholt 
Date:   Thu Dec 5 16:43:16 2013 -0800

    Add a compile-time test for missing #defines.

 test/.gitignore    |  1 +
 test/Makefile.am   |  1 +
 test/miscdefines.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 63 insertions(+)

commit 08101c514539f36c80289f17221e8acab5cf2634
Author: Eric Anholt 
Date:   Fri Dec 6 11:38:22 2013 -0800

    Add some more defines that are present in normal gl.h

 include/epoxy/gl.h | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 26ca6ac8e864ef004194e35b0c9e4e9c4e81a188
Author: Eric Anholt 
Date:   Thu Dec 5 17:39:49 2013 -0800

    Add missing #defines for GL versions and extensions.
    
    Not having them broke some piglit ES2 compat tests.

 src/gen_dispatch.py | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

commit 1626703ca5b0255dcd4bacd8a0d71a976e3724a9
Author: Eric Anholt 
Date:   Wed Dec 4 14:34:27 2013 -0800

    Add a missing ATI enum token to the registry.
    
    There's no spec for this, but it's mentioned widely enough on the
    internet that they'd better not allocate anything else to it.

 registry/gl.xml | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 604d9a085e19c51d6ac216cd5efea60174745d25
Author: Eric Anholt 
Date:   Thu Dec 5 17:03:08 2013 -0800

    Remove incorrect alias for BindVertexArray.
    
    From Mesa:
            /* The "Interactions with APPLE_vertex_array_object" section of the
              * GL_ARB_vertex_array_object spec says:
              *
              *     "The first bind call, either BindVertexArray or
              *     BindVertexArrayAPPLE, determines the semantic of the object."
              */

 registry/gl.xml | 1 -
 1 file changed, 1 deletion(-)

commit f097de94eb6219c63e4933ddc4d759ab2e367103
Author: Eric Anholt 
Date:   Thu Dec 5 15:15:37 2013 -0800

    Add support for GLES extensions.
    
    I think we don't want to be checking that the context is actually of
    the declared types -- if the extension is exposed in the extension
    string, the entrypoints had better be there.

 src/gen_dispatch.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9b8ac7323167567fb56f01a1a8a9c9413aff5991
Author: Eric Anholt 
Date:   Thu Dec 5 15:15:12 2013 -0800

    Improve the quality of the missing providers output.
    
    In particular, note when it's probably our bug, not the app's bug.

 src/dispatch_common.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 8d208fff512aa177ba4571511be58cf48a234216
Author: Eric Anholt 
Date:   Thu Dec 5 15:11:36 2013 -0800

    Print the missing provider information to stderr.

 src/dispatch_common.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

commit 0983996e49042264f35e47a9161572b30c13a5f2
Author: Eric Anholt 
Date:   Thu Dec 5 13:59:34 2013 -0800

    Fix calling new entrypoints from within glBegin()/glEnd().

 src/dispatch_common.c | 107 ++++++++++++++++++++++++++++++++++++++++++++++----
 src/dispatch_common.h |   5 +++
 src/gen_dispatch.py   |  23 +++++++++--
 test/Makefile.am      |   2 -
 4 files changed, 124 insertions(+), 13 deletions(-)

commit 9ffa5d25c4e59acf4808d2f87c1980daa8e7d3cb
Author: Eric Anholt 
Date:   Thu Dec 5 13:50:10 2013 -0800

    Add a test for a bug when called during glBegin()/glEnd().

 configure.ac        |   1 +
 test/.gitignore     |   1 +
 test/Makefile.am    |   6 +++
 test/glx_beginend.c | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 115 insertions(+)

commit 4d0d93b1c0a3a7a7f2b146dcc0995007b21d87eb
Author: Eric Anholt 
Date:   Thu Dec 5 13:14:16 2013 -0800

    Fix indentation in generated code

 src/gen_dispatch.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1cb041fbaae27eb73f8e5aaa52831e8b74029fd7
Author: Eric Anholt 
Date:   Thu Dec 5 13:07:09 2013 -0800

    Fix a compiler warning in the previous commit.

 src/dispatch_common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 8bb5a2545ee32a8eaea964a66fc291b517b1fe7e
Author: Eric Anholt 
Date:   Thu Dec 5 13:02:51 2013 -0800

    Fix extension detection on core GL contexts.
    
    The nasty old strings were deprecated.

 src/dispatch_common.c | 17 +++++++++++++++--
 test/Makefile.am      |  2 --
 2 files changed, 15 insertions(+), 4 deletions(-)

commit 20f03e65c45d0f906952c3dd4a2f990d02a8870c
Author: Eric Anholt 
Date:   Wed Dec 4 16:00:34 2013 -0800

    Add a new test for our public API against a core context.
    
    Our extension detection for core is totally broken.

 test/.gitignore            |   1 +
 test/Makefile.am           |   6 ++
 test/glx_common.c          |   4 +-
 test/glx_common.h          |   8 ++-
 test/glx_public_api_core.c | 167 +++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 183 insertions(+), 3 deletions(-)

commit a258cdcffe9ce30eb7c046aa0ed5fe77e19977b7
Author: Eric Anholt 
Date:   Wed Dec 4 15:56:56 2013 -0800

    Pull a helper function from piglit.
    
    I need this for doing testing against core contexts.

 test/glx_common.c | 28 +++++++++++++++++++++++++++-
 test/glx_common.h |  2 ++
 2 files changed, 29 insertions(+), 1 deletion(-)

commit f2d5248e3d6e0cac4584d7b1bd69291dee35b23c
Author: Eric Anholt 
Date:   Thu Dec 5 12:56:45 2013 -0800

    Add missing .gitignore bits for EGL

 test/.gitignore | 1 +
 1 file changed, 1 insertion(+)

commit c6df72b7d06c61dc95aa2e6558fd96fa2441fa27
Author: Eric Anholt 
Date:   Thu Dec 5 12:38:42 2013 -0800

    Drop a bit of commented out python.
    
    It was used in debugging before I figured out I needed to resolve
    aliases late.

 src/gen_dispatch.py | 1 -
 1 file changed, 1 deletion(-)

commit 0270c80008e3c6b9f2f5dfba03631f72c7920796
Author: Eric Anholt 
Date:   Mon Dec 2 16:25:02 2013 -0800

    Add support for EGL.
    
    This totally replaces the getprocaddress and dlsym code, which was
    basically just stubs up until now.  The is_glx/is_egl() is also
    dropped -- they weren't doing anything, and the only false answer they
    could give is if the dlopen were to fail.

 .gitignore                         |   4 +
 include/epoxy/egl.h                |  63 +++++++++++++
 src/Makefile.am                    |  24 +++++
 src/dispatch_common.c              | 185 ++++++++++++++++++++++++++++++-------
 src/dispatch_common.h              |  27 ++----
 src/gen_dispatch.py                |  68 ++++++++------
 test/Makefile.am                   |  14 ++-
 test/egl_common.c                  |  50 ++++++++++
 test/egl_common.h                  |  25 +++++
 test/egl_has_extension_nocontext.c |  70 ++++++++++++++
 test/headerguards.c                |   3 +
 11 files changed, 452 insertions(+), 81 deletions(-)

commit 111c54992b54f090b63278daa541e29b341bb2ad
Author: Eric Anholt 
Date:   Thu Dec 5 11:10:51 2013 -0800

    Drop the installed _common.h headers.
    
    I was thinking at one point that part of the build was going to
    require not including the #defines from the generated code, but would
    want these prototypes.  It turns out that's not the case (and if it
    is, I'll just wrap the #defines in an ifdef).

 include/epoxy/gl.h         |  7 ++++++-
 include/epoxy/gl_common.h  | 39 ---------------------------------------
 include/epoxy/glx.h        |  8 +++++++-
 include/epoxy/glx_common.h | 41 -----------------------------------------
 src/Makefile.am            |  2 --
 src/dispatch_common.h      |  4 ++--
 src/gen_dispatch.py        |  2 +-
 7 files changed, 16 insertions(+), 87 deletions(-)

commit 2be86a9a9c229423a5d87b772093ab58c1ebe7a2
Author: Eric Anholt 
Date:   Thu Dec 5 11:06:23 2013 -0800

    Add .gitignore for the built tests.

 test/.gitignore | 6 ++++++
 1 file changed, 6 insertions(+)

commit 2ba8d853b4bbe50bcd60cfa89f3a0b5cf4e8d147
Author: Eric Anholt 
Date:   Wed Dec 4 15:37:39 2013 -0800

    Add some more gl.h definitions that might be used by applications.
    
    These in particular get used by software that was doing
    GetProcAddress, and we want to be able to just drop in our gl.h
    instead.

 include/epoxy/gl.h | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

commit 725b8cfc818514a455a8f412592f73f0305068d8
Author: Eric Anholt 
Date:   Wed Dec 4 15:37:27 2013 -0800

    Add C++ guards.

 include/epoxy/gl.h  | 8 ++++++++
 include/epoxy/glx.h | 8 ++++++++
 2 files changed, 16 insertions(+)

commit de70a2a0abfade6fa3fb4876f4c90e3715e9b70f
Author: Eric Anholt 
Date:   Wed Dec 4 19:07:36 2013 -0800

    Fix a similar bug to HEAD~2, this time in epoxy_has_glx_extension().

 include/epoxy/glx_common.h         |  2 +-
 src/dispatch_common.c              | 26 +++++++++++++++++++-------
 src/dispatch_common.h              |  1 +
 src/gen_dispatch.py                |  2 +-
 test/Makefile.am                   |  2 --
 test/glx_has_extension_nocontext.c |  4 ++--
 test/glx_public_api.c              |  4 ++--
 7 files changed, 26 insertions(+), 15 deletions(-)

commit 7603c144db3a5f880f6ce56ccf9eca6c27dc4d70
Author: Eric Anholt 
Date:   Wed Dec 4 19:05:10 2013 -0800

    Add a failing testcase for the public API of epoxy_has_glx_extension.

 test/Makefile.am                   |  6 ++++
 test/glx_has_extension_nocontext.c | 56 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 62 insertions(+)

commit 0f67bf3f1192fb0bbd0b868eeb73a18f76951b01
Author: Eric Anholt 
Date:   Wed Dec 4 18:45:52 2013 -0800

    Fix bug in public entrypoint for epoxy_glx_version()
    
    Unfortunately, for GLX 1.4+ entrypoints (just glxGetProcAddress
    currently) or extensions, if there isn't a context bound then we don't
    have a dpy and screen available to provide useful debug messages.  Oh
    well.

 include/epoxy/glx_common.h             |  5 ++++-
 src/dispatch_common.c                  | 26 ++++++++++++++++++++------
 src/dispatch_common.h                  |  1 +
 src/gen_dispatch.py                    |  2 +-
 test/Makefile.am                       |  2 --
 test/glx_glxgetprocaddress_nocontext.c |  2 +-
 test/glx_public_api.c                  |  2 +-
 7 files changed, 28 insertions(+), 12 deletions(-)

commit 14f822ee91adc1531b7689d2f6083cdb1476154d
Author: Eric Anholt 
Date:   Wed Dec 4 19:00:13 2013 -0800

    Add a testcase for a bug in the public API.

 test/Makefile.am                       |  6 ++++
 test/glx_glxgetprocaddress_nocontext.c | 56 ++++++++++++++++++++++++++++++++++
 2 files changed, 62 insertions(+)

commit 2f811c543f4995dddb044bc2bee841bca72a9eda
Author: Eric Anholt 
Date:   Wed Dec 4 18:43:31 2013 -0800

    Clean up loader setup for GLX.

 src/gen_dispatch.py | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

commit 5f60534bac26bfea0bbaf08261220b8feadf7812
Author: Eric Anholt 
Date:   Wed Dec 4 18:25:50 2013 -0800

    Fix up an unfinished comment

 src/dispatch_common.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

commit 617fd39b5b59f58d362b8f2863d6d392fe7df61d
Author: Eric Anholt 
Date:   Wed Dec 4 16:18:28 2013 -0800

    Add a test for including system GL headers after epoxy.

 test/Makefile.am    |  3 ++-
 test/headerguards.c | 35 +++++++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+), 1 deletion(-)

commit 689abf4d4df1cab924557443fa7886fb5c85f0b0
Author: Eric Anholt 
Date:   Wed Dec 4 16:19:04 2013 -0800

    Fix including system glx.h after our glx.h

 include/epoxy/glx.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 106298f2f9ef5cea1714156f1c2068710cea4e6c
Author: Eric Anholt 
Date:   Wed Dec 4 16:11:53 2013 -0800

    Add a little more testing of our public GLX API.

 test/glx_public_api.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

commit 42fd4b607ad4a16939abd5d69792080c8092d5e3
Author: Eric Anholt 
Date:   Wed Dec 4 14:43:09 2013 -0800

    Fix generation of the function pointer typedefs.
    
    We were disagreeing with the GL headers on their names.

 src/gen_dispatch.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4564d314893143c9136ff0efb85c95d31b66943f
Author: Eric Anholt 
Date:   Mon Dec 2 16:27:20 2013 -0800

    Use self.target instead of mucking around with the filename.
    
    This cleans things up for upcoming EGL support.

 src/gen_dispatch.py | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

commit 502eaccfd40999b99c8340fbbda67578ae41e69a
Author: Eric Anholt 
Date:   Mon Dec 2 16:17:32 2013 -0800

    Add whitespace in generated code after the enum strings.

 src/gen_dispatch.py | 1 +
 1 file changed, 1 insertion(+)

commit 2203a31ed2226b63d011c66b37b024c5148f2b03
Author: Eric Anholt 
Date:   Mon Dec 2 13:52:13 2013 -0800

    Make function resolving be data-driven.
    
    This saves another 24k of built code.

 src/gen_dispatch.py | 148 +++++++++++++++++++++++++++++++++++-----------------
 1 file changed, 101 insertions(+), 47 deletions(-)

commit a82e54aafaad51e870e719ba0d03936640d9c22b
Author: Eric Anholt 
Date:   Mon Dec 2 12:36:36 2013 -0800

    Make a table full of strings describing our providers.
    
    By having shared code to print the names and a shared table of what
    the names are, this reduces the built stripped size of the library by
    80k.

 src/dispatch_common.c | 12 ++++++++
 src/dispatch_common.h |  3 ++
 src/gen_dispatch.py   | 80 ++++++++++++++++++++++++++++++++++++++++++---------
 3 files changed, 81 insertions(+), 14 deletions(-)

commit 6c1e0e38f3ec65f140406f15963290c82ad7c9d9
Author: Eric Anholt 
Date:   Mon Dec 2 09:47:36 2013 -0800

    Fix building from a clean source tree.
    
    I had things mixed around wtih srcdir vs builddir, and we were getting
    our deps generated into literally '$(builddir)/.deps/...', and then
    the Makefile broke trying to include $(builddir)/.deps/... with
    variable expansion.

 src/Makefile.am | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

commit 8139c7c489e6422e735d6ca464b7a9d1366ef6da
Author: Eric Anholt 
Date:   Thu Nov 14 11:07:00 2013 -0800

    Actually implement GLX version detection.

 src/dispatch_common.c | 27 ++++++++++++++++++++++++++-
 src/gen_dispatch.py   |  2 +-
 2 files changed, 27 insertions(+), 2 deletions(-)

commit 75c97229d375a5a000a490b2019ced9f905f6945
Author: Eric Anholt 
Date:   Thu Nov 14 11:04:38 2013 -0800

    Assume GLX 1.2 is automatically available on Linux with GLX.
    
    This prevents infinite recursion in dispatch when trying to find
    symbols to determine the GLX version.

 src/gen_dispatch.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 04cf940e1b6406e3bda59b857fe410073332b032
Author: Eric Anholt 
Date:   Mon Nov 11 09:59:25 2013 -0800

    Add an initial testsuite for GLX API.

 .gitignore            |   1 +
 Makefile.am           |   6 +--
 configure.ac          |   1 +
 test/Makefile.am      |  42 ++++++++++++++++++++
 test/glx_common.c     | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++
 test/glx_common.h     |  31 +++++++++++++++
 test/glx_public_api.c | 103 +++++++++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 285 insertions(+), 3 deletions(-)

commit ed938dc4c592f0e3420a2b0ab6e3b5f9cec0c1f7
Author: Eric Anholt 
Date:   Mon Nov 11 10:10:34 2013 -0800

    Make a few more public functions actually public.

 include/epoxy/gl_common.h | 1 +
 src/dispatch_common.c     | 6 +++---
 src/dispatch_common.h     | 1 -
 3 files changed, 4 insertions(+), 4 deletions(-)

commit 66d7b9fb0282a48e91224c28a457458132ca19a2
Author: Eric Anholt 
Date:   Mon Nov 11 09:27:07 2013 -0800

    Fix the version detection for GL < 3.
    
    Those nice enums came late in the GL spec.  This code is copied from
    piglit, by Matt Turner in 2012.

 src/dispatch_common.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

commit a1d555e4469aa4617ef56dd0e009b1c9f41ef224
Author: Eric Anholt 
Date:   Mon Nov 11 09:23:52 2013 -0800

    Fix a copy-and-paste mistake in getting GL version

 src/dispatch_common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e1a183c4eb6c052be2e6830794af361e196b9bff
Author: Eric Anholt 
Date:   Mon Nov 11 09:20:17 2013 -0800

    Remove accidentally committed debug printf.

 src/dispatch_common.c | 1 -
 1 file changed, 1 deletion(-)

commit 69241485d1659d0cd86e449c1708c7b8ccb1c260
Author: Eric Anholt 
Date:   Mon Nov 11 09:19:36 2013 -0800

    Fix test for is_desktop_gl.
    
    We're looking for "return true if no ES", and strcmp returns != 0 if
    not match (the ES string).

 src/dispatch_common.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0098d0a6538f44449b2921b689b07632c68212f3
Author: Eric Anholt 
Date:   Mon Nov 11 09:18:01 2013 -0800

    Sort the functions in the generated code.
    
    This makes looking through the resulting code much nicer.

 src/gen_dispatch.py | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

commit 48297bb543a718e5f488f03c5564248e5a56f9f7
Author: Eric Anholt 
Date:   Thu Oct 24 10:35:00 2013 -0700

    Fix parallel build of the generated source code.
    
    Make didn't know that our rule generated all 3 things, so it would
    generate 3 times, and in parallel you'd end up writing over each
    other.

 src/Makefile.am | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

commit faad44cc0a51976a5ddcca6b049f91dae6cc666c
Author: Eric Anholt 
Date:   Thu Sep 19 09:50:49 2013 -0700

    Fix the aliasing support to actually build.
    
    Jordan asked me to show my code, so I pushed the snapshot I had,
    forgetting that the build was broken at that point in commit
    --amending.

 src/gen_dispatch.py | 62 ++++++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 47 insertions(+), 15 deletions(-)

commit 4c9b7e63b19bb45ead0131d28f9ed1d046e468b3
Author: Eric Anholt 
Date:   Thu Nov 14 11:10:48 2013 -0800

    Consistently use 4-space indents.

 src/dispatch_common.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

commit a652f8f6a24c0e1599b1108398780df81d652582
Author: Eric Anholt 
Date:   Thu Nov 14 11:01:45 2013 -0800

    Add .dir-locals to tell emacs how to format by default.
    
    I'd apparently been typing in two different styles.

 .dir-locals.el | 6 ++++++
 1 file changed, 6 insertions(+)

commit a909eb4a229ebbea2d60717e748df3f0a2f69cc4
Author: Eric Anholt 
Date:   Thu Sep 19 09:50:49 2013 -0700

    Add the generator and build infrastructure.
    
    Not actually working yet, but it's a snapshot to start from.

 .gitignore                 |  90 +++++++++
 Makefile.am                |  36 ++++
 README.md                  |  61 ++++++
 autogen.sh                 |  14 ++
 configure.ac               |  75 ++++++++
 epoxy.pc.in                |  10 +
 include/epoxy/gl.h         |  52 ++++++
 include/epoxy/gl_common.h  |  38 ++++
 include/epoxy/glx.h        |  51 +++++
 include/epoxy/glx_common.h |  38 ++++
 src/Makefile.am            |  84 +++++++++
 src/dispatch_common.c      | 217 +++++++++++++++++++++
 src/dispatch_common.h      |  55 ++++++
 src/gen_dispatch.py        | 456 +++++++++++++++++++++++++++++++++++++++++++++
 14 files changed, 1277 insertions(+)

commit db667aa8b847aa9718bce8f371c65a739ea922ef
Author: Eric Anholt 
Date:   Thu Sep 19 09:33:55 2013 -0700

    Import khronos API registry from SVN commit 22908

 registry/egl.xml |  1655 +++
 registry/gl.xml  | 40959 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 registry/glx.xml |  1977 +++
 registry/wgl.xml |  1957 +++
 4 files changed, 46548 insertions(+)