*** empty log message ***

This commit is contained in:
Caspian Rychlik-Prince 2003-06-07 12:47:35 +00:00
parent 6e73a7a953
commit e143541c01
4 changed files with 43 additions and 24 deletions

View File

@ -120,6 +120,7 @@ public abstract class Window {
* @param newTitle The new window title
*/
public final void setTitle(String newTitle) {
assert isCreated();
title = newTitle;
nSetTitle(title);
}
@ -134,6 +135,7 @@ public abstract class Window {
* @return true if the user or operating system has asked the window to close
*/
public final boolean isCloseRequested() {
assert isCreated();
return closeRequested;
}
@ -141,6 +143,7 @@ public abstract class Window {
* @return true if the window is minimized or otherwise not visible
*/
public final boolean isMinimized() {
assert isCreated();
return minimized;
}
@ -172,6 +175,7 @@ public abstract class Window {
* and needs to repaint itself
*/
public final boolean isDirty() {
assert isCreated();
return dirty;
}
@ -179,6 +183,7 @@ public abstract class Window {
* Paint the window. This clears the dirty flag and swaps the buffers.
*/
public final void paint() {
assert isCreated();
dirty = false;
doPaint();
}
@ -194,7 +199,8 @@ public abstract class Window {
doCreate();
currentWindow = this;
created = true;
}
}
/**
* Create the window (derived classes).
@ -205,7 +211,7 @@ public abstract class Window {
/**
* Destroy the window.
*/
public final synchronized void destroy() {
public final void destroy() {
if (!created)
return;
doDestroy();
@ -237,16 +243,7 @@ public abstract class Window {
* 'Tick' the window. This must be called at least once per video frame
* to handle window close requests, moves, paints, etc.
*/
public final native void tick();
/* (non-Javadoc)
* @see java.lang.Object#finalize()
*/
protected void finalize() throws Throwable {
super.finalize();
destroy();
}
public native void tick();
/* (non-Javadoc)
* @see java.lang.Object#toString()

View File

@ -344,18 +344,20 @@ public class Keyboard {
/**
* Enable keyboard translation. Must be called after the keyboard is created,
* and keyboard buffering must be enabled.
* @return false if translation cannot be enabled; true if it can
*/
public static void enableTranslation() {
public static boolean enableTranslation() {
assert created : "The keyboard has not been created.";
assert readBuffer != null : "Keyboard buffering has not been enabled.";
nEnableTranslation();
translationEnabled = true;
translationEnabled = nEnableTranslation();
return translationEnabled;
}
/**
* Native method to enable the translation buffer
*/
private static native void nEnableTranslation();
private static native boolean nEnableTranslation();
/**
* Enable keyboard buffering. Must be called after the keyboard is created.

View File

@ -313,7 +313,7 @@ JNIEXPORT jint JNICALL Java_org_lwjgl_input_Keyboard_nRead
* Method: nEnableTranslation
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_input_Keyboard_nEnableTranslation
JNIEXPORT jboolean JNICALL Java_org_lwjgl_input_Keyboard_nEnableTranslation
(JNIEnv *, jclass);
/*

View File

@ -63,13 +63,14 @@ static bool translationEnabled;
JNIEXPORT void JNICALL Java_org_lwjgl_input_Keyboard_initIDs
(JNIEnv * env, jclass clazz)
{
/*
// Get a global class instance, just to be sure
static jobject globalClassLock = NULL;
if (globalClassLock == NULL) {
globalClassLock = env->NewGlobalRef(clazz);
}
*/
fid_readBuffer = env->GetStaticFieldID(clazz, "readBuffer", "Ljava/nio/ByteBuffer;");
}
@ -208,17 +209,23 @@ JNIEXPORT jint JNICALL Java_org_lwjgl_input_Keyboard_nRead
if (ret == DI_OK) {
unsigned char * buf = readBuffer;
//#ifdef _DEBUG
// if (bufsize > 0) {
// printf("Got %d keyboard events.\n", bufsize);
// }
//#endif
for (unsigned int i = 0; i < bufsize; i ++) {
num_events++;
*buf++ = (unsigned char) rgdod[i].dwOfs;
*buf++ = (unsigned char) rgdod[i].dwData;
if (translationEnabled) {
// Cas: shouldn't need to call handleMessages any more
// handleMessages();
UINT virt_key = MapVirtualKey(rgdod[i].dwOfs, 1);
if (virt_key != 0) {
if (!GetKeyboardState(state))
return 0;
if (!GetKeyboardState(state)) {
*buf++ = 0;
*buf++ = 0;
continue;
}
num_chars = ToUnicode(virt_key,
rgdod[i].dwOfs,
state,
@ -283,10 +290,23 @@ JNIEXPORT jint JNICALL Java_org_lwjgl_input_Keyboard_nRead
* Method: nEnableTranslation
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_input_Keyboard_nEnableTranslation
JNIEXPORT jboolean JNICALL Java_org_lwjgl_input_Keyboard_nEnableTranslation
(JNIEnv *, jclass)
{
translationEnabled = true;
// We can't do translation on DOS boxes it seems so we'll have to throw a wobbler
// here:
OSVERSIONINFO osvi;
osvi.dwOSVersionInfoSize = sizeof(osvi);
GetVersionEx(&osvi);
if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) {
translationEnabled = true;
return JNI_TRUE;
} else {
translationEnabled = false;
return JNI_FALSE;
}
}
/*