Graham
293a37c593
Lock framebuffer variables accessed from multiple threads
5 years ago
Graham
ebcd7a6911
Add comment to the flushBuffer/glFlush call on macOS
5 years ago
Graham
57e61da679
Set swap interval of the onscreen context on macOS
5 years ago
Graham
82e2c1f01a
Disable CAOpenGLLayer asynchronous mode
...
canDrawInCGLContext is called far more often than blit, so it seems like a
waste of effort.
5 years ago
Graham
a2edbb8781
Create NSOpenGLContext synchronously
...
This is consistent with all other code that runs on the main UI thread, and
slightly easier to reason about.
5 years ago
Graham
913057b61d
Fix JagGLLayer frame in resizable mode
5 years ago
Graham
57012072a3
Remove unnecessary jaggl locks
...
We only need to lock GLX calls, not standard OpenGL calls. This should
improve the performance of the jaggl bindings on UNIX systems.
5 years ago
Graham
7c63254440
Document why our ChoosePixelFormat usage is correct
5 years ago
Graham
d2460c68ba
Update TODO in jaggl.c
5 years ago
Graham
93692f497d
Document that CGL lacks extensions in getExtensionsString
5 years ago
Graham
c17f4922c6
Return empty string if wglGetExtensionsStringEXT is not supported
5 years ago
Graham
2454bebc96
Add initial Mac OS X jaggl support
5 years ago
Graham
60d762c0fe
Add missing unsupported platform branch
5 years ago
Graham
d57d2fbbab
Use JNI_ABORT to release arrays that we don't expect OpenGL to change
5 years ago
Graham
a448581733
Cast void * pointers to const void * where possible
5 years ago
Graham
7386fdc862
Improve variable names in jaggl_bootstrap_proc_table
5 years ago
Graham
a5c9851031
Enable and fix MSVC warnings
5 years ago
Graham
4e5217db0c
Reduce indentation in choosePixelFormat
5 years ago
Graham
5a3ec74a91
Use alpha_bits instead of cAlphaBits for consistency with X11
5 years ago
Graham
f48bf54564
Remove unnecessary global AWT lock on Windows
5 years ago
Graham
1a6ff16586
Unregister class after jaggl_bootstrap_proc_table
5 years ago
Graham
6006f24027
Avoid passing GLX_SAMPLE* to glXChooseVisual if num_samples is zero
...
I think glXChooseVisual will return an error if GLX_SAMPLE* is present
even if we set it to False/0, so we might never get a context on old
hardware.
5 years ago
Graham
4797bf6224
Add multisample support to WGL contexts
5 years ago
Graham
7b2ec0e4b0
Populate jaggl_alpha_bits with cAlphaBits from selected pixel format
5 years ago
Graham
e93a23315b
Reduce indentation in chooseContext
...
We don't need to keep indenting like the X11 code as we only call
ChoosePixelFormat once.
5 years ago
Graham
adffb1ecac
Add #error case to all platform #if/else chains
...
This is a bit more robust: if we typo one of the platform defines, we'll
know about it rather than silently missing bits of code.
5 years ago
Graham
a902d6655e
Add initial WGL support
5 years ago
Graham
905fab91ca
Load glTexImage3D with glXGetProcAddressARB
...
It isn't part of OpenGL 1.1, so we need to make this change for
compatibility with Windows.
5 years ago
Graham
53c97a8725
Add OpenGL extension headers
...
Copied from https://github.com/KhronosGroup/{OpenGL,EGL}-Registry .
Windows doesn't supply these headers.
5 years ago
Graham
c9d29a71d8
Use const pointers where possible
5 years ago
Graham
9fd335d87b
Add bindings for complex gl* functions
5 years ago
Graham
d470132945
Add bindings for simple gl* functions
5 years ago
Graham
fb60dd361b
Add gl* stubs to jaggl.c
5 years ago
Graham
60f3303ab5
Add initial GLX context management
5 years ago
Graham
d77de89ea1
Add JNI header files generated from jaggl and jagmisc
...
A long-term goal is to write clean room implementations of these
libraries, for several reasons:
* The original libraries are missing, so we currently have to do a fair
amount of awkward bytecode patching in the loader to use JOGL
instead.
* The original libraries were not compiled for 64-bit Linux. We might
also want to compile for new architectures (e.g. ARM or RISC-V) or
additional operating systems (e.g. the BSDs).
* I'm worried that over time the libraries will bit rot and might
eventually stop working with modern JREs - it's already been about 10
years since they were originally compiled!
I'm not too concerned about putting this in the main open-source
repository: I think it's generally believed that interfaces are not
copyrightable, and we're only copying the interface for
interoperability purposes. The native code will be original.
Furthermore, most of the jaggl interface is just a copy of the OpenGL
interface, so it's unlikely that Jagex could claim they hold the
copyright on it anyway.
5 years ago