This is a follow-up to 535c3ce632.
That commit made glfw3native.h undefine GLAPIENTRY whenever
GLFW_EXPOSE_NATIVE_GLX or GLFW_EXPOSE_NATIVE_OSMESA was defined, on the
assumption that it was glfw3.h that had defined GLAPIENTRY.
If gl.h or an extension loader header has been included before glfw3.h,
then it has defined inclusion guards preventing GLAPIENTRY from being
defined later when the GLX or OSMesa header includes gl.h.
This commit ensures GLAPIENTRY is only undefined if glfw3.h defined it.
Related to #2010
On a Unix system, if you define GLFW_INCLUDE_NONE and
GLFW_EXPOSE_NATIVE_GLX, then include glfw3.h and glfw3native.h, you will
get a redefinition warning for GLAPIENTRY.
The glfw3.h header defines GLAPIENTRY as a service for OpenGL related
headers that assume it's already defined. However, glx.h includes gl.h,
which defines GLAPIENTRY unconditionally.
If not for Hyrum's law, the better solution would have been not to
define GLAPIENTRY if GLFW_INCLUDE_NONE is defined.
Fixes#2010
As of the release of Mir 1.0, libmirclient has been deprecated[1] and
its developers recommend clients using it to switch to Wayland. This
patch removes support for libmirclient and instruct users to use the
experimental Wayland backend instead.
[1] https://discourse.ubuntu.com/t/mir-news-28th-september-2018/8184
Some extension loader headers include windows.h. If they were included
before glfw3.h, glfw3native.h would leave APIENTRY undefined. This adds
the GLFW_APIENTRY_DEFINED macro to signal when GLFW "owns" APIENTRY and
may undefine it.
Fixes#1062.
This adds the native access functions glfwSetX11SelectionString and
glfwGetX11SelectionString under GLFW_EXPOSE_NATIVE_X11. They are
similar to glfwSetClipboardString and glfwGetClipboardString but operate
on the PRIMARY selection.
The primary selection is widely used in X11, and so seems important to
support. Primary selection is mostly an X11-specific thing, hence it's
exposed as an X11 native interface.
Fixes#894.
Closes#1056.
Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
Fixes formatting, semantics and documentation. Adds
glfwGetOSMesaContext. Adds support for OSMesa context attributes.
Updates changelog and credits. Adds license and copyright headers.
Removes superfluous code (the shared code provides many conveniences).
Removes loading of unused OSMesa functions. Removes empty platform
structs. Fixes version string format. Removes build dependency on
the OSMesa header and library (only the library is needed and only at
runtime).
Closes#850.