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
(1) |
3
|
4
|
5
|
6
(1) |
|
7
|
8
(3) |
9
|
10
(2) |
11
|
12
|
13
(3) |
|
14
(2) |
15
(1) |
16
(1) |
17
|
18
(2) |
19
|
20
(2) |
|
21
|
22
|
23
|
24
(1) |
25
|
26
|
27
(1) |
|
28
|
29
(4) |
30
|
31
(1) |
|
|
|
|
From: <ka...@us...> - 2011-08-29 21:31:30
|
Revision: 3626
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3626&view=rev
Author: kappa1
Date: 2011-08-29 21:31:23 +0000 (Mon, 29 Aug 2011)
Log Message:
-----------
Linux Display - create native Display window at the correct position on linux.
Modified Paths:
--------------
trunk/LWJGL/src/native/linux/opengl/org_lwjgl_opengl_Display.c
trunk/LWJGL/src/native/linux/opengles/org_lwjgl_opengl_Display.c
Modified: trunk/LWJGL/src/native/linux/opengl/org_lwjgl_opengl_Display.c
===================================================================
--- trunk/LWJGL/src/native/linux/opengl/org_lwjgl_opengl_Display.c 2011-08-29 13:34:17 UTC (rev 3625)
+++ trunk/LWJGL/src/native/linux/opengl/org_lwjgl_opengl_Display.c 2011-08-29 21:31:23 UTC (rev 3626)
@@ -334,15 +334,17 @@
// Use Motif decoration hint property and hope the window manager respects them
setDecorations(disp, win, 0);
}
- XSizeHints * size_hints = XAllocSizeHints();
- size_hints->flags = PMinSize | PMaxSize;
- size_hints->min_width = width;
- size_hints->max_width = width;
- size_hints->min_height = height;
- size_hints->max_height = height;
- XSetWMNormalHints(disp, win, size_hints);
+ XSizeHints * window_hints = XAllocSizeHints();
+ window_hints->flags = PPosition | PMinSize | PMaxSize;
+ window_hints->x = x;
+ window_hints->y = y;
+ window_hints->min_width = width;
+ window_hints->max_width = width;
+ window_hints->min_height = height;
+ window_hints->max_height = height;
+ XSetWMNormalHints(disp, win, window_hints);
updateWindowHints(env, disp, win);
- XFree(size_hints);
+ XFree(window_hints);
#define NUM_ATOMS 1
Atom protocol_atoms[NUM_ATOMS] = {XInternAtom(disp, "WM_DELETE_WINDOW", False)/*, XInternAtom(disp, "WM_TAKE_FOCUS", False)*/};
XSetWMProtocols(disp, win, protocol_atoms, NUM_ATOMS);
Modified: trunk/LWJGL/src/native/linux/opengles/org_lwjgl_opengl_Display.c
===================================================================
--- trunk/LWJGL/src/native/linux/opengles/org_lwjgl_opengl_Display.c 2011-08-29 13:34:17 UTC (rev 3625)
+++ trunk/LWJGL/src/native/linux/opengles/org_lwjgl_opengl_Display.c 2011-08-29 21:31:23 UTC (rev 3626)
@@ -328,15 +328,17 @@
// Use Motif decoration hint property and hope the window manager respects them
setDecorations(disp, win, 0);
}
- XSizeHints * size_hints = XAllocSizeHints();
- size_hints->flags = PMinSize | PMaxSize;
- size_hints->min_width = width;
- size_hints->max_width = width;
- size_hints->min_height = height;
- size_hints->max_height = height;
- XSetWMNormalHints(disp, win, size_hints);
+ XSizeHints * window_hints = XAllocSizeHints();
+ window_hints->flags = PPosition | PMinSize | PMaxSize;
+ window_hints->x = x;
+ window_hints->y = y;
+ window_hints->min_width = width;
+ window_hints->max_width = width;
+ window_hints->min_height = height;
+ window_hints->max_height = height;
+ XSetWMNormalHints(disp, win, window_hints);
updateWindowHints(env, disp, win);
- XFree(size_hints);
+ XFree(window_hints);
#define NUM_ATOMS 1
Atom protocol_atoms[NUM_ATOMS] = {XInternAtom(disp, "WM_DELETE_WINDOW", False)/*, XInternAtom(disp, "WM_TAKE_FOCUS", False)*/};
XSetWMProtocols(disp, win, protocol_atoms, NUM_ATOMS);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ka...@us...> - 2011-08-29 13:34:24
|
Revision: 3625
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3625&view=rev
Author: kappa1
Date: 2011-08-29 13:34:17 +0000 (Mon, 29 Aug 2011)
Log Message:
-----------
apply patch to enable applets on OS X using the java plugin2, credits to pjohnson for creating patch.
Modified Paths:
--------------
trunk/LWJGL/platform_build/macosx_ant/build.xml
trunk/LWJGL/src/java/org/lwjgl/opengl/AWTSurfaceLock.java
trunk/LWJGL/src/native/common/org_lwjgl_opengl_AWTSurfaceLock.c
trunk/LWJGL/src/native/macosx/context.h
trunk/LWJGL/src/native/macosx/org_lwjgl_opengl_MacOSXCanvasPeerInfo.m
trunk/LWJGL/src/native/macosx/org_lwjgl_opengl_MacOSXContextImplementation.m
Modified: trunk/LWJGL/platform_build/macosx_ant/build.xml
===================================================================
--- trunk/LWJGL/platform_build/macosx_ant/build.xml 2011-08-29 00:54:54 UTC (rev 3624)
+++ trunk/LWJGL/platform_build/macosx_ant/build.xml 2011-08-29 13:34:17 UTC (rev 3625)
@@ -7,7 +7,7 @@
<mkdir dir="i386"/>
<mkdir dir="x86_64"/>
</target>
-
+
<target name="clean">
<delete failonerror="false">
<fileset dir="i386"/>
@@ -20,22 +20,19 @@
<target name="compile">
<apply dir="${dstdir}" executable="${compiler}" os="Mac OS X" skipemptyfilesets="true" failonerror="true" dest="${dstdir}">
- <arg line="${cflags} -ObjC -O2 -Wall -Wunused -c -fPIC -I${sdkroot}/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers -I${sdkroot}/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaNativeFoundation.framework/Headers -I${native}/common -I${native}/common/opengl -I${native}/macosx"/>
+ <arg line="${cflags} -ObjC -O2 -Wall -Wunused -c -fPIC -I/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers -I${native}/common -I${native}/macosx -I/System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaNativeFoundation.framework/Versions/A/Headers"/>
<!-- Map from *.m and *.c to .o -->
<mapper type="regexp" from="^(.*)\.(c|m)" to="\1.o"/>
<fileset dir="${native}/macosx" includes="*.m"/>
<fileset dir="${native}/macosx" includes="*.c"/>
<fileset dir="${native}/common" includes="*.c"/>
- <fileset dir="${native}/common/opengl" includes="*.c"/>
- <fileset dir="${native}/generated/openal" includes="*.c"/>
- <fileset dir="${native}/generated/opencl" includes="*.c"/>
- <fileset dir="${native}/generated/opengl" includes="*.c"/>
+ <fileset dir="${native}/generated" includes="*.c"/>
</apply>
</target>
-
+
<target name="link">
<apply dir="${objdir}" parallel="true" executable="${linker}" os="Mac OS X" failonerror="true" skipemptyfilesets="true">
- <arg line="${linkerflags} -exported_symbols_list ../lwjgl.symbols -dynamiclib -o ${libname} -framework Foundation -framework AppKit -framework JavaVM -framework Carbon -framework OpenGL"/>
+ <arg line="${linkerflags} -exported_symbols_list ../lwjgl.symbols -dynamiclib -o ${libname} -framework Foundation -framework AppKit -framework JavaVM -framework Carbon -framework OpenGL -framework JavaNativeFoundation -F/System/Library/Frameworks/JavaVM.framework/Frameworks"/>
<fileset dir="${objdir}" includes="*.o"/>
</apply>
<apply dir="${objdir}" executable="strip" os="Mac OS X" failonerror="true">
@@ -43,7 +40,7 @@
<fileset dir="." file="${libname}"/>
</apply>
</target>
-
+
<target name="nativelibrary" depends="init">
<property name="universal_sdkroot" location="/Developer/SDKs/MacOSX10.6.sdk"/>
<property name="ppc_sdkroot" location="/Developer/SDKs/MacOSX10.6.sdk"/>
@@ -52,19 +49,19 @@
<property name="ppc_flags" value="-isysroot ${ppc_sdkroot}"/>
<antcall target="compile">
<param name="dstdir" location="ppc"/>
- <param name="compiler" value="gcc-4.0"/>
+ <param name="compiler" value="gcc-4.2"/>
<param name="sdkroot" location="${ppc_sdkroot}"/>
<param name="cflags" value="${universal_flags} -arch ppc -mmacosx-version-min=10.3"/>
</antcall>
<antcall target="compile">
<param name="dstdir" location="i386"/>
- <param name="compiler" value="gcc-4.0"/>
+ <param name="compiler" value="gcc-4.2"/>
<param name="sdkroot" location="${universal_sdkroot}"/>
<param name="cflags" value="${universal_flags} -arch i386 -mmacosx-version-min=10.4"/>
</antcall>
<antcall target="compile">
<param name="dstdir" location="x86_64"/>
- <param name="compiler" value="gcc-4.0"/>
+ <param name="compiler" value="gcc-4.2"/>
<param name="sdkroot" location="${universal_sdkroot}"/>
<param name="cflags" value="-isysroot ${x86_64_sdkroot} -arch x86_64 -mmacosx-version-min=10.5"/>
</antcall>
@@ -75,19 +72,19 @@
<antcall target="link">
<param name="objdir" location="ppc"/>
<param name="libname" value="liblwjgl-ppc.jnilib"/>
- <param name="linker" value="gcc-4.0"/>
+ <param name="linker" value="gcc-4.2"/>
<param name="linkerflags" value="${universal_flags} -arch ppc -mmacosx-version-min=10.3"/>
</antcall>
<antcall target="link">
<param name="objdir" location="i386"/>
<param name="libname" value="liblwjgl-i386.jnilib"/>
- <param name="linker" value="gcc-4.0"/>
+ <param name="linker" value="gcc-4.2"/>
<param name="linkerflags" value="${universal_flags} -arch i386 -mmacosx-version-min=10.4"/>
</antcall>
<antcall target="link">
<param name="objdir" location="x86_64"/>
<param name="libname" value="liblwjgl-i86_64.jnilib"/>
- <param name="linker" value="gcc-4.0"/>
+ <param name="linker" value="gcc-4.2"/>
<param name="linkerflags" value="-isysroot ${x86_64_sdkroot} -arch x86_64 -mmacosx-version-min=10.5"/>
</antcall>
<apply dir="." parallel="true" executable="lipo" os="Mac OS X" failonerror="true" skipemptyfilesets="true" >
Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/AWTSurfaceLock.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/opengl/AWTSurfaceLock.java 2011-08-29 00:54:54 UTC (rev 3624)
+++ trunk/LWJGL/src/java/org/lwjgl/opengl/AWTSurfaceLock.java 2011-08-29 13:34:17 UTC (rev 3625)
@@ -78,14 +78,15 @@
// We need to elevate privileges 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.
+ // due to performance..
+ final Canvas parent = component instanceof AWTGLCanvas ? component : Display.getParent();
if (firstLockSucceeded)
- return lockAndInitHandle(lock_buffer, component);
+ return lockAndInitHandle(lock_buffer, component, parent);
else
try {
firstLockSucceeded = AccessController.doPrivileged(new PrivilegedExceptionAction<Boolean>() {
public Boolean run() throws LWJGLException {
- return lockAndInitHandle(lock_buffer, component);
+ return lockAndInitHandle(lock_buffer, component, parent);
}
});
return firstLockSucceeded;
@@ -94,7 +95,7 @@
}
}
- private static native boolean lockAndInitHandle(ByteBuffer lock_buffer, Canvas component) throws LWJGLException;
+ private static native boolean lockAndInitHandle(ByteBuffer lock_buffer, Canvas component, Canvas display_parent) throws LWJGLException;
void unlock() throws LWJGLException {
nUnlock(lock_buffer);
Modified: trunk/LWJGL/src/native/common/org_lwjgl_opengl_AWTSurfaceLock.c
===================================================================
--- trunk/LWJGL/src/native/common/org_lwjgl_opengl_AWTSurfaceLock.c 2011-08-29 00:54:54 UTC (rev 3624)
+++ trunk/LWJGL/src/native/common/org_lwjgl_opengl_AWTSurfaceLock.c 2011-08-29 13:34:17 UTC (rev 3625)
@@ -49,15 +49,29 @@
}
JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_AWTSurfaceLock_lockAndInitHandle
- (JNIEnv *env, jclass clazz, jobject lock_buffer_handle, jobject canvas) {
+ (JNIEnv *env, jclass clazz, jobject lock_buffer_handle, jobject canvas, jobject display_parent) {
JAWT awt;
JAWT_DrawingSurface* ds;
JAWT_DrawingSurfaceInfo *dsi;
AWTSurfaceLock *awt_lock = (AWTSurfaceLock *)(*env)->GetDirectBufferAddress(env, lock_buffer_handle);
- awt.version = JAWT_VERSION_1_4;
- if (JAWT_GetAWT(env, &awt) == JNI_FALSE) {
- throwException(env, "Could not get the JAWT interface");
- return JNI_FALSE;
+
+ jboolean result = JNI_FALSE;
+
+ #ifdef __MACH__
+ if (display_parent) {
+ //first try CALAYER
+ awt.version = JAWT_VERSION_1_4 | JAWT_MACOSX_USE_CALAYER;
+ result = JAWT_GetAWT(env, &awt);
+ }
+ #endif
+
+ if (result == JNI_FALSE) {
+ // now try without CALAYER
+ awt.version = JAWT_VERSION_1_4;
+ if (JAWT_GetAWT(env, &awt) == JNI_FALSE) {
+ throwException(env, "Could not get the JAWT interface");
+ return JNI_FALSE;
+ }
}
ds = awt.GetDrawingSurface(env, canvas);
Modified: trunk/LWJGL/src/native/macosx/context.h
===================================================================
--- trunk/LWJGL/src/native/macosx/context.h 2011-08-29 00:54:54 UTC (rev 3624)
+++ trunk/LWJGL/src/native/macosx/context.h 2011-08-29 13:34:17 UTC (rev 3625)
@@ -50,6 +50,7 @@
typedef struct {
NSOpenGLPixelFormat *pixel_format;
bool window;
+ bool canDrawGL;
union {
NSView *nsview;
NSOpenGLPixelBuffer *pbuffer;
Modified: trunk/LWJGL/src/native/macosx/org_lwjgl_opengl_MacOSXCanvasPeerInfo.m
===================================================================
--- trunk/LWJGL/src/native/macosx/org_lwjgl_opengl_MacOSXCanvasPeerInfo.m 2011-08-29 00:54:54 UTC (rev 3624)
+++ trunk/LWJGL/src/native/macosx/org_lwjgl_opengl_MacOSXCanvasPeerInfo.m 2011-08-29 13:34:17 UTC (rev 3625)
@@ -37,6 +37,9 @@
* @version $Revision$
*/
+#import <Cocoa/Cocoa.h>
+#import <JavaNativeFoundation.h>
+
#include <jni.h>
#include <jawt_md.h>
#include "awt_tools.h"
@@ -44,13 +47,147 @@
#include "context.h"
#include "common_tools.h"
+// forward declaration
+@interface PBufferGLLayer : NSOpenGLLayer {
+ MacOSXPeerInfo *peer_info;
+ GLuint textureID;
+ BOOL canDraw;
+}
+
+@property (nonatomic) MacOSXPeerInfo *peer_info;
+@property (nonatomic) GLuint textureID;
+@end
+
+
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_MacOSXCanvasPeerInfo_nInitHandle
- (JNIEnv *env, jclass clazz, jobject lock_buffer_handle, jobject peer_info_handle) {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+(JNIEnv *env, jclass clazz, jobject lock_buffer_handle, jobject peer_info_handle) {
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+
MacOSXPeerInfo *peer_info = (MacOSXPeerInfo *)(*env)->GetDirectBufferAddress(env, peer_info_handle);
AWTSurfaceLock *surface = (AWTSurfaceLock *)(*env)->GetDirectBufferAddress(env, lock_buffer_handle);
JAWT_MacOSXDrawingSurfaceInfo *macosx_dsi = (JAWT_MacOSXDrawingSurfaceInfo *)surface->dsi->platformInfo;
- peer_info->nsview = macosx_dsi->cocoaViewRef;
- peer_info->window = true;
+
+ // check for CALayer support
+ if(surface->awt.version & JAWT_MACOSX_USE_CALAYER) {
+ jint width = surface->dsi->bounds.width;
+ jint height = surface->dsi->bounds.height;
+
+ if(peer_info->pbuffer == NULL ||
+ width != [peer_info->pbuffer pixelsWide] || height != [peer_info->pbuffer pixelsHigh]) {
+ if(peer_info->pbuffer != NULL) {
+ [peer_info->pbuffer release];
+ }
+
+ // make pbuffer
+ NSOpenGLPixelBuffer *pbuffer = nil;
+ NSLog(@"Make pbuffer: %d x %d", width, height);
+ pbuffer = [[NSOpenGLPixelBuffer alloc] initWithTextureTarget:GL_TEXTURE_RECTANGLE_EXT
+ textureInternalFormat:GL_RGBA
+ textureMaxMipMapLevel:0
+ pixelsWide:width
+ pixelsHigh:height];
+
+ peer_info->pbuffer = pbuffer;
+ peer_info->window = false;
+ peer_info->canDrawGL = true;
+ }
+
+ if (macosx_dsi != NULL) {
+ [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){
+ // attach the "root layer" to the AWT Canvas surface layers
+ id <JAWT_SurfaceLayers> surfaceLayers = (id <JAWT_SurfaceLayers>)macosx_dsi;//dsi->platformInfo;
+ if(surfaceLayers.layer == NULL) {
+ PBufferGLLayer *caGLLayer = [[PBufferGLLayer new] autorelease];
+ caGLLayer.peer_info = peer_info;
+ caGLLayer.asynchronous = YES;
+ caGLLayer.needsDisplayOnBoundsChange = YES;
+ caGLLayer.opaque = YES;
+ surfaceLayers.layer = caGLLayer;
+ }
+ }];
+ }
+ } else {
+ peer_info->nsview = macosx_dsi->cocoaViewRef;
+ peer_info->window = true;
+ }
+
[pool release];
}
+
+// rotates a red square when asked to draw
+@implementation PBufferGLLayer
+
+@synthesize peer_info;
+@synthesize textureID;
+
+// override to draw custom GL content
+-(void)drawInCGLContext:(CGLContextObj)glContext
+ pixelFormat:(CGLPixelFormatObj)pixelFormat
+ forLayerTime:(CFTimeInterval)timeInterval
+ displayTime:(const CVTimeStamp *)timeStamp {
+
+ if(!peer_info || !peer_info->pbuffer) {
+ return;
+ }
+
+ peer_info->canDrawGL = false;
+
+ NSOpenGLPixelBuffer *pbuffer = self.peer_info->pbuffer;
+
+ // set the current context
+ CGLSetCurrentContext(glContext);
+
+ GLsizei width = [pbuffer pixelsWide];
+ GLsizei height = [pbuffer pixelsHigh];
+
+ if(textureID == 0) {
+ glGenTextures(1, &textureID);
+ }
+ glBindTexture(GL_TEXTURE_RECTANGLE_EXT, self.textureID);
+ CGLTexImagePBuffer(glContext,[pbuffer CGLPBufferObj], GL_FRONT);
+
+ glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+
+ glEnable(GL_TEXTURE_RECTANGLE_EXT);
+
+ static GLfloat verts[] = {
+ -1.0, -1.0,
+ -1.0, 1.0,
+ 1.0, 1.0,
+ 1.0, -1.0
+ };
+
+ GLfloat tex[] = {
+ 0.0, 0.0,
+ 0.0, height,
+ width, height,
+ width, 0.0
+ };
+
+ glEnableClientState(GL_VERTEX_ARRAY);
+ glEnableClientState(GL_TEXTURE_COORD_ARRAY);
+ glVertexPointer(2, GL_FLOAT, 0, verts);
+ glTexCoordPointer(2, GL_FLOAT, 0, tex);
+
+ glDrawArrays(GL_QUADS, 0, 4);
+
+ glDisableClientState(GL_VERTEX_ARRAY);
+ glDisableClientState(GL_TEXTURE_COORD_ARRAY);
+
+ glDisable(GL_TEXTURE_RECTANGLE_EXT);
+
+ // call super to finalize the drawing - by default all it does is call glFlush()
+ [super drawInCGLContext:glContext pixelFormat:pixelFormat forLayerTime:timeInterval displayTime:timeStamp];
+}
+
+-(BOOL)canDrawInCGLContext:(CGLContextObj)glContext
+ pixelFormat:(CGLPixelFormatObj)pixelFormat
+ forLayerTime:(CFTimeInterval)timeInterval
+ displayTime:(const CVTimeStamp *)timeStamp {
+ return peer_info->canDrawGL ? YES : NO;
+}
+
+@end
\ No newline at end of file
Modified: trunk/LWJGL/src/native/macosx/org_lwjgl_opengl_MacOSXContextImplementation.m
===================================================================
--- trunk/LWJGL/src/native/macosx/org_lwjgl_opengl_MacOSXContextImplementation.m 2011-08-29 00:54:54 UTC (rev 3624)
+++ trunk/LWJGL/src/native/macosx/org_lwjgl_opengl_MacOSXContextImplementation.m 2011-08-29 13:34:17 UTC (rev 3625)
@@ -45,6 +45,7 @@
typedef struct {
NSOpenGLContext *context;
+ MacOSXPeerInfo *peer_info;
} MacOSXContext;
JNIEXPORT jobject JNICALL Java_org_lwjgl_opengl_MacOSXContextImplementation_nCreate
@@ -72,6 +73,7 @@
}
context_info = (MacOSXContext *)(*env)->GetDirectBufferAddress(env, context_handle);
context_info->context = context;
+ context_info->peer_info = peer_info;
[pool release];
return context_handle;
}
@@ -79,8 +81,9 @@
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_MacOSXContextImplementation_nSwapBuffers
(JNIEnv *env, jclass clazz, jobject context_handle) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- MacOSXContext *peer_info = (MacOSXContext *)(*env)->GetDirectBufferAddress(env, context_handle);
- [peer_info->context flushBuffer];
+ MacOSXContext *context_info = (MacOSXContext *)(*env)->GetDirectBufferAddress(env, context_handle);
+ [context_info->context flushBuffer];
+ context_info->peer_info->canDrawGL = true;
[pool release];
}
@@ -90,6 +93,7 @@
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
MacOSXContext *context_info = (MacOSXContext *)(*env)->GetDirectBufferAddress(env, context_handle);
[context_info->context update];
+ context_info->peer_info->canDrawGL = true;
[pool release];
}
@@ -118,6 +122,7 @@
} else {
[context_info->context setPixelBuffer:peer_info->pbuffer cubeMapFace:0 mipMapLevel:0 currentVirtualScreen:0];
}
+ peer_info->canDrawGL = true;
[pool release];
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ka...@us...> - 2011-08-29 00:55:01
|
Revision: 3624
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3624&view=rev
Author: kappa1
Date: 2011-08-29 00:54:54 +0000 (Mon, 29 Aug 2011)
Log Message:
-----------
AppletLoader: somehow removed patch 3559 with last appletloader patch, readded removed code.
Modified Paths:
--------------
trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
Modified: trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2011-08-29 00:40:28 UTC (rev 3623)
+++ trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2011-08-29 00:54:54 UTC (rev 3624)
@@ -146,6 +146,7 @@
* <li>Bobjob</li>
* <li>Dashiva</li>
* <li>Dr_evil</li>
+ * <li>Elias Naur</li>
* <li>Kevin Glass</li>
* <li>Matthias Mann</li>
* <li>Mickelukas</li>
@@ -837,14 +838,12 @@
// if specified applet version already available don't download anything
boolean versionAvailable = false;
- // version of applet
+ // version string of applet
String version = getParameter("al_version");
- float latestVersion = 0;
// if applet version specifed, compare with version in the cache
if (version != null) {
- latestVersion = Float.parseFloat(version);
- versionAvailable = compareVersion(versionFile, latestVersion);
+ versionAvailable = compareVersion(versionFile, version.toLowerCase());
}
// if jars not available or need updating download them
@@ -867,7 +866,7 @@
// save version information once jars downloaded successfully
if (version != null) {
percentage = 90;
- writeObjectFile(versionFile, latestVersion);
+ writeObjectFile(versionFile, version.toLowerCase());
}
// save file names with last modified info once downloaded successfully
@@ -959,21 +958,23 @@
/**
* This method will return true if the version stored in the file
- * matches the supplied float version.
+ * matches the supplied String version.
*
* @param versionFile - location to file containing version information
- * @param version - float version that needs to be compared
+ * @param version - String version that needs to be compared
* @return returns true if the version in file matches specified version
*/
- protected boolean compareVersion(File versionFile, float version) {
+ protected boolean compareVersion(File versionFile, String version) {
// if version file exists
if (versionFile.exists()) {
+ String s = readStringFile(versionFile);
+
// compare to version with file
- if (version == readFloatFile(versionFile)) {
+ if (s != null && s.equals(version)) {
percentage = 90; // not need to download cache files again
if(debugMode) {
- System.out.println("Loading Cached Applet Version " + version);
+ System.out.println("Loading Cached Applet Version: " + version);
}
debug_sleep(2000);
@@ -1056,22 +1057,21 @@
}
/**
- * read float from File
+ * read String object from File
*
* @param file to be read
- * @return the float stored in the file or 0 if it fails
+ * @return the String stored in the file or null if it fails
*/
- protected float readFloatFile(File file) {
+ protected String readStringFile(File file) {
try {
- Float version = (Float)readObjectFile(file);
- return version.floatValue();
+ return (String)readObjectFile(file);
} catch (Exception e) {
// failed to read version file
e.printStackTrace();
}
- // return 0 if failed to read file
- return 0;
+ // return null if failed to read file
+ return null;
}
/**
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ka...@us...> - 2011-08-29 00:40:37
|
Revision: 3623
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3623&view=rev
Author: kappa1
Date: 2011-08-29 00:40:28 +0000 (Mon, 29 Aug 2011)
Log Message:
-----------
AppletLoader: implement al_min_jre parameter, various small refactoring, update comments and javadoc.
Modified Paths:
--------------
trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
Modified: trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2011-08-27 22:21:13 UTC (rev 3622)
+++ trunk/LWJGL/src/java/org/lwjgl/util/applet/AppletLoader.java 2011-08-29 00:40:28 UTC (rev 3623)
@@ -98,7 +98,7 @@
* The following applet parameters are required:
* <ul>
* <li>al_main - [String] Full package and class the applet to instantiate and display when loaded.</li>
- * <li>al_jars - [String] Comma seperated list of jars to download.</li>
+ * <li>al_jars - [String] Comma separated list of jars to download.</li>
* <p>
* <li>al_windows - [String] Jar containing native files for windows.</li>
* <li>al_linux - [String] Jar containing native files for linux.</li>
@@ -110,19 +110,21 @@
* <p>
* Additionally the following parameters can be supplied to tweak the behaviour of the AppletLoader.
* <ul>
+ * <li>al_cache - [boolean] Whether to use cache system. <i>Default: true</i>.</li>
* <li>al_version - [int or float] Version of deployment. If this is specified, the jars will be cached and
* reused if the version matches. If version doesn't match all of the files are reloaded.</li>
- * <li>al_cache - [boolean] Whether to use cache system. <i>Default: true</i>.</li>
+ *
* <li>al_debug - [boolean] Whether to enable debug mode. <i>Default: false</i>.</li>
- * <li>al_prepend_host - [boolean] Whether to limit caching to this domain, disable if your applet is hosted on multple domains and needs to share the cache. <i>Default: true</i>.</li>
+ * <li>al_min_jre - [String] Specify the minimum jre version that the applet requires, should be in format like 1.6.0_24 or a subset like 1.6 <i>Default: 1.5</i>.</li>
+ * <li>al_prepend_host - [boolean] Whether to limit caching to this domain, disable if your applet is hosted on multiple domains and needs to share the cache. <i>Default: true</i>.</li>
* <p>
* <li>al_windows64 - [String] If specified it will be used instead of al_windows on 64bit windows systems.</li>
- * <li>al_windows32 - [String] If specifed it will be used instead of al_windows on 32bit windows systems.</li>
- * <li>al_linux64 - [String] If specifed it will be used instead of al_linux on 64bit linux systems.</li>
- * <li>al_linux32 - [String] If specifed it will be used instead of al_linux on 32bit linux systems.</li>
- * <li>al_mac32 - [String] If specifed it will be used instead of al_mac on 64bit mac systems.</li>
- * <li>al_mac64 - [String] If specifed it will be used instead of al_mac on 32bit mac systems.</li>
- * <li>al_macppc - [String] If specifed it will be used instead of al_mac on PPC mac systems.</li>
+ * <li>al_windows32 - [String] If specified it will be used instead of al_windows on 32bit windows systems.</li>
+ * <li>al_linux64 - [String] If specified it will be used instead of al_linux on 64bit linux systems.</li>
+ * <li>al_linux32 - [String] If specified it will be used instead of al_linux on 32bit linux systems.</li>
+ * <li>al_mac32 - [String] If specified it will be used instead of al_mac on 64bit mac systems.</li>
+ * <li>al_mac64 - [String] If specified it will be used instead of al_mac on 32bit mac systems.</li>
+ * <li>al_macppc - [String] If specified it will be used instead of al_mac on PPC mac systems.</li>
* <p>
* <li>boxbgcolor - [String] any String AWT color ("red", "blue", etc), RGB (0-255) or hex formated color (#RRGGBB) to use as background. <i>Default: #ffffff</i>.</li>
* <li>boxfgcolor - [String] any String AWT color ("red", "blue", etc), RGB (0-255) or hex formated color (#RRGGBB) to use as foreground. <i>Default: #000000</i>.</li>
@@ -144,7 +146,6 @@
* <li>Bobjob</li>
* <li>Dashiva</li>
* <li>Dr_evil</li>
- * <li>Elias Naur</li>
* <li>Kevin Glass</li>
* <li>Matthias Mann</li>
* <li>Mickelukas</li>
@@ -160,36 +161,39 @@
/** initializing */
public static final int STATE_INIT = 1;
+
+ /** checking version of jre */
+ public static final int STATE_CHECK_JRE_VERSION = 2;
/** determining which packages that are required */
- public static final int STATE_DETERMINING_PACKAGES = 2;
+ public static final int STATE_DETERMINING_PACKAGES = 3;
/** checking for already downloaded files */
- public static final int STATE_CHECKING_CACHE = 3;
+ public static final int STATE_CHECKING_CACHE = 4;
/** downloading packages */
- public static final int STATE_DOWNLOADING = 4;
+ public static final int STATE_DOWNLOADING = 5;
/** extracting packages */
- public static final int STATE_EXTRACTING_PACKAGES = 5;
+ public static final int STATE_EXTRACTING_PACKAGES = 6;
/** validating packages */
- public static final int STATE_VALIDATING_PACKAGES = 6;
+ public static final int STATE_VALIDATING_PACKAGES = 7;
/** updating the classpath */
- public static final int STATE_UPDATING_CLASSPATH = 7;
+ public static final int STATE_UPDATING_CLASSPATH = 8;
/** switching to real applet */
- public static final int STATE_SWITCHING_APPLET = 8;
+ public static final int STATE_SWITCHING_APPLET = 9;
/** initializing real applet */
- public static final int STATE_INITIALIZE_REAL_APPLET = 9;
+ public static final int STATE_INITIALIZE_REAL_APPLET = 10;
/** stating real applet */
- public static final int STATE_START_REAL_APPLET = 10;
+ public static final int STATE_START_REAL_APPLET = 11;
/** done */
- public static final int STATE_DONE = 11;
+ public static final int STATE_DONE = 12;
/** used to calculate length of progress bar */
protected int percentage;
@@ -239,9 +243,6 @@
/** applet to load after all downloads are complete */
protected Applet lwjglApplet;
- /** whether a fatal error occured */
- protected boolean fatalError;
-
/** whether we're running in debug mode */
protected boolean debugMode;
@@ -280,19 +281,33 @@
/** messages to be passed via liveconnect in headless mode */
protected String[] headlessMessage;
+
+ /** whether a fatal error occurred */
+ protected boolean fatalError;
+
+ /** whether a certificate refused error occurred */
+ protected boolean certificateRefused;
+
+ /** whether the minimum required JRE version is not found */
+ protected boolean minimumJreNotFound;
/** generic error message to display on error */
protected String[] genericErrorMessage = { "An error occured while loading the applet.",
"Please contact support to resolve this issue.",
"<placeholder for error message>"};
- /** whether a certificate refused error occured */
- protected boolean certificateRefused;
-
- /** error message to display if user refuses to accept certicate*/
+ /** error message to display if user refuses to accept certificate*/
protected String[] certificateRefusedMessage = { "Permissions for Applet Refused.",
"Please accept the permissions dialog to allow",
"the applet to continue the loading process."};
+
+ /** error message to display if minimum JRE version is not met */
+ protected String[] minimumJREMessage = { "Your version of Java is out of date.",
+ "Visit java.com to get the latest version.",
+ "Java <al_min_jre> or greater is required."};
+
+ /** fatal error message to display */
+ protected String[] errorMessage;
/** have natives been loaded by another instance of this applet */
protected static boolean natives_loaded;
@@ -439,6 +454,7 @@
* This method will return the current progress of the AppletLoader
* as a value from 0-100. In the case of a fatal error it will
* return -1. If the certificate is refused it will return -2.
+ * If the minimum jre requirement is not met will return -3.
*
* When method returns 100 the AppletLoader will sleep until the
* method is called again. When called again it will switch to the
@@ -447,8 +463,10 @@
*/
public int getStatus() {
if (fatalError) {
+ headlessMessage = errorMessage;
+
if (certificateRefused) return -2;
- headlessMessage = (certificateRefused) ? certificateRefusedMessage : genericErrorMessage;
+ if (minimumJreNotFound) return -3;
return -1;
}
@@ -497,6 +515,9 @@
cleanUp(); // clean up resources
return;
}
+
+ // no drawing in headless mode
+ if (headless) return;
// create offscreen if missing
if (offscreen == null) {
@@ -529,12 +550,9 @@
og.fillRect(0, 0, offscreen.getWidth(null), offscreen.getHeight(null));
og.setColor(fgColor);
- String message = getDescriptionForState();
-
+
// if we had a failure of some sort, notify the user
if (fatalError) {
- String[] errorMessage = (certificateRefused) ? certificateRefusedMessage : genericErrorMessage;
-
for(int i=0; i<errorMessage.length; i++) {
if(errorMessage[i] != null) {
int messageX = (offscreen.getWidth(null) - fm.stringWidth(errorMessage[i])) / 2;
@@ -543,7 +561,7 @@
og.drawString(errorMessage[i], messageX, messageY + i*fm.getHeight());
}
}
- } else if (!headless) {
+ } else {
og.setColor(fgColor);
painting = true;
@@ -558,6 +576,8 @@
}
// draw message
+ String message = getDescriptionForState();
+
int messageX = (offscreen.getWidth(null) - fm.stringWidth(message)) / 2;
int messageY = y + 20;
@@ -572,7 +592,7 @@
og.drawString(subtaskMessage, messageX, messageY+20);
}
- // draw loading bar, clipping it depending on percentage done
+ // draw loading progress bar, clipping it depending on percentage done
if (progressbar != null) {
int barSize = (progressbar.getWidth(null) * percentage) / 100;
og.clipRect(x-progressbar.getWidth(null)/2, 0, barSize, offscreen.getHeight(null));
@@ -636,6 +656,8 @@
switch (state) {
case STATE_INIT:
return "Initializing loader";
+ case STATE_CHECK_JRE_VERSION:
+ return "Checking version";
case STATE_DETERMINING_PACKAGES:
return "Determining packages to load";
case STATE_CHECKING_CACHE:
@@ -772,24 +794,30 @@
}
/**
- * 8 steps
+ * 9 steps
*
- * 1) check applet cache and decide whether to download jars
- * 2) download the jars
- * 3) extract native files
- * 4) validate jars for any corruption
- * 5) save applet cache information
- * 6) add jars to class path
- * 7) set any lwjgl properties
- * 8) switch to loaded applet
+ * 1) check jre version meets minimum requirements
+ * 2) check applet cache and decide which jars to download
+ * 3) download the jars
+ * 4) extract native files
+ * 5) validate jars for any corruption
+ * 6) save applet cache information
+ * 7) add jars to class path
+ * 8) set any lwjgl properties
+ * 9) switch to loaded applet
*/
public void run() {
- setState(STATE_CHECKING_CACHE);
+ percentage = 5;
- percentage = 5;
-
try {
debug_sleep(2000);
+
+ // check JRE version meets minimum requirements
+ if (!isMinJREVersionAvailable()) {
+ minimumJreNotFound = true;
+ fatalErrorOccured("Java " + getStringParameter("al_min_jre", "1.5") + " or greater is required.", null);
+ return;
+ }
// parse the urls for the jars into the url list
loadJarURLs();
@@ -809,12 +837,14 @@
// if specified applet version already available don't download anything
boolean versionAvailable = false;
- // version string of applet
+ // version of applet
String version = getParameter("al_version");
-
+ float latestVersion = 0;
+
// if applet version specifed, compare with version in the cache
if (version != null) {
- versionAvailable = compareVersion(versionFile, version.toLowerCase());
+ latestVersion = Float.parseFloat(version);
+ versionAvailable = compareVersion(versionFile, latestVersion);
}
// if jars not available or need updating download them
@@ -837,7 +867,7 @@
// save version information once jars downloaded successfully
if (version != null) {
percentage = 90;
- writeObjectFile(versionFile, version.toLowerCase());
+ writeObjectFile(versionFile, latestVersion);
}
// save file names with last modified info once downloaded successfully
@@ -871,8 +901,8 @@
});
} catch (AccessControlException ace) {
+ certificateRefused = true;
fatalErrorOccured(ace.getMessage(), ace);
- certificateRefused = true;
} catch (Exception e) {
fatalErrorOccured("This occurred while '" + getDescriptionForState() + "'", e);
} finally {
@@ -881,24 +911,69 @@
}
/**
+ * When this method is supplied with a JRE version it will compare it to the
+ * current JRE version.
+ *
+ * minimum requried JRE version is set using al_min_jre parameter, if not
+ * this is not set then the value will default to version 1.5
+ *
+ * The minimumVersion should follow a structure such as x.x.x_x
+ * Example values would include 1.6.0_10 or a subset like 1.6.0 or 1.6
+ *
+ * @return returns true if the available version is greater or equal to the
+ * minimum version required
+ *
+ * @throws Exception a NumberFormatException is thrown if the string is not valid
+ */
+ public boolean isMinJREVersionAvailable() throws Exception {
+ setState(STATE_CHECK_JRE_VERSION);
+
+ String minimumVersion = getStringParameter("al_min_jre", "1.5");
+ String javaVersion = System.getProperty("java.version");
+
+ // split version string into a string arrays
+ String[] jvmVersionData = javaVersion.split("[_\\.]");
+ String[] minVersionData = minimumVersion.split("[_\\.]");
+
+ int maxLength = Math.max(jvmVersionData.length, minVersionData.length);
+
+ // convert string arrays into int arrays
+ int[] jvmVersion = new int[maxLength];
+ int[] minVersion = new int[maxLength];
+
+ for (int i = 0; i < jvmVersionData.length; i++) {
+ jvmVersion[i] = Integer.parseInt(jvmVersionData[i]);
+ }
+
+ for (int i = 0; i < minVersionData.length; i++) {
+ minVersion[i] = Integer.parseInt(minVersionData[i]);
+ }
+
+ // compare versions
+ for (int i = 0; i < maxLength; i++) {
+ if (jvmVersion[i] < minVersion[i]) return false; // minVersion is greater then jvmVersion
+ }
+
+ return true;
+ }
+
+ /**
* This method will return true if the version stored in the file
- * matches the supplied String version.
+ * matches the supplied float version.
*
* @param versionFile - location to file containing version information
- * @param version - String version that needs to be compared
+ * @param version - float version that needs to be compared
* @return returns true if the version in file matches specified version
*/
- protected boolean compareVersion(File versionFile, String version) {
+ protected boolean compareVersion(File versionFile, float version) {
// if version file exists
if (versionFile.exists()) {
- String s = readStringFile(versionFile);
-
// compare to version with file
- if (s != null && s.equals(version)) {
+ if (version == readFloatFile(versionFile)) {
percentage = 90; // not need to download cache files again
if(debugMode) {
- System.out.println("Loading Cached Applet Version: " + version);
+ System.out.println("Loading Cached Applet Version " + version);
}
debug_sleep(2000);
@@ -981,21 +1056,22 @@
}
/**
- * read String object from File
+ * read float from File
*
* @param file to be read
- * @return the String stored in the file or null if it fails
+ * @return the float stored in the file or 0 if it fails
*/
- protected String readStringFile(File file) {
+ protected float readFloatFile(File file) {
try {
- return (String)readObjectFile(file);
+ Float version = (Float)readObjectFile(file);
+ return version.floatValue();
} catch (Exception e) {
// failed to read version file
e.printStackTrace();
}
- // return null if failed to read file
- return null;
+ // return 0 if failed to read file
+ return 0;
}
/**
@@ -1226,7 +1302,8 @@
* @throws Exception - if fails to get infomation
*/
protected void getJarInfo(File dir) throws Exception {
-
+ setState(STATE_CHECKING_CACHE);
+
filesLastModified = new HashMap<String, Long>();
// store file sizes and mark which files not to download
@@ -1285,7 +1362,6 @@
* @throws Exception if download fails
*/
protected void downloadJars(String path) throws Exception {
-
setState(STATE_DOWNLOADING);
URLConnection urlconnection;
@@ -1980,13 +2056,25 @@
}
/**
- * Sets the state of the loaded and prints some debug information
+ * Sets the error message and print debug information
*
* @param error Error message to print
*/
protected void fatalErrorOccured(String error, Exception e) {
fatalError = true;
- genericErrorMessage[genericErrorMessage.length-1] = error;
+
+ if (minimumJreNotFound) {
+ errorMessage = minimumJREMessage;
+ errorMessage[errorMessage.length-1] = error;
+ }
+ else if (certificateRefused) {
+ errorMessage = certificateRefusedMessage;
+ }
+ else {
+ errorMessage = genericErrorMessage;
+ errorMessage[errorMessage.length-1] = error;
+ }
+
System.out.println(error);
if(e != null) {
System.out.println(e.getMessage());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|