Update of /cvsroot/java-game-lib/LWJGL/src/native/linux
In directory usw-pr-cvs1:/tmp/cvs-serv11174
Modified Files:
Game.java org_lwjgl_Display.c org_lwjgl_Sys.c
Log Message:
Added Sys setPriority support
Index: Game.java
CVS Browser:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/native/linux/Game.java
===================================================================
RCS file: /cvsroot/java-game-lib/LWJGL/src/native/linux/Game.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- Game.java 16 Nov 2002 19:46:18 -0000 1.3
+++ Game.java 16 Nov 2002 20:10:42 -0000 1.4
@@ -152,6 +152,7 @@
Keyboard.enableBuffer();
Mouse.create();
Sys.setTime(0);
+ Sys.setProcessPriority(Sys.REALTIME_PRIORITY);
System.out.println("Timer resolution: " + Sys.getTimerResolution());
// Go into orthographic projection mode.
gl.matrixMode(GL.PROJECTION);
Index: org_lwjgl_Display.c
CVS Browser:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/native/linux/org_lwjgl_Display.c
===================================================================
RCS file: /cvsroot/java-game-lib/LWJGL/src/native/linux/org_lwjgl_Display.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- org_lwjgl_Display.c 15 Nov 2002 11:10:32 -0000 1.4
+++ org_lwjgl_Display.c 16 Nov 2002 20:10:42 -0000 1.5
@@ -54,6 +54,7 @@
Display * disp;
int screen;
+int current_fullscreen;
Window win;
XF86VidModeModeInfo **avail_modes;
XVisualInfo * vis_info;
@@ -92,6 +93,7 @@
int attriblist[] = {GLX_RGBA, GLX_DOUBLEBUFFER, GLX_DEPTH_SIZE, 24, GLX_RED_SIZE, bpe, GLX_GREEN_SIZE, bpe, GLX_BLUE_SIZE, bpe, GLX_ALPHA_SIZE, bpe, None};
int num_modes, i;
+ current_fullscreen = fullscreen;
disp = XOpenDisplay(NULL);
if (disp == NULL) {
#ifdef _DEBUG
@@ -159,13 +161,15 @@
JNIEXPORT void JNICALL Java_org_lwjgl_Display_nDestroy(JNIEnv * env, jclass clazz) {
XDestroyWindow(disp, win);
- if (!XF86VidModeSwitchToMode(disp, screen, avail_modes[0])) {
+ if (current_fullscreen) {
+ if (!XF86VidModeSwitchToMode(disp, screen, avail_modes[0])) {
#ifdef _DEBUG
- printf("Could not switch mode\n");
+ printf("Could not switch mode\n");
#endif
+ }
+ XFree(avail_modes);
}
XFree(vis_info);
- XFree(avail_modes);
XCloseDisplay(disp);
#ifdef _DEBUG
printf("Closed X connection\n");
Index: org_lwjgl_Sys.c
CVS Browser:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/native/linux/org_lwjgl_Sys.c
===================================================================
RCS file: /cvsroot/java-game-lib/LWJGL/src/native/linux/org_lwjgl_Sys.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- org_lwjgl_Sys.c 16 Nov 2002 19:46:18 -0000 1.3
+++ org_lwjgl_Sys.c 16 Nov 2002 20:10:42 -0000 1.4
@@ -40,6 +40,7 @@
*/
#include <sys/time.h>
+#include <sys/resource.h>
#include "org_lwjgl_Sys.h"
long int hires_timer_freq; // Hires timer frequency
@@ -128,29 +129,27 @@
JNIEXPORT void JNICALL Java_org_lwjgl_Sys_setProcessPriority
(JNIEnv * env, jclass clazz, jint priority)
{
-/* HANDLE me = GetCurrentProcess();
- int win32priority;
-
+ int linux_priority;
switch (priority) {
case org_lwjgl_Sys_REALTIME_PRIORITY:
- win32priority = REALTIME_PRIORITY_CLASS;
+ linux_priority = -20;
break;
case org_lwjgl_Sys_HIGH_PRIORITY:
- win32priority = HIGH_PRIORITY_CLASS;
+ linux_priority = -10;
break;
case org_lwjgl_Sys_NORMAL_PRIORITY:
- win32priority = NORMAL_PRIORITY_CLASS;
+ linux_priority = 0;
break;
case org_lwjgl_Sys_LOW_PRIORITY:
- win32priority = IDLE_PRIORITY_CLASS;
+ linux_priority = 20;
break;
default:
return;
}
- if (!SetPriorityClass(me, win32priority)) {
+ if (setpriority(PRIO_PROCESS, 0, linux_priority) == -1) {
#ifdef _DEBUG
- printf("Failed to set priority class.\n");
+ printf("Failed to set priority.\n");
#endif
- }*/
+ }
}
|