summaryrefslogtreecommitdiff
path: root/src/dispatch_glx.c
Commit message (Collapse)AuthorAgeFilesLines
* dispatch: Load EGL/GLX provider lib from epoxy_has_{egl,glx}()Adam Jackson2018-05-011-6/+8
| | | | | | | | | Now that we're being conservative about probing libraries, these entrypoints would not succeed unless the caller had already dlopened stuff themselves, or had explicitly linked against the provider library. Both of those are exactly not what we want. Signed-off-by: Adam Jackson <ajax@redhat.com>
* Annotate new Epoxy symbolsEmmanuele Bassi2017-02-151-0/+2
| | | | API added in 1.4 should be annotated as such.
* Add epoxy_has_glx()Emmanuele Bassi2017-02-031-1/+25
| | | | | | | | | | 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.
* Write the API referenceEmmanuele Bassi2017-02-031-0/+33
| | | | | Now that we have Doxygen generating it, we should fill out the API reference for Epoxy.
* Improve consistency of the symbol visibilityEmmanuele Bassi2017-01-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | 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
* Ensure we don't assert if GLX is not availableEmmanuele Bassi2017-01-251-0/+6
| | | | | | | 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 <ebassi@gnome.org>
* Revert all changes since 8bbc0d40Emmanuele Bassi2016-12-071-17/+16
| | | | | | | | | | | | | | | 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.
* Fix "epoxy_glx_version" to handle the case when GLX is not active on the ↵Yaron Cohen-Tal2015-09-291-14/+15
| | | | display.
* Unite defenitions "PUBLIC" and "EPOXY_IMPORTEXPORT" and add it where ↵Yaron Cohen-Tal2015-07-191-2/+2
| | | | appropriate. Fix tests build errors.
* Move GLX/EGL dispatch code using those API types to separate files.Eric Anholt2013-12-061-0/+105
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.