The previous profile-based logic didn't work on Java 8 due to the
architecture-specific lib directories. It was also complicated by the
fact that nar.javaHome isn't set at profile activation time unless the
user manually specifies it with -D on the Maven command line.
This commit replaces it with an Ant task that runs during the
initialization phase. It finds the first (and probably only) jawt
library with glob matching, allowing us to search architecture-specific
lib directories.
If found, it strips the file name to get just the directory name and
sets openrs2.jawtProperty. If not found, it makes the build fail.
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.
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.
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.