|
From: Elias N. <eli...@us...> - 2005-04-27 20:30:40
|
Update of /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/opengl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5775/src/java/org/lwjgl/opengl Modified Files: AWTSurfaceLock.java Log Message: Moved AWTSurfaceLock retry-loop to java to avoid non-standard sleep functions Index: AWTSurfaceLock.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/opengl/AWTSurfaceLock.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- AWTSurfaceLock.java 21 Feb 2005 14:46:42 -0000 1.2 +++ AWTSurfaceLock.java 27 Apr 2005 20:30:13 -0000 1.3 @@ -35,6 +35,7 @@ import org.lwjgl.BufferUtils; import org.lwjgl.LWJGLException; +import org.lwjgl.LWJGLUtil; import org.lwjgl.Sys; import java.awt.Canvas; @@ -46,6 +47,8 @@ * @version $Revision$ */ final class AWTSurfaceLock { + private final static int WAIT_DELAY_MILLIS = 100; + private final ByteBuffer lock_buffer; public AWTSurfaceLock() { @@ -54,10 +57,17 @@ private static native ByteBuffer createHandle(); public ByteBuffer lockAndGetHandle(Canvas canvas) throws LWJGLException { - lockAndInitHandle(lock_buffer, canvas); + while (!lockAndInitHandle(lock_buffer, canvas)) { + LWJGLUtil.log("Could not get drawing surface info, retrying..."); + try { + Thread.sleep(WAIT_DELAY_MILLIS); + } catch (InterruptedException e) { + LWJGLUtil.log("Interrupted while retrying: " + e); + } + } return lock_buffer; } - private static native void lockAndInitHandle(ByteBuffer lock_buffer, Canvas canvas) throws LWJGLException; + private static native boolean lockAndInitHandle(ByteBuffer lock_buffer, Canvas canvas) throws LWJGLException; protected void unlock() throws LWJGLException { nUnlock(lock_buffer); |