You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(134) |
Sep
(52) |
Oct
(13) |
Nov
(342) |
Dec
(163) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(44) |
Feb
(62) |
Mar
(158) |
Apr
(38) |
May
(70) |
Jun
(58) |
Jul
(104) |
Aug
(207) |
Sep
(83) |
Oct
(122) |
Nov
(23) |
Dec
(49) |
2004 |
Jan
(119) |
Feb
(132) |
Mar
(192) |
Apr
(140) |
May
(77) |
Jun
(74) |
Jul
(201) |
Aug
(63) |
Sep
(102) |
Oct
(70) |
Nov
(173) |
Dec
(78) |
2005 |
Jan
(174) |
Feb
(197) |
Mar
(105) |
Apr
(59) |
May
(77) |
Jun
(43) |
Jul
(21) |
Aug
(18) |
Sep
(47) |
Oct
(37) |
Nov
(74) |
Dec
(50) |
2006 |
Jan
(44) |
Feb
(19) |
Mar
(32) |
Apr
(24) |
May
(31) |
Jun
(55) |
Jul
(138) |
Aug
(28) |
Sep
(12) |
Oct
(41) |
Nov
(58) |
Dec
(24) |
2007 |
Jan
(28) |
Feb
(14) |
Mar
(10) |
Apr
(68) |
May
(30) |
Jun
(26) |
Jul
(18) |
Aug
(63) |
Sep
(19) |
Oct
(29) |
Nov
(20) |
Dec
(10) |
2008 |
Jan
(38) |
Feb
(7) |
Mar
(37) |
Apr
(120) |
May
(41) |
Jun
(36) |
Jul
(39) |
Aug
(24) |
Sep
(28) |
Oct
(30) |
Nov
(36) |
Dec
(75) |
2009 |
Jan
(46) |
Feb
(22) |
Mar
(50) |
Apr
(70) |
May
(134) |
Jun
(105) |
Jul
(75) |
Aug
(34) |
Sep
(38) |
Oct
(34) |
Nov
(19) |
Dec
(20) |
2010 |
Jan
(11) |
Feb
(20) |
Mar
(65) |
Apr
(83) |
May
(104) |
Jun
(73) |
Jul
(78) |
Aug
(57) |
Sep
(43) |
Oct
(35) |
Nov
(9) |
Dec
(4) |
2011 |
Jan
(21) |
Feb
(11) |
Mar
(18) |
Apr
(10) |
May
(18) |
Jun
(15) |
Jul
(48) |
Aug
(25) |
Sep
(17) |
Oct
(45) |
Nov
(15) |
Dec
(12) |
2012 |
Jan
(21) |
Feb
(9) |
Mar
(12) |
Apr
(9) |
May
(9) |
Jun
(5) |
Jul
(1) |
Aug
(10) |
Sep
(12) |
Oct
(1) |
Nov
(28) |
Dec
(5) |
2013 |
Jan
(4) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2015 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
|
2016 |
Jan
(2) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(2) |
Jun
|
Jul
(1) |
Aug
(2) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
1
|
2
|
3
|
4
|
5
|
6
|
7
(1) |
8
(1) |
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
(9) |
19
(1) |
20
(2) |
21
(1) |
22
|
23
(1) |
24
|
25
|
26
(1) |
27
|
28
|
29
(1) |
30
|
31
|
|
|
|
From: Elias N. <eli...@us...> - 2005-08-29 20:15:06
|
Update of /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/opengl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32058/src/java/org/lwjgl/opengl Modified Files: GLContext.java Log Message: Made GLContext OGL version parsing more robust Index: GLContext.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/opengl/GLContext.java,v retrieving revision 1.52 retrieving revision 1.53 diff -u -d -r1.52 -r1.53 --- GLContext.java 7 Aug 2005 12:19:09 -0000 1.52 +++ GLContext.java 29 Aug 2005 20:14:59 -0000 1.53 @@ -201,8 +201,14 @@ String major_string = version_tokenizer.nextToken(); String minor_string = version_tokenizer.nextToken(); - int majorVersion = Integer.parseInt(major_string); - int minorVersion = Integer.parseInt(minor_string); + int majorVersion = 0; + int minorVersion = 0; + try { + majorVersion = Integer.parseInt(major_string); + minorVersion = Integer.parseInt(minor_string); + } catch (NumberFormatException e) { + LWJGLUtil.log("The major and/or minor OpenGL version is malformed: " + e.getMessage()); + } if (majorVersion == 2) { // ----------------------[ 2.X ]---------------------- |
From: Elias N. <eli...@us...> - 2005-08-26 15:11:29
|
Update of /cvsroot/java-game-lib/LWJGL/src/native/macosx In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31130 Modified Files: context.m Log Message: Mac OS X: Removed usage of the deprecated function NSIsSymbolNameDefinedInImage Index: context.m =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/macosx/context.m,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- context.m 3 Jun 2005 08:26:24 -0000 1.3 +++ context.m 26 Aug 2005 15:11:21 -0000 1.4 @@ -51,14 +51,11 @@ char mach_name[BUFFER_SIZE] = "_"; strncat(mach_name, name, BUFFER_SIZE - 1); - if (NSIsSymbolNameDefinedInImage(opengl_lib_handle, mach_name)) { - NSSymbol sym = NSLookupSymbolInImage(opengl_lib_handle, mach_name, NSLOOKUPSYMBOLINIMAGE_OPTION_BIND | NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR); - void *address = NSAddressOfSymbol(sym); - return address; - } else { + NSSymbol sym = NSLookupSymbolInImage(opengl_lib_handle, mach_name, NSLOOKUPSYMBOLINIMAGE_OPTION_BIND | NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR); + void *address = NSAddressOfSymbol(sym); + if (address == NULL) printfDebug("Could not locate symbol %s\n", name); - return NULL; - } + return address; } static const struct mach_header *loadImage(const char *lib_name) { |
From: Ioannis T. <sp...@us...> - 2005-08-23 13:50:03
|
Update of /cvsroot/java-game-lib/LWJGL/src/templates/org/lwjgl/opengl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2990 Added Files: EXT_stencil_clear_tag.java EXT_texture_sRGB.java Log Message: Added new extensions --- NEW FILE: EXT_stencil_clear_tag.java --- /* * Copyright (c) 2002-2004 LWJGL Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * * Neither the name of 'LWJGL' nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package org.lwjgl.opengl; import org.lwjgl.util.generator.*; public interface EXT_stencil_clear_tag { int GL_STENCIL_TAG_BITS_EXT = 0x88F2; int GL_STENCIL_CLEAR_TAG_VALUE_EXT = 0x88F3; void glStencilClearTagEXT(@GLsizei int stencilTagBits, @GLuint int stencilClearTag); } --- NEW FILE: EXT_texture_sRGB.java --- /* * Copyright (c) 2002-2004 LWJGL Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * * Neither the name of 'LWJGL' nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package org.lwjgl.opengl; import org.lwjgl.util.generator.*; public interface EXT_texture_sRGB { int GL_SRGB_EXT = 0x8C40; int GL_SRGB8_EXT = 0x8C41; int GL_SRGB_ALPHA_EXT = 0x8C42; int GL_SRGB8_ALPHA8_EXT = 0x8C43; int GL_SLUMINANCE_ALPHA_EXT = 0x8C44; int GL_SLUMINANCE8_ALPHA8_EXT = 0x8C45; int GL_SLUMINANCE_EXT = 0x8C46; int GL_SLUMINANCE8_EXT = 0x8C47; int GL_COMPRESSED_SRGB_EXT = 0x8C48; int GL_COMPRESSED_SRGB_ALPHA_EXT = 0x8C49; int GL_COMPRESSED_SLUMINANCE_EXT = 0x8C4A; int GL_COMPRESSED_SLUMINANCE_ALPHA_EXT = 0x8C4B; int GL_COMPRESSED_SRGB_S3TC_DXT1_EXT = 0x8C4C; int GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT = 0x8C4D; int GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT = 0x8C4E; int GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT = 0x8C4F; } |
From: Elias N. <eli...@us...> - 2005-08-21 20:27:29
|
Update of /cvsroot/java-game-lib/LWJGL/src/native/linux In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21091/src/native/linux Modified Files: display.c Log Message: Linux: Made the XRRSetScreenConfigAndRate retry loop more robust in order to avoid endless loops Index: display.c =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/linux/display.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- display.c 16 Jan 2005 10:43:30 -0000 1.7 +++ display.c 21 Aug 2005 20:27:20 -0000 1.8 @@ -213,19 +213,36 @@ return True == XF86VidModeSwitchToMode(disp, screen, &mode->mode_data.xf86vm_modeinfo); } +/* Try to set the mode specified through XRandR. + * Return value is the Status code of the mode switch + * The timestamp parameter is filled with the latest timestamp returned from XRRConfigTimes + */ +static Status trySetXrandrMode(Display *disp, int screen, mode_info *mode, Time *timestamp) { + Status status; + Drawable root_window = RootWindow(disp, screen); + XRRScreenConfiguration *screen_configuration = XRRGetScreenInfo (disp, root_window); + XRRConfigTimes(screen_configuration, timestamp); + Rotation current_rotation; + XRRConfigRotations(screen_configuration, ¤t_rotation); + status = XRRSetScreenConfigAndRate(disp, screen_configuration, root_window, mode->mode_data.size_index, current_rotation, mode->freq, *timestamp); + XRRFreeScreenConfigInfo(screen_configuration); + return status; +} + static bool setXrandrMode(Display *disp, int screen, mode_info *mode) { - Status success; - do { - Time config_time; - Drawable root_window = RootWindow(disp, screen); - XRRScreenConfiguration *screen_configuration = XRRGetScreenInfo (disp, root_window); - XRRConfigTimes(screen_configuration, &config_time); - Rotation current_rotation; - XRRConfigRotations(screen_configuration, ¤t_rotation); - success = XRRSetScreenConfigAndRate(disp, screen_configuration, root_window, mode->mode_data.size_index, current_rotation, mode->freq, config_time); - XRRFreeScreenConfigInfo(screen_configuration); - } while (success != 0); - return true; + Time timestamp; + Status status = trySetXrandrMode(disp, screen, mode, ×tamp); + if (status == 0) + return true; // Success + Time new_timestamp; + while (true) { + status = trySetXrandrMode(disp, screen, mode, &new_timestamp); + if (status == 0) + return true; // Success + if (new_timestamp == timestamp) + return false; // Failure, and the stamps are equal meaning that the failure is not merely transient + timestamp = new_timestamp; + } } static bool setMode(JNIEnv *env, Display *disp, int screen, int width, int height, int freq, bool temporary) { |
From: Brian M. <ma...@us...> - 2005-08-20 19:09:12
|
Update of /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/opengl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32451/src/java/org/lwjgl/opengl Modified Files: AWTSurfaceLock.java Log Message: Workaround for Sun JDK bug 4796548 which still exists in java for OS X Index: AWTSurfaceLock.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/opengl/AWTSurfaceLock.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- AWTSurfaceLock.java 4 May 2005 20:59:34 -0000 1.4 +++ AWTSurfaceLock.java 20 Aug 2005 19:09:02 -0000 1.5 @@ -33,6 +33,9 @@ import java.awt.Canvas; import java.nio.ByteBuffer; +import java.security.AccessController; +import java.security.PrivilegedActionException; +import java.security.PrivilegedExceptionAction; import org.lwjgl.LWJGLException; import org.lwjgl.LWJGLUtil; @@ -44,17 +47,21 @@ * @version $Revision$ */ final class AWTSurfaceLock { - private final static int WAIT_DELAY_MILLIS = 100; - - private final ByteBuffer lock_buffer; + + private final static int WAIT_DELAY_MILLIS = 100; + + private final ByteBuffer lock_buffer; + + private boolean firstLockSucceeded = false; public AWTSurfaceLock() { lock_buffer = createHandle(); } + private static native ByteBuffer createHandle(); public ByteBuffer lockAndGetHandle(Canvas canvas) throws LWJGLException { - while (!lockAndInitHandle(lock_buffer, canvas)) { + while (!privilegedLockAndInitHandle(canvas)) { LWJGLUtil.log("Could not get drawing surface info, retrying..."); try { Thread.sleep(WAIT_DELAY_MILLIS); @@ -62,12 +69,38 @@ LWJGLUtil.log("Interrupted while retrying: " + e); } } + return lock_buffer; } + + private boolean privilegedLockAndInitHandle(final Canvas canvas) throws LWJGLException { + // Workaround for Sun JDK bug 4796548 which still exists in java for OS X + // We need to elevate priveleges because of an AWT bug. Please see + // http://192.18.37.44/forums/index.php?topic=10572 for a discussion. + // It is only needed on first call, so we avoid it on all subsequent calls + // due to performance. + if (firstLockSucceeded) + return lockAndInitHandle(lock_buffer, canvas); + else + try { + final Object result = AccessController.doPrivileged(new PrivilegedExceptionAction() { + + public Object run() throws LWJGLException { + return Boolean.valueOf(lockAndInitHandle(lock_buffer, canvas)); + } + }); + firstLockSucceeded = ((Boolean) result).booleanValue(); + return firstLockSucceeded; + } catch (PrivilegedActionException e) { + throw (LWJGLException) e.getException(); + } + } + private static native boolean lockAndInitHandle(ByteBuffer lock_buffer, Canvas canvas) throws LWJGLException; protected void unlock() throws LWJGLException { nUnlock(lock_buffer); } + private static native void nUnlock(ByteBuffer lock_buffer) throws LWJGLException; -} +} \ No newline at end of file |
From: Caspian Rychlik-P. <ci...@us...> - 2005-08-20 10:33:39
|
Update of /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6075/src/java/org/lwjgl/util Modified Files: Display.java Log Message: Index: Display.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/util/Display.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- Display.java 4 May 2005 20:59:42 -0000 1.10 +++ Display.java 20 Aug 2005 10:33:28 -0000 1.11 @@ -31,7 +31,6 @@ */ package org.lwjgl.util; -import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; @@ -132,34 +131,49 @@ */ public static DisplayMode setDisplayMode(DisplayMode[] dm, final String[] param) throws Exception { + class FieldAccessor { + final String fieldName; + final int order; + final int preferred; + final boolean usePreferred; + FieldAccessor(String fieldName, int order, int preferred, boolean usePreferred) { + this.fieldName = fieldName; + this.order = order; + this.preferred = preferred; + this.usePreferred = usePreferred; + } + int getInt(DisplayMode mode) { + if ("width".equals(fieldName)) { + return mode.getWidth(); + } + if ("height".equals(fieldName)) { + return mode.getHeight(); + } + if ("freq".equals(fieldName)) { + return mode.getFrequency(); + } + if ("bpp".equals(fieldName)) { + return mode.getBitsPerPixel(); + } + throw new IllegalArgumentException("Unknown field "+fieldName); + } + } class Sorter implements Comparator { - final Field[] field; - final int[] order; - final boolean[] usePreferred; - final int[] preferred; + final FieldAccessor[] field; Sorter() throws NoSuchFieldException { - field = new Field[param.length]; - order = new int[param.length]; - preferred = new int[param.length]; - usePreferred = new boolean[param.length]; + field = new FieldAccessor[param.length]; for (int i = 0; i < field.length; i ++) { int idx = param[i].indexOf('='); if (idx > 0) { - preferred[i] = Integer.parseInt(param[i].substring(idx + 1, param[i].length())); - usePreferred[i] = true; - param[i] = param[i].substring(0, idx); - field[i] = DisplayMode.class.getDeclaredField(param[i]); + field[i] = new FieldAccessor(param[i].substring(0, idx), 0, Integer.parseInt(param[i].substring(idx + 1, param[i].length())), true); } else if (param[i].charAt(0) == '-') { - field[i] = DisplayMode.class.getDeclaredField(param[i].substring(1)); - order[i] = -1; + field[i] = new FieldAccessor(param[i].substring(1), -1, 0, false); } else { - field[i] = DisplayMode.class.getDeclaredField(param[i]); - order[i] = 1; + field[i] = new FieldAccessor(param[i], 1, 0, false); } - field[i].setAccessible(true); } } @@ -171,35 +185,31 @@ DisplayMode dm2 = (DisplayMode) o2; for (int i = 0; i < field.length; i ++) { - try { - int f1 = field[i].getInt(dm1); - int f2 = field[i].getInt(dm2); - - if (usePreferred[i] && f1 != f2) { - if (f1 == preferred[i]) + int f1 = field[i].getInt(dm1); + int f2 = field[i].getInt(dm2); + + if (field[i].usePreferred && f1 != f2) { + if (f1 == field[i].preferred) + return -1; + else if (f2 == field[i].preferred) + return 1; + else { + // Score according to the difference between the values + int absf1 = Math.abs(f1 - field[i].preferred); + int absf2 = Math.abs(f2 - field[i].preferred); + if (absf1 < absf2) return -1; - else if (f2 == preferred[i]) + else if (absf1 > absf2) return 1; - else { - // Score according to the difference between the values - int absf1 = Math.abs(f1 - preferred[i]); - int absf2 = Math.abs(f2 - preferred[i]); - if (absf1 < absf2) - return -1; - else if (absf1 > absf2) - return 1; - else - continue; - } - } else if (f1 < f2) - return order[i]; - else if (f1 == f2) - continue; - else - return -order[i]; - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } + else + continue; + } + } else if (f1 < f2) + return field[i].order; + else if (f1 == f2) + continue; + else + return -field[i].order; } return 0; |
From: Brian M. <ma...@us...> - 2005-08-19 00:19:50
|
Update of /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20545/src/java/org/lwjgl Modified Files: Sys.java Log Message: 0.98 version string Index: Sys.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/Sys.java,v retrieving revision 1.87 retrieving revision 1.88 diff -u -d -r1.87 -r1.88 --- Sys.java 30 May 2005 16:21:03 -0000 1.87 +++ Sys.java 17 Aug 2005 22:05:14 -0000 1.88 @@ -52,7 +52,7 @@ public final class Sys { /** Current version of library */ - public static final String VERSION = "0.97"; + public static final String VERSION = "0.98"; /** The native library name */ private static final String LIBRARY_NAME = "lwjgl"; |
From: Brian M. <ma...@us...> - 2005-08-18 23:14:48
|
Update of /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/fmod3 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20545/src/java/org/lwjgl/fmod3 Modified Files: FMOD.java Log Message: 0.98 version string Index: FMOD.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/fmod3/FMOD.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- FMOD.java 19 May 2005 22:31:20 -0000 1.13 +++ FMOD.java 17 Aug 2005 22:05:15 -0000 1.14 @@ -199,7 +199,7 @@ private static String FMOD_OSX_LIBRARY_NAME = "fmod"; /** Version of FMOD */ - public static final String VERSION = "0.97"; + public static final String VERSION = "0.98"; static { initialize(); |
From: Brian M. <ma...@us...> - 2005-08-18 21:39:40
|
Update of /cvsroot/java-game-lib/LWJGL In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20545 Modified Files: build.xml Log Message: 0.98 version string Index: build.xml =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/build.xml,v retrieving revision 1.84 retrieving revision 1.85 diff -u -d -r1.84 -r1.85 --- build.xml 19 Jul 2005 19:32:13 -0000 1.84 +++ build.xml 17 Aug 2005 22:05:10 -0000 1.85 @@ -13,7 +13,7 @@ <property name="lwjgl.docs" value="./doc" /> <property name="lwjgl.temp" value="./temp" /> <property name="lwjgl.res" value="./res" /> - <property name="lwjgl.version" value="0.97" /> + <property name="lwjgl.version" value="0.98" /> <!-- ================================================================== --> <!-- Filesets used for targets --> |
From: Brian M. <ma...@us...> - 2005-08-18 20:57:59
|
Update of /cvsroot/java-game-lib/LWJGL/src/native/common In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20545/src/native/common Modified Files: common_tools.c Log Message: 0.98 version string Index: common_tools.c =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/common/common_tools.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- common_tools.c 30 May 2005 16:21:05 -0000 1.25 +++ common_tools.c 17 Aug 2005 22:05:12 -0000 1.26 @@ -48,7 +48,7 @@ #include "org_lwjgl_DefaultSysImplementation.h" static bool debug = false; -static const char* VERSION = "0.97"; +static const char* VERSION = "0.98"; static JavaVM *jvm; void initAttribList(attrib_list_t *list) { |
From: Brian M. <ma...@us...> - 2005-08-18 20:09:08
|
Update of /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2534/src/java/org/lwjgl/util Modified Files: WaveData.java Log Message: added everything but the kitchen sink Index: WaveData.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/util/WaveData.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- WaveData.java 29 Mar 2005 18:09:32 -0000 1.2 +++ WaveData.java 18 Aug 2005 11:27:44 -0000 1.3 @@ -34,6 +34,8 @@ import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.IOException; +import java.io.InputStream; +import java.net.URL; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.ShortBuffer; @@ -83,24 +85,51 @@ } /** - * Creates a WaveData container from the specified filename + * Creates a WaveData container from the specified url * - * @param filepath path to file (relative, and in classpath) + * @param path URL to file * @return WaveData containing data, or null if a failure occured */ - public static WaveData create(String filepath) { + public static WaveData create(URL path) { try { return create( AudioSystem.getAudioInputStream( - new BufferedInputStream(WaveData.class.getClassLoader().getResourceAsStream(filepath)))); + new BufferedInputStream(path.openStream()))); } catch (Exception e) { - org.lwjgl.LWJGLUtil.log("Unable to load file: " + filepath); + org.lwjgl.LWJGLUtil.log("Unable to create from: " + path); e.printStackTrace(); return null; } } /** + * Creates a WaveData container from the specified in the classpath + * + * @param path path to file (relative, and in classpath) + * @return WaveData containing data, or null if a failure occured + */ + public static WaveData create(String path) { + return create(WaveData.class.getClassLoader().getResource(path)); + } + + /** + * Creates a WaveData container from the specified inputstream + * + * @param is InputStream to read from + * @return WaveData containing data, or null if a failure occured + */ + public static WaveData create(InputStream is) { + try { + return create( + AudioSystem.getAudioInputStream(is)); + } catch (Exception e) { + org.lwjgl.LWJGLUtil.log("Unable to create from inputstream"); + e.printStackTrace(); + return null; + } + } + + /** * Creates a WaveData container from the specified bytes * * @param buffer array of bytes containing the complete wave file @@ -115,6 +144,31 @@ e.printStackTrace(); return null; } + } + + /** + * Creates a WaveData container from the specified ByetBuffer. + * If the buffer is backed by an array, it will be used directly, + * else the contents of the buffer will be copied using get(byte[]). + * + * @param buffer ByteBuffer containing sound file + * @return WaveData containing data, or null if a failure occured + */ + public static WaveData create(ByteBuffer buffer) { + try { + byte[] bytes = null; + + if(buffer.hasArray()) { + bytes = buffer.array(); + } else { + bytes = new byte[buffer.capacity()]; + buffer.get(bytes); + } + return create(bytes); + } catch (Exception e) { + e.printStackTrace(); + return null; + } } /** |
From: Brian M. <ma...@us...> - 2005-08-18 18:00:29
|
Update of /cvsroot/java-game-lib/LWJGL/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11225/doc Modified Files: README Log Message: updated readme to include jinput Index: README =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/doc/README,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- README 30 Mar 2005 17:44:54 -0000 1.13 +++ README 18 Aug 2005 13:48:43 -0000 1.14 @@ -12,7 +12,7 @@ Extract the archive, and cd into directory (please substitute ; and \ according to platform) - java -cp .;res;jar\lwjgl.jar;jar\lwjgl_test.jar;jar\lwjgl_util.jar;jar\lwjgl_fmod3.jar;jar\lwjgl_devil.jar; -Djava.library.path=native TEST + java -cp .;res;jar\lwjgl.jar;jar\lwjgl_test.jar;jar\lwjgl_util.jar;jar\lwjgl_fmod3.jar;jar\lwjgl_devil.jar;jar\jinput.jar; -Djava.library.path=native TEST (this specifies that the jvm should locate the lwjgl native libs in 'native' directory) where TEST is one of the following: @@ -25,6 +25,7 @@ org.lwjgl.test.input.MouseTest org.lwjgl.test.input.HWCursorTest org.lwjgl.test.input.KeyboardTest + org.lwjgl.test.input.TestControllers org.lwjgl.test.openal.ALCTest org.lwjgl.test.openal.OpenALCreationTest |
From: Brian M. <ma...@us...> - 2005-08-18 17:59:41
|
Update of /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12934/src/java/org/lwjgl/util Modified Files: XPMFile.java Log Message: fixed XPMFile to use InputStream load method too Index: XPMFile.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/util/XPMFile.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- XPMFile.java 16 Jul 2005 10:36:13 -0000 1.2 +++ XPMFile.java 18 Aug 2005 13:55:10 -0000 1.3 @@ -3,9 +3,9 @@ import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; import java.io.InputStreamReader; import java.util.HashMap; import java.util.StringTokenizer; @@ -40,14 +40,24 @@ * * @param file path to file * @return XPMFile loaded, or exception - * @throws FileNotFoundException If file isn't found * @throws IOException If any IO exceptions occurs while reading file */ - public static XPMFile load(String file) throws FileNotFoundException, IOException { + public static XPMFile load(String file) throws IOException { + return load(new FileInputStream(new File(file))); + } + + /** + * Loads the XPM file + * + * @param is InputStream to read file from + * @return XPMFile loaded, or exception + * @throws IOException If any IO exceptions occurs while reading file + */ + public static XPMFile load(InputStream is) throws IOException { XPMFile xFile = new XPMFile(); - xFile.readImage(file); + xFile.readImage(is); return xFile; - } + } /** * @return the height of the image. @@ -73,12 +83,11 @@ /** * Read the image from the specified file. * - * @throws FileNotFoundException If file isn't found * @throws IOException If any IO exceptions occurs while reading file */ - private void readImage(String filename) throws FileNotFoundException, IOException { + private void readImage(InputStream is) throws IOException { try { - BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File(filename)))); + BufferedReader br = new BufferedReader(new InputStreamReader(is)); HashMap colors = new HashMap(); String comment = br.readLine(); |
From: Brian M. <ma...@us...> - 2005-08-18 17:59:41
|
Update of /cvsroot/java-game-lib/LWJGL In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11167 Modified Files: build.xml Log Message: include jinput in release target Index: build.xml =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/build.xml,v retrieving revision 1.85 retrieving revision 1.86 diff -u -d -r1.85 -r1.86 --- build.xml 17 Aug 2005 22:05:10 -0000 1.85 +++ build.xml 18 Aug 2005 13:48:18 -0000 1.86 @@ -94,6 +94,8 @@ <include name="DevIL.dll" /> <include name="ILU.dll" /> <include name="ILUT.dll" /> + + <include name="jinput-dxplugin.dll" /> </patternset> <!-- Files to include in linux, glibc2.3 package --> @@ -106,6 +108,8 @@ <include name="libIL.so" /> <include name="libILU.so" /> <include name="libILUT.so" /> + + <include name="libjinput-linux.so" /> </patternset> <!-- Files to include in mac os x package --> @@ -118,6 +122,8 @@ <include name="libIL.dylib" /> <include name="libILU.dylib" /> <include name="libILUT.dylib" /> + + <include name="libjinput.jnilib" /> </patternset> <!-- Files to include in source distribution --> @@ -264,6 +270,7 @@ <delete> <fileset dir="${lwjgl.temp}/native/" includes="**/*"/> </delete> + <copy file="${lwjgl.lib}/jinput.jar" todir="${lwjgl.temp}/jar"/> <copy todir="${lwjgl.temp}/native"> <fileset dir="${lwjgl.lib}/win32"> <patternset refid="lwjgl-win32.fileset" /> @@ -278,7 +285,8 @@ <target name="-distribute_linux"> <delete> <fileset dir="${lwjgl.temp}/native/" includes="**/*"/> - </delete> + </delete> + <copy file="${lwjgl.lib}/jinput.jar" todir="${lwjgl.temp}/jar"/> <copy todir="${lwjgl.temp}/native"> <fileset dir="${lwjgl.lib}/linux"> <patternset refid="lwjgl-linux.fileset" /> @@ -293,7 +301,8 @@ <target name="-distribute_macosx"> <delete> <fileset dir="${lwjgl.temp}/native/" includes="**/*"/> - </delete> + </delete> + <copy file="${lwjgl.lib}/jinput.jar" todir="${lwjgl.temp}/jar"/> <copy todir="${lwjgl.temp}/native"> <fileset dir="${lwjgl.lib}/macosx"> <patternset refid="lwjgl-macosx.fileset" /> @@ -720,15 +729,16 @@ <!-- sign 'em --> <input message="Please enter store password:" addproperty="store.pwd" /> - <signjar jar="${lwjgl.temp}/jnlp/lwjgl.jar" alias="matzon" storepass="${store.pwd}"/> + <signjar jar="${lwjgl.temp}/jnlp/lwjgl.jar" alias="matzon" storepass="${store.pwd}"/> <signjar jar="${lwjgl.temp}/jnlp/lwjgl_devil.jar" alias="matzon" storepass="${store.pwd}"/> <signjar jar="${lwjgl.temp}/jnlp/lwjgl_fmod3.jar" alias="matzon" storepass="${store.pwd}"/> - <signjar jar="${lwjgl.temp}/jnlp/lwjgl_test.jar" alias="matzon" storepass="${store.pwd}"/> - <signjar jar="${lwjgl.temp}/jnlp/lwjgl_util.jar" alias="matzon" storepass="${store.pwd}"/> - <signjar jar="${lwjgl.temp}/jnlp/media.jar" alias="matzon" storepass="${store.pwd}"/> + <signjar jar="${lwjgl.temp}/jnlp/lwjgl_test.jar" alias="matzon" storepass="${store.pwd}"/> + <signjar jar="${lwjgl.temp}/jnlp/lwjgl_util.jar" alias="matzon" storepass="${store.pwd}"/> + <signjar jar="${lwjgl.temp}/jnlp/media.jar" alias="matzon" storepass="${store.pwd}"/> <signjar jar="${lwjgl.temp}/jnlp/native_linux.jar" alias="matzon" storepass="${store.pwd}"/> <signjar jar="${lwjgl.temp}/jnlp/native_macosx.jar" alias="matzon" storepass="${store.pwd}"/> <signjar jar="${lwjgl.temp}/jnlp/native_win32.jar" alias="matzon" storepass="${store.pwd}"/> + <signjar jar="${lwjgl.temp}/jnlp/jinput.jar" alias="matzon" storepass="${store.pwd}"/> </target> <target name="changelog"> |
From: Brian M. <ma...@us...> - 2005-08-18 17:59:39
|
Update of /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12934/src/java/org/lwjgl/test Modified Files: WindowCreationTest.java Log Message: fixed XPMFile to use InputStream load method too Index: WindowCreationTest.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/test/WindowCreationTest.java,v retrieving revision 1.35 retrieving revision 1.36 diff -u -d -r1.35 -r1.36 --- WindowCreationTest.java 16 Jul 2005 10:37:00 -0000 1.35 +++ WindowCreationTest.java 18 Aug 2005 13:55:10 -0000 1.36 @@ -31,9 +31,8 @@ */ package org.lwjgl.test; -import java.io.File; -import java.nio.ByteBuffer; import java.io.IOException; +import java.nio.ByteBuffer; import org.lwjgl.BufferUtils; import org.lwjgl.LWJGLException; @@ -97,9 +96,8 @@ window_x = window_y = 100; Display.setLocation(window_x, window_y); - File file = new File(new File("res"), "lwjgl_16x16.xpm"); ByteBuffer size16 = BufferUtils.createByteBuffer(16 * 16 * 4); - XPMFile xpm = XPMFile.load(file.getAbsolutePath()); + XPMFile xpm = XPMFile.load(WindowCreationTest.class.getClassLoader().getResourceAsStream("lwjgl_16x16.xpm")); size16.put(xpm.getBytes()); size16.flip(); @@ -111,9 +109,8 @@ // } // size16.flip(); - file = new File(new File("res"), "lwjgl_32x32.xpm"); ByteBuffer size32 = BufferUtils.createByteBuffer(32 * 32 * 4); - xpm = XPMFile.load(file.getAbsolutePath()); + xpm = XPMFile.load(WindowCreationTest.class.getClassLoader().getResourceAsStream("lwjgl_32x32.xpm")); size32.put(xpm.getBytes()); size32.flip(); |
From: Brian M. <in...@lw...> - 2005-08-18 17:59:34
|
*tap* *tap* is this microphone on ? |
From: Elias N. <eli...@us...> - 2005-08-08 16:00:23
|
Update of /cvsroot/java-game-lib/LWJGL/src/native/win32 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11280/src/native/win32 Modified Files: extgl_wgl.c org_lwjgl_opengl_Win32ContextImplementation.c Log Message: Win32: Fixed SIS/VIA crashes Index: extgl_wgl.c =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/win32/extgl_wgl.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- extgl_wgl.c 24 Feb 2005 13:24:08 -0000 1.7 +++ extgl_wgl.c 8 Aug 2005 16:00:15 -0000 1.8 @@ -74,8 +74,8 @@ static bool WGLQueryExtension(WGLExtensions *extensions, const char *name) { const GLubyte *extension_string; - if (extensions->wglGetExtensionsStringARB == NULL) - if (extensions->wglGetExtensionsStringEXT == NULL) + if (!extensions->WGL_ARB_extensions_string) + if (!extensions->WGL_EXT_extensions_string) return false; else extension_string = (GLubyte*)extensions->wglGetExtensionsStringEXT(); Index: org_lwjgl_opengl_Win32ContextImplementation.c =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/win32/org_lwjgl_opengl_Win32ContextImplementation.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- org_lwjgl_opengl_Win32ContextImplementation.c 12 May 2005 07:47:07 -0000 1.3 +++ org_lwjgl_opengl_Win32ContextImplementation.c 8 Aug 2005 16:00:15 -0000 1.4 @@ -58,7 +58,6 @@ HGLRC saved_context; WGLExtensions extensions; jobject context_handle = newJavaManagedByteBuffer(env, sizeof(Win32Context)); - if (context_handle == NULL) { throwException(env, "Could not create handle buffer"); return NULL; |
From: Elias N. <eli...@us...> - 2005-08-07 12:19:18
|
Update of /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/opengl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28192/src/java/org/lwjgl/opengl Modified Files: Context.java GLContext.java Log Message: Added fast path to GLContext.getCapabilities() optimized for single threaded applications Index: Context.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/opengl/Context.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Context.java 9 Apr 2005 17:35:37 -0000 1.5 +++ Context.java 7 Aug 2005 12:19:09 -0000 1.6 @@ -166,7 +166,7 @@ private void checkAccess() { if (!canAccess()) - throw new IllegalStateException("From thread " + Thread.currentThread() + ": " +thread + " already has the context current"); + throw new IllegalStateException("From thread " + Thread.currentThread() + ": " + thread + " already has the context current"); } /** Index: GLContext.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/opengl/GLContext.java,v retrieving revision 1.51 retrieving revision 1.52 diff -u -d -r1.51 -r1.52 --- GLContext.java 30 May 2005 16:21:04 -0000 1.51 +++ GLContext.java 7 Aug 2005 12:19:09 -0000 1.52 @@ -62,10 +62,50 @@ * @version $Revision$ */ public final class GLContext { + /** + * Maps threads to their current context's ContextCapabilities, if any + */ private final static ThreadLocal current_capabilities = new ThreadLocal(); + + /** + * The getCapabilities() method is a potential hot spot in any LWJGL application, since + * it is needed for context capability discovery (e.g. is OpenGL 2.0 supported?), and + * for the function pointers of gl functions. However, the 'current_capabilities' ThreadLocal + * is (relatively) expensive to look up, and since most OpenGL applications use are single threaded + * rendering, the following two is an optimization for this case. + * + * ThreadLocals can be thought of as a mapping between threads and values, so the idea + * is to use a lock-less cache of mappings between threads and the current ContextCapabilities. The cache + * could be any size, but in our case, we want a single sized cache for optimal performance + * in the single threaded case. + * + * 'fast_path_cache' is the most recent ContextCapabilities (potentially null) and its owner. By + * recent I mean the last thread setting the value in setCapabilities(). When getCapabilities() + * is called, a check to see if the current is the owner of the ContextCapabilities instance inf + * fast_path_cache. If so, the instance is returned, if not, some thread has since taken ownership + * of the cache entry and the slower current_capabilities ThreadLocal is queried instead. + * + * No locks are needed in get/setCapabilities, because even though fast_path_cache can be accessed + * from multiple threads at once, we are guaranteed by the JVM spec that its value is always valid. + * Furthermore, if the ownership test in getCapabilities() succeeds, the cache entry can only contain + * the correct ContextCapabilites (that is, the one from getThreadLocalCapabilites()), + * since no other thread can sets the owner to anyone else than itself. + */ + private static CapabilitiesCacheEntry fast_path_cache = new CapabilitiesCacheEntry(); + + /** + * Simple lock-free cache of CapabilitesEntryCache to avoid allocating more than one + * cache entry per thread + */ + private final static ThreadLocal thread_cache_entries = new ThreadLocal(); + + /** + * The weak mapping from context Object instances to ContextCapabilities. Used + * to avoid recreating a ContextCapabilities every time a context is made current. + */ private final static Map capability_cache = new WeakHashMap(); - /** Map of classes that have native stubs loaded */ + /** Reference count of the native opengl implementation library */ private static int gl_ref_count; private static boolean did_auto_load; @@ -80,9 +120,21 @@ * @return The current capabilities instance. */ public static ContextCapabilities getCapabilities() { - return ((ContextCapabilities)current_capabilities.get()); + CapabilitiesCacheEntry recent_cache_entry = fast_path_cache; + // Check owner of cache entry + if (recent_cache_entry.owner == Thread.currentThread()) { + /* The owner ship test succeeded, so the cache must contain the current ContextCapabilities instance + * assert recent_cache_entry.capabilities == getThreadLocalCapabilities(); + */ + return recent_cache_entry.capabilities; + } else // Some other thread has written to the cache since, and we fall back to the slower path + return getThreadLocalCapabilities(); } + private static ContextCapabilities getThreadLocalCapabilities() { + return ((ContextCapabilities)current_capabilities.get()); + } + /** * Set the current capabilities instance. It contains the flags used * to test for support of a particular extension. @@ -91,6 +143,16 @@ */ static void setCapabilities(ContextCapabilities capabilities) { current_capabilities.set(capabilities); + + CapabilitiesCacheEntry thread_cache_entry = (CapabilitiesCacheEntry)thread_cache_entries.get(); + if (thread_cache_entry == null) { + thread_cache_entry = new CapabilitiesCacheEntry(); + thread_cache_entries.set(thread_cache_entry); + } + thread_cache_entry.owner = Thread.currentThread(); + thread_cache_entry.capabilities = capabilities; + + fast_path_cache = thread_cache_entry; } /** @@ -260,4 +322,9 @@ /** Native method to clear native stub bindings */ static native void resetNativeStubs(Class clazz); + + private final static class CapabilitiesCacheEntry { + Thread owner; + ContextCapabilities capabilities; + } } |