Graham
acaeb1f788
Update gl-natives description
5 years ago
Graham
21a6886586
Activate mac-legacy profile automatically
5 years ago
Graham
69feff1dac
Add mac-legacy profile for building against Java 6 on macOS
5 years ago
Graham
9960aec5ef
Use nar.javaHome instead of java.home
...
This allows the native libraries to be built against a JDK separate to the JDK
Maven runs under.
5 years ago
Graham
0d4edcd186
Use CGSize/CGRect where appropriate for 32-bit support
5 years ago
Graham
ea8dcbf9ec
Check that jaggl_context_appkit is non-NULL before update call
...
It is created after the observer is added, so there is a race condition.
5 years ago
Graham
fb429421ed
Update NSView-backed OpenGL context on resize
5 years ago
Graham
e1d24ec065
Add legacy NSView support
...
NSView is used in preference to CALayer if available, as we avoid all the
framebuffer blitting overhead.
5 years ago
Graham
ae0baeb271
Include more specific headers on macOS
...
This reduces the compile time fairly significantly.
5 years ago
Graham
b53ab6f04a
Reduce screen corruption when resizing
...
This commit clears framebuffers when they are created, copies the contents of
the previous framebuffer to the new framebuffer when resizing and moves all the
resizing code into the blit method. All of these help to reduce screen
corruption, although a small amount still remains if you resize quickly.
5 years ago
Graham
0f7b2ea9ca
Blit before swapping framebuffers
...
This fixes latency (and also screen corruption when resizing), as we blitted a
framebuffer that had already been displayed on the off-screen window rather
than the one that had just been rendered.
5 years ago
Graham
5e18198ae4
Make releaseCGLContext a no-op
...
It is sometimes called after the context is destroyed. Attempting to call any
gl* functions in this case causes a segfault.
5 years ago
Graham
9b7086f3a5
Resize off-screen window after resizing the framebuffer
5 years ago
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
d7be5f667e
Add list of known macOS bugs to the gl-natives README
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
550e201577
Fix typo ('the version 3.0' -> 'version 3.0')
5 years ago
Graham
1b77c5e454
Change GPL v3 -> v3.0
...
This is just to clarify that the intention is that only the original v3
license is acceptable.
5 years ago
Graham
d2460c68ba
Update TODO in jaggl.c
5 years ago
Graham
003b7ecfef
Improve <description> wrapping
5 years ago
Graham
23e5f2bb29
Add READMEs
5 years ago
Graham
7b04a185e9
Add license
...
I was torn for a long time over whether to license under the GPL or
AGPL. I've settled on the GPL as I think it'd be quite hard to enforce
the AGPL (because of the nature of the RuneScape private server
community), and honest people would be at a disadvantage compared to
people who would ignore the additional provisions of the AGPL.
The *-natives modules are licensed under the LGPL as they are intended
to be linked with the proprietary client software, so the GPL would not
be appropriate.
I've decided to use v3 (and only v3) of the GPL. I don't like the 'or
later' clause as it means placing a great deal of trust in the FSF not
to change the overall intention of the license in future versions.
5 years ago
Graham
405c33c1a1
Format *.xml files with IDEA's code style
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
eec8990481
Add description to all modules
5 years ago
Graham
4acf1e5b17
Disable unix profile on Mac OS X
5 years ago
Graham
60d762c0fe
Add missing unsupported platform branch
5 years ago
Graham
d293176959
Replace maven.multiModuleProjectDirectory with openrs2.root
...
openrs2.root works correctly even if the root of the reactor is a child
project, at the expense of having to re-define the property in each
module.
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