Rules with mighty fist. New API killed off before it even sees light of day. Some refactoring.

This commit is contained in:
Caspian Rychlik-Prince 2004-04-04 12:53:45 +00:00
parent a538d84eb1
commit 85130ebd90
17 changed files with 113 additions and 368 deletions

View File

@ -36,9 +36,6 @@ package org.lwjgl.opengl;
* This is the abstract class for a Window in LWJGL. LWJGL windows have some
* peculiar characteristics:
*
* - width and height are always fixed and cannot be changed
* - the position of the window may or may not be programmable but once specified
* cannot be changed programmatically
* - the window may be closeable by the user or operating system, and may be minimized
* by the user or operating system
* - only one window may ever be open at once
@ -81,9 +78,6 @@ public final class Window {
/** Fullscreen */
private static boolean fullscreen;
/** Undecorated */
private static boolean undecorated;
/** Tracks VBO state for the window context */
private static VBOTracker vbo_tracker;
@ -188,43 +182,26 @@ public final class Window {
private static native boolean nIsCloseRequested();
/**
* @return true if the window is minimized or otherwise not visible
* @return true if the window is visible, false if not
*/
public static boolean isMinimized() {
public static boolean isVisible() {
if (!isCreated())
throw new IllegalStateException("Cannot determine minimized state of uncreated window");
return nIsMinimized();
return nIsVisible();
}
private static native boolean nIsMinimized();
private static native boolean nIsVisible();
/**
* @return true if window is focused
* @return true if window is active, that is, the foreground display of the operating system.
*/
public static boolean isFocused() {
public static boolean isActive() {
if (!isCreated())
throw new IllegalStateException("Cannot determine focused state of uncreated window");
return nIsFocused();
return nIsActive();
}
private static native boolean nIsFocused();
/**
* Minimize the game and allow the operating system's default display to become
* visible. It is the responsibility of LWJGL's native code to restore the display
* to its normal display settings.
*
* If the display is already minimized then this is a no-op.
*/
public static native void minimize();
/**
* Restore the game and hide the operating system away. It is the responsibility of
* LWJGL's native code to restore the display to its game display settings.
*
* If the display is not minimized then this is a no-op/
*/
public static native void restore();
private static native boolean nIsActive();
/**
* Determine if the window's contents have been damaged by external events.
@ -253,7 +230,7 @@ public final class Window {
if (!isCreated())
throw new IllegalStateException("Cannot update uncreated window");
nUpdate();
if ((isDirty() && !isMinimized()) || (isFocused() && !isMinimized())) {
if ((isDirty() && isVisible()) || (isActive() && isVisible())) {
Util.checkGLError();
swapBuffers();
}
@ -347,7 +324,6 @@ public final class Window {
if (isCreated())
throw new IllegalStateException("Only one LWJGL window may be instantiated at any one time.");
Window.fullscreen = true;
Window.undecorated = true;
Window.x = 0;
Window.y = 0;
Window.width = Display.getWidth();
@ -374,31 +350,9 @@ public final class Window {
* the minimum requirements could not be met satisfactorily
*/
public static void create(String title, int x, int y, int width, int height, int bpp, int alpha, int depth, int stencil) throws LWJGLException {
create(title, x, y, width, height, false, bpp, alpha, depth, stencil);
create(title, x, y, width, height, bpp, alpha, depth, stencil);
}
/**
* Create a window. If the underlying OS does not have "floating" windows, then a fullscreen
* display will be created instead. If this fails too then an LWJGLException will be thrown.
* If the window is created fullscreen, then its size may not match the specified size
* here.
* <p>The window created will be set up in orthographic 2D projection, with 1:1 pixel ratio with GL coordinates.
* @param title The title of the window
* @param x The position of the window on the x axis. May be ignored.
* @param y The position of the window on the y axis. May be ignored.
* @param width The width of the window's client area
* @param height The height of the window's client area
* @param undecorated A hint to specify that the window should not have OS decorations such as drag bar and close box
* @param bpp Minimum bits per pixel
* @param alpha Minimum bits per pixel in alpha buffer
* @param depth Minimum bits per pixel in depth buffer
* @throws LWJGLException if the window could not be created for any reason; typically because
* the minimum requirements could not be met satisfactorily
*/
public static void create(String title, int x, int y, int width, int height, boolean undecorated, int bpp, int alpha, int depth, int stencil) throws LWJGLException {
create(title, x, y, width, height, undecorated, bpp, alpha, depth, stencil, 0);
}
/**
* Create a window. If the underlying OS does not have "floating" windows, then a fullscreen
* display will be created instead. If this fails too then an LWJGLException will be thrown.
@ -422,42 +376,7 @@ public final class Window {
public static void create(String title, int x, int y, int width, int height, int bpp, int alpha, int depth, int stencil, int samples)
throws LWJGLException {
create(title, x, y, width, height, false, bpp, alpha, depth, stencil, samples);
}
/**
* Create a window. If the underlying OS does not have "floating" windows, then a fullscreen
* display will be created instead. If this fails too then an LWJGLException will be thrown.
* If the window is created fullscreen, then its size may not match the specified size
* here.
* <p>The window created will be set up in orthographic 2D projection, with 1:1 pixel ratio with GL coordinates.
* @param title The title of the window
* @param x The position of the window on the x axis. May be ignored.
* @param y The position of the window on the y axis. May be ignored.
* @param width The width of the window's client area
* @param height The height of the window's client area
* @param undecorated A hint to specify that the window should not have OS decorations such as drag bar and close box
* @param bpp Minimum bits per pixel
* @param alpha Minimum bits per pixel in alpha buffer
* @param depth Minimum bits per pixel in depth buffer
* @param stencil Minimum bits per pixel in stencil buffer
* @param samples Minimum samples in multisample buffer (corresponds to GL_SAMPLES_ARB in GL_ARB_multisample spec).
Pass 0 to disable multisampling. This parameter is ignored if GL_ARB_multisample is not supported.
* @throws LWJGLException if the window could not be created for any reason; typically because
* the minimum requirements could not be met satisfactorily
*/
public static void create(String title, int x, int y, int width, int height, boolean undecorated, int bpp, int alpha, int depth, int stencil, int samples)
throws LWJGLException {
if (isCreated())
throw new IllegalStateException("Only one LWJGL window may be instantiated at any one time.");
Window.fullscreen = false;
Window.undecorated = undecorated;
Window.x = x;
Window.y = y;
Window.width = width;
Window.height = height;
Window.title = title;
createWindow(bpp, alpha, depth, stencil, samples);
create(title, x, y, width, height, bpp, alpha, depth, stencil, samples);
}
/**
@ -471,7 +390,6 @@ public final class Window {
int width,
int height,
boolean fullscreen,
boolean undecorated,
int bpp,
int alpha,
int depth,
@ -480,7 +398,7 @@ public final class Window {
throws LWJGLException;
private static void createWindow(int bpp, int alpha, int depth, int stencil, int samples) throws LWJGLException {
nCreate(title, x, y, width, height, fullscreen, undecorated, bpp, alpha, depth, stencil, samples);
nCreate(title, x, y, width, height, fullscreen, bpp, alpha, depth, stencil, samples);
context = new Window();
makeCurrent();
@ -621,68 +539,68 @@ public final class Window {
private static native void nSetVSyncEnabled(boolean sync);
/**
* Set the window's location. This is a no-op on fullscreen windows.
* The window is clamped to remain entirely on the screen. If you attempt
* to position the window such that it would extend off the screen, the window
* is simply placed as close to the edge as possible.
* @param x, y The new window location
*/
public static void setLocation(int x, int y) {
if (!isCreated())
throw new IllegalStateException("Cannot move uncreated window");
if (fullscreen) {
return;
}
Window.x = Math.max(0, Math.min(Display.getWidth() - Window.width, x));
Window.y = Math.max(0, Math.min(Display.getHeight() - Window.height, y));
nReshape(Window.x, Window.y, Window.width, Window.height);
}
/**
* Set the window's size. This is a no-op on fullscreen windows.
* The window is clamped to remain entirely on the screen. If you attempt
* to position the window such that it would extend off the screen, the window
* is simply placed as close to the edge as possible.
* @param width, height The new window dimensions
*/
public static void setSize(int width, int height) {
if (!isCreated())
throw new IllegalStateException("Cannot resize uncreated window");
if (fullscreen) {
return;
}
Window.width = Math.max(0, Math.min(Display.getWidth() - Window.x, width));
Window.height = Math.max(0, Math.min(Display.getHeight() - Window.y, height));
nReshape(Window.x, Window.y, Window.width, Window.height);
}
/**
* Set the window's bounds. This is a no-op on fullscreen windows.
* The window is clamped to remain entirely on the screen.
* @param x, y The new window location
* @param width, height The new window dimensions
*/
public static void setBounds(int x, int y, int width, int height) {
if (!isCreated())
throw new IllegalStateException("Cannot reshape uncreated window");
if (fullscreen) {
return;
}
width = Math.max(0, Math.min(Display.getWidth(), width));
height = Math.max(0, Math.min(Display.getHeight(), height));
Window.x = Math.max(0, Math.min(Display.getWidth() - width, x));
Window.y = Math.max(0, Math.min(Display.getHeight() - height, y));
Window.width = Math.max(0, Math.min(Display.getWidth() - Window.x, width));
Window.height = Math.max(0, Math.min(Display.getHeight() - Window.y, height));
nReshape(Window.x, Window.y, Window.width, Window.height);
}
/**
* Native method to reshape the window
* @param x, y The new window location
* @param width, height The new window dimensions
*/
private static native void nReshape(int x, int y, int width, int height);
// /**
// * Set the window's location. This is a no-op on fullscreen windows.
// * The window is clamped to remain entirely on the screen. If you attempt
// * to position the window such that it would extend off the screen, the window
// * is simply placed as close to the edge as possible.
// * @param x, y The new window location
// */
// public static void setLocation(int x, int y) {
// if (!isCreated())
// throw new IllegalStateException("Cannot move uncreated window");
// if (fullscreen) {
// return;
// }
// Window.x = Math.max(0, Math.min(Display.getWidth() - Window.width, x));
// Window.y = Math.max(0, Math.min(Display.getHeight() - Window.height, y));
// nReshape(Window.x, Window.y, Window.width, Window.height);
// }
//
// /**
// * Set the window's size. This is a no-op on fullscreen windows.
// * The window is clamped to remain entirely on the screen. If you attempt
// * to position the window such that it would extend off the screen, the window
// * is simply placed as close to the edge as possible.
// * @param width, height The new window dimensions
// */
// public static void setSize(int width, int height) {
// if (!isCreated())
// throw new IllegalStateException("Cannot resize uncreated window");
// if (fullscreen) {
// return;
// }
// Window.width = Math.max(0, Math.min(Display.getWidth() - Window.x, width));
// Window.height = Math.max(0, Math.min(Display.getHeight() - Window.y, height));
// nReshape(Window.x, Window.y, Window.width, Window.height);
// }
//
// /**
// * Set the window's bounds. This is a no-op on fullscreen windows.
// * The window is clamped to remain entirely on the screen.
// * @param x, y The new window location
// * @param width, height The new window dimensions
// */
// public static void setBounds(int x, int y, int width, int height) {
// if (!isCreated())
// throw new IllegalStateException("Cannot reshape uncreated window");
// if (fullscreen) {
// return;
// }
// width = Math.max(0, Math.min(Display.getWidth(), width));
// height = Math.max(0, Math.min(Display.getHeight(), height));
// Window.x = Math.max(0, Math.min(Display.getWidth() - width, x));
// Window.y = Math.max(0, Math.min(Display.getHeight() - height, y));
// Window.width = Math.max(0, Math.min(Display.getWidth() - Window.x, width));
// Window.height = Math.max(0, Math.min(Display.getHeight() - Window.y, height));
// nReshape(Window.x, Window.y, Window.width, Window.height);
// }
//
// /**
// * Native method to reshape the window
// * @param x, y The new window location
// * @param width, height The new window dimensions
// */
// private static native void nReshape(int x, int y, int width, int height);
}

View File

@ -161,7 +161,7 @@ public class ControllerTest {
// pause and continue if minimized
if(Window.isMinimized()) {
if(!Window.isVisible()) {
pause(100);
render();
continue;

View File

@ -211,7 +211,7 @@ public class HWCursorTest {
// allow subsystem to get a chance to run too
Window.update();
if (!Window.isMinimized()) {
if (Window.isVisible()) {
// check keyboard input
processKeyboard();

View File

@ -117,7 +117,7 @@ public class KeyboardTest {
while (!Window.isCloseRequested()) {
Window.update();
if (Window.isMinimized()) {
if (!Window.isVisible()) {
try {
Thread.sleep(100);
} catch (InterruptedException inte) {

View File

@ -173,7 +173,7 @@ public class MouseTest {
// pause and continue if minimized
if(Window.isMinimized()) {
if(!Window.isVisible()) {
if(Window.isDirty()) {
render();
}

View File

@ -229,7 +229,7 @@ public class PositionTest extends BasicTest {
Window.update();
// render and paint if !minimized and not dirty
if(!Window.isMinimized()) {
if(Window.isVisible()) {
render();
} else {
// sleeeeeep
@ -237,7 +237,7 @@ public class PositionTest extends BasicTest {
}
// act on pause mode
paused(Window.isMinimized() || !Window.isFocused());
paused(!(Window.isVisible() || Window.isActive()));
// start sound after first paint, since we don't want
// the delay before something is painted on the screen

View File

@ -1,109 +0,0 @@
/*
* Copyright (c) 2002 Lightweight Java Game Library 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 'Light Weight Java Game Library' 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.test.opengl;
import org.lwjgl.Display;
import org.lwjgl.LWJGLException;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.Window;
/**
* $Id$
*
* Tests the windowing functions. ESCAPE quits.
*
* @author $author$
* @version $revision$
*/
public class BouncingWindowTest {
public static void main(String[] args) {
int x = 0, y = 0, dx = 1, dy = 1;
try {
Window.create("Bouncing Window Test", 0, 0, 64, 64, true, 16, 0, 16, 8, 0);
} catch (LWJGLException e) {
e.printStackTrace(System.err);
System.exit(-1);
}
Window.setVSyncEnabled(true);
float angle = 0.0f;
float color = 0.0f;
while (!Keyboard.isKeyDown(Keyboard.KEY_ESCAPE) && !Window.isCloseRequested()) {
Window.update();
x += dx;
y += dy;
if (x < 0) {
x = 1;
dx = 1;
} else if (x >= Display.getWidth() - Window.getWidth()) {
x = Display.getWidth() - Window.getWidth() - 1;
dx = -1;
}
if (y < 0) {
y = 1;
dy = 1;
} else if (y >= Display.getHeight() - Window.getHeight()) {
y = Display.getHeight() - Window.getHeight() - 1;
dy = -1;
}
Window.setLocation(x, y);
angle += 1.0f;
if (angle >= 360.0f) {
angle = 0.0f;
}
color += 0.01f;
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT);
GL11.glPushMatrix();
GL11.glTranslatef(Window.getWidth() / 2.0f, Window.getHeight() / 2.0f, 0.0f);
GL11.glRotatef(angle, 0.0f, 0.0f, 1.0f);
GL11.glColor3f(
(float)Math.abs(Math.sin(color)),
(float)Math.abs(Math.cos(color)),
(float)Math.abs(Math.sin(color) * Math.cos(color))
);
GL11.glBegin(GL11.GL_QUADS);
{
GL11.glVertex2f(-20.0f, -20.0f);
GL11.glVertex2f(20.0f, -20.0f);
GL11.glVertex2f(20.0f, 20.0f);
GL11.glVertex2f(-20.0f, 20.0f);
}
GL11.glEnd();
GL11.glPopMatrix();
}
}
}

View File

@ -95,7 +95,7 @@ public class FullScreenWindowedTest {
*/
private void mainLoop() {
while (!Keyboard.isKeyDown(Keyboard.KEY_ESCAPE) && !Window.isCloseRequested()) {
if (!Window.isMinimized()) {
if (Window.isVisible()) {
// check keyboard input
processKeyboard();
// do "game" logic, and render it

View File

@ -94,7 +94,7 @@ public final class Game {
try {
init();
while (!finished) {
if (Window.isMinimized()) {
if (!Window.isVisible()) {
Thread.sleep(200);
} else if (Window.isCloseRequested()) {
finished = true;

View File

@ -192,7 +192,7 @@ public class Grass {
while (!finished) {
if (Window.isCloseRequested()) {
finished = true;
} else if (!Window.isMinimized()) {
} else if (Window.isVisible()) {
keyPoll();
float degree = (1.0f + (aslod.value * 20.0f)) * 0.01745329f;

View File

@ -123,7 +123,7 @@ public class PbufferTest {
*/
private void mainLoop() {
while (!Keyboard.isKeyDown(Keyboard.KEY_ESCAPE) && !Window.isCloseRequested()) {
if (!Window.isMinimized()) {
if (!Window.isVisible()) {
// check keyboard input
processKeyboard();
// do "game" logic, and render it

View File

@ -114,7 +114,7 @@ public final class VBOIndexTest {
while ( !finished ) {
Window.update();
if ( Window.isMinimized() )
if ( !Window.isVisible() )
Thread.sleep(200);
else if ( Window.isCloseRequested() )
System.exit(0);

View File

@ -110,7 +110,7 @@ public final class VBOTest {
while ( !finished ) {
Window.update();
if ( Window.isMinimized() )
if ( !Window.isVisible() )
Thread.sleep(200);
else if ( Window.isCloseRequested() )
System.exit(0);

View File

@ -77,7 +77,7 @@ public final class ShadersTest {
long lastFrameTime = 0;
while ( run ) {
if ( Window.isMinimized() )
if (!Window.isVisible() )
Thread.yield();
else {
// This is the current frame time.

View File

@ -36,34 +36,18 @@ JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_Window_nIsCloseRequested
/*
* Class: org_lwjgl_opengl_Window
* Method: nIsMinimized
* Method: nIsVisible
* Signature: ()Z
*/
JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_Window_nIsMinimized
JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_Window_nIsVisible
(JNIEnv *, jclass);
/*
* Class: org_lwjgl_opengl_Window
* Method: nIsFocused
* Method: nIsActive
* Signature: ()Z
*/
JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_Window_nIsFocused
(JNIEnv *, jclass);
/*
* Class: org_lwjgl_opengl_Window
* Method: minimize
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Window_minimize
(JNIEnv *, jclass);
/*
* Class: org_lwjgl_opengl_Window
* Method: restore
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Window_restore
JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_Window_nIsActive
(JNIEnv *, jclass);
/*
@ -93,10 +77,10 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Window_nMakeCurrent
/*
* Class: org_lwjgl_opengl_Window
* Method: nCreate
* Signature: (Ljava/lang/String;IIIIZZIIIII)V
* Signature: (Ljava/lang/String;IIIIZIIIII)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Window_nCreate
(JNIEnv *, jclass, jstring, jint, jint, jint, jint, jboolean, jboolean, jint, jint, jint, jint, jint);
(JNIEnv *, jclass, jstring, jint, jint, jint, jint, jboolean, jint, jint, jint, jint, jint);
/*
* Class: org_lwjgl_opengl_Window
@ -134,9 +118,9 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Window_nSetVSyncEnabled
* Class: org_lwjgl_opengl_Window
* Method: nReshape
* Signature: (IIII)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Window_nReshape
(JNIEnv *, jclass, jint, jint, jint, jint);
*/
#ifdef __cplusplus
}

View File

@ -456,15 +456,14 @@ static bool initWindowGLX(JNIEnv *env, Display *disp, int screen, jstring title,
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Window_nCreate
(JNIEnv * env, jclass clazz, jstring title, jint x, jint y, jint width, jint height, jboolean fullscreen, jboolean undecorated, jint bpp, jint alpha, jint depth, jint stencil, jint samples)
(JNIEnv * env, jclass clazz, jstring title, jint x, jint y, jint width, jint height, jboolean fullscreen, jint bpp, jint alpha, jint depth, jint stencil, jint samples)
{
int screen;
Display *disp;
bool fscreen = false;
if (fullscreen == JNI_TRUE)
fscreen = true;
if (undecorated == JNI_TRUE)
isUndecorated = true;
isUndecorated = getBooleanProperty(env, "org.lwjgl.opengl.Window.undecorated");
if (!extgl_Open()) {
throwException(env, "Could not load gl libs");
@ -520,23 +519,6 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Window_swapBuffers(JNIEnv * env, jc
glXSwapBuffers(getCurrentDisplay(), getCurrentWindow());
}
/*
* Class: org_lwjgl_opengl_Window
* Method: minimize
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Window_minimize
(JNIEnv *env, jclass clazz) {
}
/*
* Class: org_lwjgl_opengl_Window
* Method: restore
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Window_restore
(JNIEnv *env, jclass clazz) {
}
/*
* Class: org_lwjgl_opengl_Window
@ -547,17 +529,17 @@ JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_Window_nIsDirty
(JNIEnv *env, jclass clazz) {
bool result = dirty;
dirty = false;
return result;
return result ? JNI_TRUE : JNI_FALSE;
}
/*
* Class: org_lwjgl_opengl_Window
* Method: nIsMinimized
* Method: nIsVisible
* Signature: ()Z
*/
JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_Window_nIsMinimized
JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_Window_nIsVisible
(JNIEnv *env, jclass clazz) {
return minimized;
return minimized ? JNI_FALSE : JNI_TRUE;
}
/*
@ -574,12 +556,12 @@ JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_Window_nIsCloseRequested
/*
* Class: org_lwjgl_opengl_Window
* Method: nIsFocused
* Method: nIsActive
* Signature: ()Z
*/
JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_Window_nIsFocused
JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_Window_nIsActive
(JNIEnv *env, jclass clazz) {
return focused;
return focused ? JNI_TRUE : JNI_FALSE;
}
JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_Window_nIsVSyncEnabled
@ -601,8 +583,3 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Window_nSetVSyncEnabled
}
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Window_nReshape
(JNIEnv *env, jclass clazz, jint x, jint y, jint width, jint height)
{
XMoveResizeWindow(current_disp, current_win, x, y, width, height);
}

View File

@ -480,33 +480,6 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Window_nUpdate
}
/*
* Class: org_lwjgl_Window
* Method: minimize
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Window_minimize
(JNIEnv * env, jclass clazz)
{
if (isMinimized)
return;
ShowWindow(hwnd, SW_MINIMIZE);
}
/*
* Class: org_lwjgl_Window
* Method: minimize
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Window_restore
(JNIEnv * env, jclass clazz)
{
if (!isMinimized)
return;
ShowWindow(hwnd, SW_RESTORE);
}
/*
* Class: org_lwjgl_Window
* Method: swapBuffers
@ -526,14 +499,14 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Window_swapBuffers
* Signature: (Ljava/lang/String;IIIIZIIII)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Window_nCreate
(JNIEnv * env, jclass clazz, jstring title, jint x, jint y, jint width, jint height, jboolean fullscreen, jboolean undecorated, jint bpp, jint alpha, jint depth, jint stencil, jint samples)
(JNIEnv * env, jclass clazz, jstring title, jint x, jint y, jint width, jint height, jboolean fullscreen, jint bpp, jint alpha, jint depth, jint stencil, jint samples)
{
closerequested = false;
isMinimized = false;
isFocused = true;
isDirty = true;
isFullScreen = fullscreen == JNI_TRUE;
isUndecorated = undecorated == JNI_TRUE;
isUndecorated = getBooleanProperty(env, "org.lwjgl.opengl.Window.undecorated");
vsync = JNI_FALSE;
// Speacial option for allowing software opengl
@ -626,12 +599,12 @@ JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_Window_nIsDirty
/*
* Class: org_lwjgl_opengl_Window
* Method: nIsMinimized
* Method: nIsVisible
* Signature: ()Z
*/
JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_Window_nIsMinimized
JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_Window_nIsVisible
(JNIEnv *env, jclass clazz) {
return isMinimized;
return isMinimized ? JNI_FALSE : JNI_TRUE;
}
/*
@ -648,10 +621,10 @@ JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_Window_nIsCloseRequested
/*
* Class: org_lwjgl_opengl_Window
* Method: nIsFocused
* Method: nIsActive
* Signature: ()Z
*/
JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_Window_nIsFocused
JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_Window_nIsActive
(JNIEnv *env, jclass clazz) {
return isFocused;
}
@ -691,6 +664,7 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Window_nMakeCurrent
wglMakeCurrent(hdc, hglrc);
}
/*
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Window_nReshape
(JNIEnv *env, jclass clazz, jint x, jint y, jint width, jint height)
{
@ -725,3 +699,4 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Window_nReshape
SetWindowPos(hwnd, HWND_TOP, x, y, clientSize.right - clientSize.left,
clientSize.bottom - clientSize.top, SWP_NOZORDER);
}
*/