Merge libepoxy 1.3.1
This commit is contained in:
parent
2f1d1574a3
commit
8e64ef27c6
6
dist/libepoxy/.dir-locals.el
vendored
6
dist/libepoxy/.dir-locals.el
vendored
@ -1,6 +0,0 @@
|
||||
((nil
|
||||
(indent-tabs-mode . nil)
|
||||
(tab-width . 8)
|
||||
(c-basic-offset . 4)
|
||||
)
|
||||
)
|
95
dist/libepoxy/.gitignore
vendored
95
dist/libepoxy/.gitignore
vendored
@ -1,95 +0,0 @@
|
||||
#
|
||||
# X.Org module default exclusion patterns
|
||||
# The next section if for module specific patterns
|
||||
#
|
||||
# Do not edit the following section
|
||||
# GNU Build System (Autotools)
|
||||
aclocal.m4
|
||||
autom4te.cache/
|
||||
autoscan.log
|
||||
ChangeLog
|
||||
compile
|
||||
config.guess
|
||||
config.h
|
||||
config.h.in
|
||||
config.log
|
||||
config-ml.in
|
||||
config.py
|
||||
config.status
|
||||
config.status.lineno
|
||||
config.sub
|
||||
configure
|
||||
configure.scan
|
||||
depcomp
|
||||
.deps/
|
||||
INSTALL
|
||||
install-sh
|
||||
.libs/
|
||||
libtool
|
||||
libtool.m4
|
||||
ltmain.sh
|
||||
lt~obsolete.m4
|
||||
ltoptions.m4
|
||||
ltsugar.m4
|
||||
ltversion.m4
|
||||
Makefile
|
||||
Makefile.in
|
||||
mdate-sh
|
||||
missing
|
||||
mkinstalldirs
|
||||
*.pc
|
||||
py-compile
|
||||
stamp-h?
|
||||
symlink-tree
|
||||
texinfo.tex
|
||||
ylwrap
|
||||
src/sna/git_version.h
|
||||
src/sna/brw/brw_test
|
||||
|
||||
# Do not edit the following section
|
||||
# Edit Compile Debug Document Distribute
|
||||
*~
|
||||
*.[0-9]
|
||||
*.[0-9]x
|
||||
*.bak
|
||||
*.bin
|
||||
core
|
||||
*.dll
|
||||
*.exe
|
||||
*-ISO*.bdf
|
||||
*-JIS*.bdf
|
||||
*-KOI8*.bdf
|
||||
*.kld
|
||||
*.ko
|
||||
*.ko.cmd
|
||||
*.lai
|
||||
*.l[oa]
|
||||
*.[oa]
|
||||
*.obj
|
||||
*.patch
|
||||
*.so
|
||||
*.pcf.gz
|
||||
*.pdb
|
||||
*.tar.bz2
|
||||
*.tar.gz
|
||||
#
|
||||
# Add & Override patterns for gldispatch
|
||||
#
|
||||
# Edit the following section as needed
|
||||
# For example, !report.pc overrides *.pc. See 'man gitignore'
|
||||
#
|
||||
configure.lineno
|
||||
.dirstamp
|
||||
test-driver
|
||||
|
||||
gl_generated_dispatch.c
|
||||
gl_generated.h
|
||||
|
||||
glx_generated_dispatch.c
|
||||
glx_generated.h
|
||||
|
||||
egl_generated_dispatch.c
|
||||
egl_generated.h
|
||||
|
||||
wgl_generated_dispatch.c
|
||||
wgl_generated.h
|
14
dist/libepoxy/autogen.sh
vendored
14
dist/libepoxy/autogen.sh
vendored
@ -1,14 +0,0 @@
|
||||
#! /bin/sh
|
||||
|
||||
srcdir=`dirname $0`
|
||||
test -z "$srcdir" && srcdir=.
|
||||
|
||||
ORIGDIR=`pwd`
|
||||
cd $srcdir
|
||||
|
||||
autoreconf -v --install || exit 1
|
||||
cd $ORIGDIR || exit $?
|
||||
|
||||
if test -z "$NOCONFIGURE"; then
|
||||
$srcdir/configure "$@"
|
||||
fi
|
107
dist/libepoxy/src/dispatch_common.c
vendored
107
dist/libepoxy/src/dispatch_common.c
vendored
@ -104,16 +104,42 @@
|
||||
|
||||
#ifdef __APPLE__
|
||||
#define GLX_LIB "/opt/X11/lib/libGL.1.dylib"
|
||||
#elif defined(ANDROID)
|
||||
#define GLX_LIB "libGLESv2.so"
|
||||
#elif defined(__OpenBSD__)
|
||||
#define GLX_LIB "libGL.so"
|
||||
#define EGL_LIB "libEGL.so"
|
||||
#define GLESV1_LIB "libGLESv1_CM.so"
|
||||
#define GLESV2_LIB "libGLESv2.so"
|
||||
#else
|
||||
#define GLX_LIB "libGL.so.1"
|
||||
#endif
|
||||
|
||||
#if defined(ANDROID) || defined(__OpenBSD__)
|
||||
#define EGL_LIB "libEGL.so"
|
||||
#define GLES1_LIB "libGLESv1_CM.so"
|
||||
#define GLES2_LIB "libGLESv2.so"
|
||||
#else
|
||||
#define EGL_LIB "libEGL.so.1"
|
||||
#define GLESV1_LIB "libGLESv1_CM.so.1"
|
||||
#define GLESV2_LIB "libGLESv2.so.2"
|
||||
#define GLES1_LIB "libGLESv1_CM.so.1"
|
||||
#define GLES2_LIB "libGLESv2.so.2"
|
||||
#endif
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define CONSTRUCT(_func) static void _func (void) __attribute__((constructor));
|
||||
#define DESTRUCT(_func) static void _func (void) __attribute__((destructor));
|
||||
#elif defined (_MSC_VER) && (_MSC_VER >= 1500)
|
||||
#define CONSTRUCT(_func) \
|
||||
static void _func(void); \
|
||||
static int _func ## _wrapper(void) { _func(); return 0; } \
|
||||
__pragma(section(".CRT$XCU",read)) \
|
||||
__declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _wrapper;
|
||||
|
||||
#define DESTRUCT(_func) \
|
||||
static void _func(void); \
|
||||
static int _func ## _constructor(void) { atexit (_func); return 0; } \
|
||||
__pragma(section(".CRT$XCU",read)) \
|
||||
__declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _constructor;
|
||||
|
||||
#else
|
||||
#error "You will need constructor support for your compiler"
|
||||
#endif
|
||||
|
||||
struct api {
|
||||
@ -161,18 +187,21 @@ struct api {
|
||||
static struct api api = {
|
||||
#ifndef _WIN32
|
||||
.mutex = PTHREAD_MUTEX_INITIALIZER,
|
||||
#else
|
||||
0,
|
||||
#endif
|
||||
};
|
||||
|
||||
static bool library_initialized;
|
||||
|
||||
static bool epoxy_current_context_is_glx(void);
|
||||
|
||||
#if PLATFORM_HAS_EGL
|
||||
static EGLenum
|
||||
epoxy_egl_get_current_gl_context_api(void);
|
||||
#endif
|
||||
|
||||
static void
|
||||
library_init(void) __attribute__((constructor));
|
||||
CONSTRUCT (library_init)
|
||||
|
||||
static void
|
||||
library_init(void)
|
||||
@ -244,6 +273,24 @@ epoxy_is_desktop_gl(void)
|
||||
const char *es_prefix = "OpenGL ES";
|
||||
const char *version;
|
||||
|
||||
#if PLATFORM_HAS_EGL
|
||||
/* PowerVR's OpenGL ES implementation (and perhaps other) don't
|
||||
* comply with the standard, which states that
|
||||
* "glGetString(GL_VERSION)" should return a string starting with
|
||||
* "OpenGL ES". Therefore, to distinguish desktop OpenGL from
|
||||
* OpenGL ES, we must also check the context type through EGL (we
|
||||
* can do that as PowerVR is only usable through EGL).
|
||||
*/
|
||||
if (!epoxy_current_context_is_glx()) {
|
||||
switch (epoxy_egl_get_current_gl_context_api()) {
|
||||
case EGL_OPENGL_API: return true;
|
||||
case EGL_OPENGL_ES_API: return false;
|
||||
case EGL_NONE:
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (api.begin_count)
|
||||
return true;
|
||||
|
||||
@ -290,7 +337,7 @@ epoxy_gl_version(void)
|
||||
return epoxy_internal_gl_version(0);
|
||||
}
|
||||
|
||||
PUBLIC int
|
||||
int
|
||||
epoxy_conservative_gl_version(void)
|
||||
{
|
||||
if (api.begin_count)
|
||||
@ -327,12 +374,13 @@ epoxy_internal_has_gl_extension(const char *ext, bool invalid_op_mode)
|
||||
return epoxy_extension_in_string(exts, ext);
|
||||
} else {
|
||||
int num_extensions;
|
||||
int i;
|
||||
|
||||
glGetIntegerv(GL_NUM_EXTENSIONS, &num_extensions);
|
||||
if (num_extensions == 0)
|
||||
return invalid_op_mode;
|
||||
|
||||
for (int i = 0; i < num_extensions; i++) {
|
||||
for (i = 0; i < num_extensions; i++) {
|
||||
const char *gl_ext = (const char *)glGetStringi(GL_EXTENSIONS, i);
|
||||
if (strcmp(ext, gl_ext) == 0)
|
||||
return true;
|
||||
@ -373,7 +421,7 @@ epoxy_current_context_is_glx(void)
|
||||
sym = dlsym(NULL, "eglGetCurrentContext");
|
||||
if (sym) {
|
||||
if (epoxy_egl_get_current_gl_context_api() != EGL_NONE)
|
||||
return true;
|
||||
return false;
|
||||
} else {
|
||||
(void)dlerror();
|
||||
}
|
||||
@ -454,7 +502,7 @@ epoxy_gles1_dlsym(const char *name)
|
||||
if (epoxy_current_context_is_glx()) {
|
||||
return epoxy_get_proc_address(name);
|
||||
} else {
|
||||
return do_dlsym(&api.gles1_handle, GLESV1_LIB, name, true);
|
||||
return do_dlsym(&api.gles1_handle, GLES1_LIB, name, true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -464,7 +512,7 @@ epoxy_gles2_dlsym(const char *name)
|
||||
if (epoxy_current_context_is_glx()) {
|
||||
return epoxy_get_proc_address(name);
|
||||
} else {
|
||||
return do_dlsym(&api.gles2_handle, GLESV2_LIB, name, true);
|
||||
return do_dlsym(&api.gles2_handle, GLES2_LIB, name, true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -484,7 +532,7 @@ epoxy_gles3_dlsym(const char *name)
|
||||
if (epoxy_current_context_is_glx()) {
|
||||
return epoxy_get_proc_address(name);
|
||||
} else {
|
||||
void *func = do_dlsym(&api.gles2_handle, GLESV2_LIB, name, false);
|
||||
void *func = do_dlsym(&api.gles2_handle, GLES2_LIB, name, false);
|
||||
|
||||
if (func)
|
||||
return func;
|
||||
@ -501,7 +549,13 @@ void *
|
||||
epoxy_get_core_proc_address(const char *name, int core_version)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
int core_symbol_support = 10;
|
||||
int core_symbol_support = 11;
|
||||
#elif defined(ANDROID)
|
||||
/**
|
||||
* All symbols must be resolved through eglGetProcAddress
|
||||
* on Android
|
||||
*/
|
||||
int core_symbol_support = 0;
|
||||
#else
|
||||
int core_symbol_support = 12;
|
||||
#endif
|
||||
@ -583,7 +637,7 @@ epoxy_get_bootstrap_proc_address(const char *name)
|
||||
* us. Try the GLES2 implementation first, and fall back
|
||||
* to GLES1 otherwise.
|
||||
*/
|
||||
get_dlopen_handle(&api.gles2_handle, GLESV2_LIB, false);
|
||||
get_dlopen_handle(&api.gles2_handle, GLES2_LIB, false);
|
||||
if (api.gles2_handle)
|
||||
return epoxy_gles2_dlsym(name);
|
||||
else
|
||||
@ -623,26 +677,7 @@ epoxy_get_proc_address(const char *name)
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
epoxy_print_failure_reasons(const char *name,
|
||||
const char **provider_names,
|
||||
const int *providers)
|
||||
{
|
||||
int i;
|
||||
|
||||
fprintf(stderr, "No provider of %s found. Requires one of:\n", name);
|
||||
|
||||
for (i = 0; providers[i] != 0; i++)
|
||||
fprintf(stderr, " %s\n",
|
||||
provider_names[providers[i]]);
|
||||
|
||||
if (providers[0] == 0) {
|
||||
fprintf(stderr, " No known providers. This is likely a bug "
|
||||
"in libepoxy code generation\n");
|
||||
}
|
||||
}
|
||||
|
||||
WRAPPER_VISIBILITY void
|
||||
WRAPPER_VISIBILITY (void)
|
||||
WRAPPER(epoxy_glBegin)(GLenum primtype)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
@ -656,7 +691,7 @@ WRAPPER(epoxy_glBegin)(GLenum primtype)
|
||||
epoxy_glBegin_unwrapped(primtype);
|
||||
}
|
||||
|
||||
WRAPPER_VISIBILITY void
|
||||
WRAPPER_VISIBILITY (void)
|
||||
WRAPPER(epoxy_glEnd)(void)
|
||||
{
|
||||
epoxy_glEnd_unwrapped();
|
||||
|
24
dist/libepoxy/test/.gitignore
vendored
24
dist/libepoxy/test/.gitignore
vendored
@ -1,24 +0,0 @@
|
||||
egl_and_glx_different_pointers_egl
|
||||
egl_and_glx_different_pointers_egl_glx
|
||||
egl_and_glx_different_pointers_glx
|
||||
egl_has_extension_nocontext
|
||||
egl_gl
|
||||
egl_gles1_without_glx
|
||||
egl_gles2_without_glx
|
||||
glx_alias_prefer_same_name
|
||||
glx_beginend
|
||||
glx_gles2
|
||||
glx_glxgetprocaddress_nocontext
|
||||
glx_has_extension_nocontext
|
||||
glx_public_api
|
||||
glx_public_api_core
|
||||
glx_shared_znow
|
||||
glx_static
|
||||
headerguards
|
||||
khronos_typedefs
|
||||
miscdefines
|
||||
wgl_core_and_exts
|
||||
wgl_usefontbitmaps
|
||||
wgl_usefontbitmaps_unicode
|
||||
*.log
|
||||
*.trs
|
93
dist/libepoxy/test/glx_alias_prefer_same_name.c
vendored
93
dist/libepoxy/test/glx_alias_prefer_same_name.c
vendored
@ -1,93 +0,0 @@
|
||||
/*
|
||||
* Copyright © 2013 Intel Corporation
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the next
|
||||
* paragraph) shall be included in all copies or substantial portions of the
|
||||
* Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
* IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file glx_gles2.c
|
||||
*
|
||||
* Catches a bug where a GLES2 context using
|
||||
* GLX_EXT_create_context_es2_profile would try to find the symbols in
|
||||
* libGLESv2.so.2 instead of libGL.so.1.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#include <err.h>
|
||||
#include "epoxy/gl.h"
|
||||
#include "epoxy/glx.h"
|
||||
#include <X11/Xlib.h>
|
||||
|
||||
#include "glx_common.h"
|
||||
|
||||
static Display *dpy;
|
||||
|
||||
static int last_call;
|
||||
|
||||
#define CORE_FUNC_VAL 100
|
||||
#define EXT_FUNC_VAL 101
|
||||
|
||||
void
|
||||
override_GL_glBindTexture(GLenum target, GLenum texture);
|
||||
void
|
||||
override_GL_glBindTextureEXT(GLenum target, GLenum texture);
|
||||
|
||||
void
|
||||
override_GL_glBindTexture(GLenum target)
|
||||
{
|
||||
last_call = CORE_FUNC_VAL;
|
||||
}
|
||||
|
||||
void
|
||||
override_GL_glBindTexture(GLenum target)
|
||||
{
|
||||
last_call = EXT_FUNC_VAL;
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
bool pass = true;
|
||||
XVisualInfo *vis;
|
||||
Window win;
|
||||
GLXContext ctx;
|
||||
GLXFBConfig config;
|
||||
int context_attribs[] = {
|
||||
GLX_CONTEXT_PROFILE_MASK_ARB, GLX_CONTEXT_ES2_PROFILE_BIT_EXT,
|
||||
GLX_CONTEXT_MAJOR_VERSION_ARB, 2,
|
||||
GLX_CONTEXT_MINOR_VERSION_ARB, 0,
|
||||
0
|
||||
};
|
||||
GLuint shader;
|
||||
|
||||
dpy = get_display_or_skip();
|
||||
make_glx_context_current_or_skip(dpy);
|
||||
|
||||
if (!epoxy_has_gl_extension(dpy, 0, "GLX_EXT_texture_object"))
|
||||
errx(77, "Test requires GLX_EXT_texture_object");
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, 1);
|
||||
pass = pass && last_call == CORE_VAL;
|
||||
glBindTextureEXT(GL_TEXTURE_2D, 1);
|
||||
pass = pass && last_call == EXT_VAL;
|
||||
|
||||
return pass != true;
|
||||
}
|
Loading…
Reference in New Issue
Block a user