Age | Commit message (Collapse) | Author | Files | Lines |
|
This should help get us better error handling when we accidentally
call the wrong loader path.
|
|
I want to have a chance to intercept wglMakeCurrent for WGL's
context-dependent function pointer handling.
|
|
|
|
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).
|
|
Fixes #8
|
|
|
|
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.
|
|
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.
|
|
|
|
Apparently it's not totally portable, and the #ifdefs work fine (and
equivalently to the pragma, on some compilers).
|
|
There's no linker flag of this name in the normal clang, presumably
beause the linker feature doesn't exist.
|
|
Not sure how I misplaced the \n in the previous fix.
|
|
On non-win32, it was declaring a new function pointer variable on
every #include, and OS X's linker got angry.
|
|
For a non-GLX application, at least, we need to pull our extensions
using dlsym, not glXGetProcAddress(). The symptom was a segfault in
glXGetProcAddress().
|
|
This reduces the built size by another 37k.
|
|
Saves another 53k on disk, no relocations.
|
|
Saves 54k on disk and 3700 relocations.
|
|
I initially thought I was going to have two sets of defines you chose
from using #include, but that never ended up being necessary.
|
|
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.
|
|
We're sharing the source file with glx_static, but we don't want to
SKIP due to not being statically linked.
|
|
|
|
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.
|
|
This should give us a more informative failure mode than the one
mentioned in the README.
|
|
We could keep examining the same ptr value over and over.
|
|
|
|
This gets us the safety check for including GL/gl.h before epoxy/gl.h
|
|
This gives us consistency with GL/glx.h's include of GL/gl.h.
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
It doesn't exist. There's EAGL, but that's not something we're
covering.
|
|
We don't need x11_libs, because we don't directly call any xlib
functions. We're just passing xlib types around.
|
|
|
|
|
|
|
|
We don't want anybody to accidentally override the library's internal
usage of epoxy_has_gl_extension() or similar public interfaces.
|
|
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
|
|
|
|
It won't have that symbol, unless it happens to be linked against the
full library.
|
|
Note that it will only actually link statically against epoxy if
you've set --enable-static.
|
|
I'm going to want the same stuff for ifuncs.
|
|
The "None" for "we're not an alias of anything else" wasn't actually
simplifying things.
|
|
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.
|
|
|
|
This is very poorly tested at this point, but survives a simple testcase.
|
|
This is needed for glGetString() lookup to work, since
wglGetProcAddress() returns NULL for core procs.
|
|
|