Commit graph

1451 commits

Author SHA1 Message Date
Elias Naur b44fff716f Compile fix 2007-04-24 13:22:35 +00:00
Elias Naur 23701fdf75 Windows: Remove dependency on DirectInput for WindowsMouse used by WindowsDisplay. Keyboard conversion coming up. Reasons:
1. DirectInput is deprecated (http://en.wikipedia.org/wiki/DirectInput). Specifically, Microsoft recommends using regular windows messages for keyboard and mouse input.
2. Not using DirectInput enable us to use the Raw Input JInput plugin to access multiple mice (and keyboards).
3. We're already using windows messages for features DirectInput never supported, so by removing DirectInput dependency, we get rid of some special case code.
4. When we're only using windows messages for input, we're (theoretically) more compatible than with a dependency on a properly working DirectInput.
2007-04-24 09:30:03 +00:00
Elias Naur b386d2185b Added support for non-direct in glGet* style functions 2007-04-23 20:17:42 +00:00
Elias Naur 7ee398fe4e Added support for non-direct buffers to Cursor 2007-04-23 16:47:25 +00:00
Elias Naur 31aa4355ca Inline optimizations to state trackers by MatthiasM 2007-04-22 21:29:28 +00:00
Brian Matzon fdb0d2cd1d re-enabled missing ALC error check 2007-04-19 22:54:25 +00:00
Brian Matzon 69f24e8f23 output capture devices 2007-04-19 22:44:07 +00:00
Brian Matzon f7d2966370 remove debug 2007-04-19 22:43:38 +00:00
Brian Matzon 1d920fb4ef updated to ALC10 instead of ALC 2007-04-19 22:26:19 +00:00
Brian Matzon d16d77f30d updated to ALC10 instead of ALC 2007-04-19 22:25:47 +00:00
Brian Matzon a6ce837564 openal 1.1 2007-04-19 22:25:13 +00:00
Brian Matzon 23ad78416f exposing context and device
updated to ALC10 instead of ALC
removed getImplementations - alcGetString now works as "expected"
2007-04-19 22:24:36 +00:00
Brian Matzon 3b5064f229 updated to ALC10 instead of ALC 2007-04-19 22:23:40 +00:00
Brian Matzon 54eefcb876 exposing context and device 2007-04-19 22:23:20 +00:00
Brian Matzon 2481ce4356 updated to ALC10 instead of ALC 2007-04-19 22:23:04 +00:00
Brian Matzon 9d67fe978c Capture test for OpenAL 1.1 2007-04-19 22:22:18 +00:00
Elias Naur e6b9cb1a90 Cut VBO/PBO sanity checks from two to one glGetInteger call by exploiting GL enum value aliasing (once again inspired by MatthiasM). Additionally, support PBO calls added in OpenGL 2.1. 2007-04-19 07:42:01 +00:00
Elias Naur d9373a798a Move null parameter checks from check classes to the generated classes, since calculateImageSize assumes the buffer being non-null 2007-04-15 19:43:35 +00:00
Elias Naur ca35f3b2b4 Don't add border when checking image sizes 2007-04-15 19:33:03 +00:00
Brian Matzon 5d15006837 1.1 version string 2007-04-11 20:32:12 +00:00
Elias Naur 7c6511cf66 Added support for non-direct buffers for all functions that doesn't cache the buffer address at the native side (e.g. glVertexPointer). Reasons:
1. We can now support calls like "glLight(..., ..., FloatBuffer.wrap(new float[] {...}));" without worrying about running out of direct memory heap, 
since both the FloatBuffer and the array are allocated on the java heap. Future JVMs with stack allocation support could improve this even further.
2. We avoid getting in the way of users that doesn't (yet) know why direct buffers are important.

Obviously, we'd like direct support for arrays, but non-direct buffers are a nice compromise that avoids the API bloat that results when almost all 
functions gain an overloaded versions that take arrays instead of buffers.

Notes:

1. Non-direct buffer support should not affect the performance in the direct buffer case, since the non-direct buffer code path is only activated 
when the isDirect() check fails, and we were already checking isDirect() for sanity checking.
2. When using non-direct buffers, the buffer contents (remaining() bytes) are copied to a resizable ThreadLocal cached direct buffer (which is 
resized as needed) and used instead of the non-direct buffer. Thus, performance of non-direct buffers is lower than direct buffers.
2007-04-11 17:30:13 +00:00
Elias Naur 5a2c33423a Moved null check from generated code to BufferChecks and removed unused buffer checks 2007-04-11 16:13:05 +00:00
Brian Matzon 2b8f56021f 1.0.1 version string 2007-04-07 19:10:22 +00:00
Elias Naur 3899e6828f Windows: Correct testing of wParam when a WM_SYSCOMMAND is received 2007-03-30 19:35:37 +00:00
Elias Naur 360a9a0827 WindowsRegistry: Make sure the native library is loaded by calling Sys.initialize() 2007-03-22 14:05:41 +00:00
Elias Naur d6207572c6 Added a Pbuffer constructor that omits the RenderTexture parameter, and added a note that FBOs should be used instead, if available. Render-to-texture pbuffers can only be available on Windows platforms and is thus not portable. 2007-02-24 18:41:41 +00:00
Elias Naur 4bf4a385f3 Linux: When creating a window don't loop waiting for the MapNotify event. Instead, make sure we don't immediately go from fullscreen to minimized by checking if the window has been focused at least once before minimizing (and resetting display mode). 2007-02-23 10:14:18 +00:00
Elias Naur 56178d97fd Make the rest of LWJGL thread safe. No attempt have been done to make the locking minimal. Instead, one global lock is shared by Display, Mouse, Keyboard and Cursor. The lock surrounds all public methods. 2007-02-12 12:18:26 +00:00
Brian Matzon c880c689ff fixed test to use -1 in freq 2007-02-04 21:46:29 +00:00
Brian Matzon 79a8cf82bd 1.0 version string 2007-02-03 12:22:25 +00:00
Elias Naur 763d9cce7c Linux: Make sure the first Mouse.poll() return correct absolute X and Y values 2007-01-31 14:07:20 +00:00
Elias Naur 46ce5679c8 Windows AWTInput: Make sure the cursor is contained within the window when the Mouse is grabbed. 2007-01-30 13:08:51 +00:00
Brian Matzon e8d032973f updated streams 2007-01-23 19:55:46 +00:00
Elias Naur 1602a74f42 Tweaked comment for Display.getAvailableDisplayModes to make it clear that invalid modes can be returned and that create() won't always detect such modes 2007-01-22 10:14:13 +00:00
Elias Naur 5d13607699 Changed version to RC2 2007-01-22 09:24:06 +00:00
Elias Naur 083137884b Remove the rest of the implementation reflection 2007-01-17 12:58:38 +00:00
Elias Naur 7742185e34 Sys.java: Don't use reflection to create platform specific implementations 2007-01-17 12:49:20 +00:00
Elias Naur 4a1b565c74 Bumped native version because of internal linux API change 2007-01-17 08:22:31 +00:00
Elias Naur 4b13bb10d3 Linux: Fixed wrong return type in LinuxEvent.nGetKeyAddress 2007-01-17 08:16:16 +00:00
Elias Naur 7adffdb0cc Display: Fixed a NPE when create() fails on context creation 2007-01-13 19:24:05 +00:00
Elias Naur 31079a10c1 AWTInput: Don't create the Robot before it is needed 2007-01-10 13:55:42 +00:00
Brian Matzon 00db5fcb85 added Display.create/destroy. Fixes an error on mac, since OpenGL has to be initialized before creating ILUT 2007-01-07 20:41:45 +00:00
Brian Matzon 48fe0910a1 osx cursor animation emulation enabled 2007-01-04 23:28:33 +00:00
Elias Naur b7b203d29a Windows: Clear the window with OpenGL to replace UpdateWindow(HWND) and run message loop once in Display.create(). 2007-01-04 14:12:36 +00:00
Elias Naur 97db4ca4b2 Windows: Don't use UpdateWindow after all. Instead, don't use a background brush at all to avoid windows clearing windows with non OpenGL drawing commands. Hopefully this will improve compatibility (The NeHe tutorials also don't specify a background brush). 2007-01-04 14:00:45 +00:00
Elias Naur 0234336feb Windows: Re-add UpdateWindow to make sure fullscreen windows are cleared faster 2007-01-04 13:44:23 +00:00
Elias Naur 1bc9ac0aad AWTGLCanvas: Release the lock before calling exceptionOccurred 2007-01-03 09:16:13 +00:00
Elias Naur 1005813acc AWTGLCanvas: Added exceptionOccurred to allow users to be notified of unhandled LWJGLExceptions in paint() 2007-01-03 09:13:38 +00:00
Brian Matzon de0a724da7 use precalculated widths and heights, else we crash in cursor constructor because of buffer underflow 2007-01-02 19:02:25 +00:00
Elias Naur ede23fc9a3 HWCursorTest: Cap cursor size 2007-01-02 11:12:37 +00:00
Elias Naur 861421e16c Fix HWCursorTest 2007-01-02 11:09:05 +00:00
Elias Naur 662e9c7e7a Mac OS X: Add support for fake cursor animation 2007-01-02 10:55:44 +00:00
Elias Naur d4ea142f89 Windows: Make window visible after pixel format selection and move code from native WindowsDisplay.nCreate to java side. 2006-12-22 10:45:39 +00:00
Elias Naur 175ac13445 Fix VBO tests and bump Sys native JNI library version 2006-12-20 19:24:25 +00:00
Elias Naur 116a603572 Add GLChecks support methods for GL15 and ARB_buffer_object 2006-12-20 19:22:33 +00:00
Elias Naur eaed716958 Generator: Support arbitrary @AutoResultSize expressions. Make Buffer result sizes long instead of int 2006-12-20 19:19:56 +00:00
Brian Matzon 69e52d3361 1.0-rc1 version string 2006-12-18 18:27:15 +00:00
Brian Matzon 891902e4d6 version screw-up 2006-12-12 21:44:46 +00:00
Brian Matzon 1011b614e5 added getVersion like lwjgl
bumped native version
2006-12-12 21:30:58 +00:00
Brian Matzon fcb1f55eb9 fixed comment for getVersion 2006-12-12 21:30:21 +00:00
Brian Matzon dd5ac45a66 added getVersion like lwjgl 2006-12-12 21:29:08 +00:00
Elias Naur 66466b6d39 Bumped Sys.JNI_VERSION because of earlier OpenGL function changes 2006-12-06 14:01:29 +00:00
Elias Naur 93eabcf999 Generator: Make sure that @GLvoid types result in proper address calculations at the native side, even though the parameter java type is not java.nio.Buffer 2006-11-27 23:01:01 +00:00
Elias Naur 9709e6da2b Remove GL.java and GLImpl.java as they're not updated automatically anyway 2006-11-27 22:45:28 +00:00
Elias Naur f7b0c5c1b2 Linux: Tweak LinuxAWTInput 2006-11-24 15:30:36 +00:00
Elias Naur c6ba2c66b1 Windows: Make sure that the cursor position doesn't jump when switching grab mode 2006-11-24 15:21:02 +00:00
Elias Naur 92b3a7d282 Windows: Fix potential NPE 2006-11-24 15:10:15 +00:00
Elias Naur 4c817d4145 Compile fix 2006-11-24 15:03:05 +00:00
Elias Naur 63532ca647 Make sure that the cursor position doesn't jump when switching grab mode 2006-11-24 14:53:01 +00:00
Elias Naur 57a8067a88 Fix locking in MouseEventQueue 2006-11-24 12:05:46 +00:00
Elias Naur 2577827e4a Synchronize Keyboard and Mouse to avoid problems with AWTInputAdapter based usage 2006-11-24 10:18:36 +00:00
Elias Naur 6abfeb4df2 Made LWJGLUtil.getLibraryPaths support multiple library names. Now AL.create on linux tries both libopenal.so and libopenal.so.0, which is the name of the system library 2006-11-20 20:07:29 +00:00
Elias Naur f62f11b437 Made LWJGLUtil.getPathFromClassLoader private 2006-11-20 19:28:50 +00:00
Elias Naur 287861ec89 Windows: Dont use DirectInput for keyboard input. This fixes shifted typing. 2006-11-20 09:26:44 +00:00
Elias Naur 993885b9de Added AWTInputAdapter testing to applet/OpenGL.java 2006-11-20 08:39:22 +00:00
Elias Naur 6bac5f8bfa Windows: Destroy the keyboard when we create a new one 2006-11-20 08:14:50 +00:00
Elias Naur 34e5ce2080 Twekaed tests 2006-11-20 08:04:56 +00:00
Elias Naur d75d00666a Windows: Make sure AWTInputAdapter is not reporting events twice after a grab change 2006-11-19 23:02:25 +00:00
Elias Naur f56ebc21a9 AWTInputAdapter: Destroy Keyboard/Mouse before destroying the adapter 2006-11-19 21:49:10 +00:00
Elias Naur d2de70f2d9 Make sure that Mouse.destroy ungrabs the cursor 2006-11-19 21:41:34 +00:00
Elias Naur 3fc91a641c AWTInputAdapter: unregister event listeners on destroy() 2006-11-19 21:15:51 +00:00
Elias Naur 0e10718b16 AWTInputAdapter.destroy() now destroys the Keyboard and Mouse to mimic the behaviour of Display.destroy() more closely. 2006-11-19 16:24:18 +00:00
Elias Naur 2502496b2d Made all GL functions only query ContextCapabilities.getCapabilities() once. Now all GLCheck checks will take the ContextCapabilities instance as an argument instead of querying for it. Inspired by MatthiasM, who just don't seem to be content with LWJGL performance, ever ;) 2006-11-19 13:33:45 +00:00
Elias Naur 905aec0877 Shave off one ThreadLocal access in StateTracker.push/popAttrib() 2006-11-19 12:48:57 +00:00
Elias Naur 7ca70d8c5e Display: Don't add the shutdown hook twice when a previous create() call has failed 2006-11-19 11:43:00 +00:00
Brian Matzon d1cd4b851c beta4 2006-11-18 22:22:41 +00:00
Brian Matzon fa242848af JNI_VERSION restructure 2006-11-18 22:03:02 +00:00
Brian Matzon 1e806b9188 JNI_VERSION restructure 2006-11-18 21:56:31 +00:00
Kevin Glass 007fe5999e Updated Controllers event queue to make use of the new JInput
event queue, including adding getEventNanoseconds() to the 
Controllers interface. TestControllers against Logitech pad on
Win32 confirms that no behaviour changes are evident.
2006-11-17 08:08:21 +00:00
Kevin Glass 15fd0f6d81 Updated to return the controller name unmodified from JInput. 2006-11-17 07:17:12 +00:00
Elias Naur 70e3294b7b Restore old Mouse.create/Keyboard.create behavior which is to ignore create() when already created. 2006-11-16 12:29:52 +00:00
Elias Naur cd67b97e7c Made LWJGLUtil.getPathFromClassLoader run the protected ClassLoader.findLibrary in a privileged context. This is apparently necessary to get a valid path in some cases. This fixes (at least) a problem where OpenAL failed to locate the native openal library in a web start program. 2006-11-13 12:21:31 +00:00
Elias Naur 14b68631c9 Windows: Use WindowsKeyboard in WindowsAWTInput to ensure keyboard input. 2006-11-10 15:12:49 +00:00
Elias Naur 3a12b4bdd2 Remove AWTInputAdapter.update() and let users poll() Mouse and Keyboard directly 2006-11-10 13:52:18 +00:00
Elias Naur 216044ffa4 AWTGLCanvas: Make sure we don't paint while destroying the canvas 2006-11-10 11:44:00 +00:00
Elias Naur c0248a7ee4 AWTGLCanvas: Ignore failure to lock drawing surface, since that can happen when the component is being destroyed 2006-11-10 10:20:44 +00:00
Elias Naur 17e4a755de Don't use threads to repaint in test.applet.* tests 2006-11-09 11:10:59 +00:00
Elias Naur 9f3de4fd81 AWTGLCanvas: Synchronize paintGL() to avoid destroyContext while painting 2006-11-07 15:14:31 +00:00
Elias Naur b2e21da777 Windows: Implemented AWTInputAdapter. 2006-10-30 15:46:42 +00:00
Elias Naur 4c5a2fe644 Fixed AWTUtil.setCursorPosition. Added check to LinuxAWTInput. 2006-10-28 22:06:24 +00:00
Elias Naur b449fff026 Mac OS X: Fixed cursor warping coordinates 2006-10-27 08:15:31 +00:00
Elias Naur d396992cc5 Fixed potential NPE from Cursor.getCapabilities() 2006-10-27 06:27:58 +00:00
Elias Naur d4d39bf869 Made the AWT setCursorPosition garbage free 2006-10-27 06:04:55 +00:00
Elias Naur 23248b01c3 Mac OS X: Implemented AWTInputAdapter 2006-10-26 21:39:37 +00:00
Elias Naur fe7cde5cc5 Linux: Replaced obsolete hasFocus with isFocusOwner 2006-10-26 21:15:50 +00:00
Elias Naur a47e419168 Mac OS X: Moved mouse handling from MacOSXDisplay to MacOSXMouseEventQueue 2006-10-26 20:49:07 +00:00
Elias Naur 24e913477f Mac OS X: Fixed null delta_buffer in MacOSXMouseEventQueue 2006-10-26 20:33:40 +00:00
Elias Naur 3674d843c2 Added org.lwjgl.opengl.AWTInputAdapter which enabled use of Mouse and
Keyboard with AWTGLCanvases. Programs can now avoid implementing AWT input processing and access the mouse grabbing features from both Display and AWTGLCanvas. See org.lwjgl.test.opengl.awt.AWTInputAdapterTest for an example.

Note: This commit is the linux and generic AWT imlementation and can still
change a lot while implementing windows and mac os x.
2006-10-26 20:19:40 +00:00
Elias Naur 0a17002082 Don't register the Display shutdown hook in the static initializer. Register it at create() and remove it at destroy(). This avoids unnecessary conflicts when only using AWT stuff 2006-10-26 19:41:15 +00:00
Elias Naur fe1693a3c9 Mac OS X: Moved registering and unregistering of AWT listeners from MacOSXDisplay to the input handlers 2006-10-26 15:03:47 +00:00
Elias Naur 9e1254f6d1 Mac OS X: Moved AWT input handling to separate AWTUtil.java 2006-10-26 14:47:02 +00:00
Elias Naur 1616724cb5 Removed redundant import 2006-10-26 12:15:46 +00:00
Elias Naur 541ac859b1 Linux: Made cursor handles longs instead of ByteBuffers 2006-10-26 12:14:37 +00:00
Elias Naur 1802fa2d9d Linux: Added locking to LinuxMouse 2006-10-24 11:17:44 +00:00
Elias Naur 2de75e4fd9 Linux: Moved warp Atom from LinuxDisplay to LinuxMouse 2006-10-24 10:43:52 +00:00
Elias Naur a972dd272d Linux: Moved input event processing to LinuxKeyboard and LinuxMouse 2006-10-24 10:39:14 +00:00
Elias Naur 850f3c6b7f Linux: Removed redundant methods from LinuxDisplay.java 2006-10-24 09:59:00 +00:00
Elias Naur e23825c3e5 Linux: Moved more event handling logic to java 2006-10-24 09:52:12 +00:00
Elias Naur 1f5f8687bb Linux: Moved current_win to java 2006-10-23 20:40:48 +00:00
Elias Naur 61e7c9e081 Linux: Moved screen from native to java 2006-10-23 20:14:45 +00:00
Elias Naur 8296ae06cb Linux: Moved the pointer warp X11 atom from native to java 2006-10-23 19:51:22 +00:00
Elias Naur 5dba786574 Linux: Moved another Display instance to java 2006-10-23 14:22:27 +00:00
Elias Naur 1a83741b89 Linux: Moved another Display instance to java 2006-10-23 14:16:40 +00:00
Elias Naur 8c5f601e31 Linux: Added sanity check to LinuxDisplay.getDisplay() 2006-10-23 14:05:40 +00:00
Elias Naur dd76a4b0d8 Linux: Moved Display pointer from native to java 2006-10-23 13:58:33 +00:00
Elias Naur 2e75098673 Linux: Simplified LinuxMouse 2006-10-23 10:24:03 +00:00
Elias Naur 1c18537f1e AWTGears: Set background of window to black to avoid some resizing artifacts 2006-10-20 12:55:01 +00:00
Elias Naur 5d5dde0aed Remove redundant resizing of AWT canvases in AWT tests 2006-10-20 12:36:51 +00:00
Elias Naur 12d445c7ec Added nicer resizing to AWT tests 2006-10-20 12:32:33 +00:00
Elias Naur 8698cf68f3 Linux: Don't use the SUN specific getScreenFromDevice in LinuxAWTCanvasPeerInfo. This avoids garbage creation per frame and avoids one bit of SUN JRE dependency. 2006-10-20 11:51:34 +00:00
Elias Naur dc4a31e799 Undo debug stuff that accidentially went with the last commit. 2006-10-20 10:44:28 +00:00
Elias Naur d9e94b2d54 Don't repaint() from a separate thread in AWT demos. This results in a smoother rendering. 2006-10-20 10:42:43 +00:00
Elias Naur 9f7da6d483 Windows: Restore the old ToAscii code used on win9x platforms in an attempt to fix broken keyboard input on win98se machines. 2006-10-11 20:26:35 +00:00
Elias Naur dedfaea500 Windows: Don't use a dummy window (HDC) when finding a pixel format but use the actual window directly. This will avoid cases where the pixel format index for the dummy window's HDC wasn't valid for the actual window's HDC. It also avoid unnecessary complexity.
Fix FullScreenWindowedTest to use the Display's current BPP to avoid 24/16 bpp weirdness
2006-10-11 13:48:48 +00:00
Elias Naur ec9b449b78 Made Display.getImplementation package private, and made the input.* packages access it through reflection. 2006-10-08 09:05:16 +00:00
Elias Naur 9a684b77ab Bumped JNI library version 2006-09-21 14:39:10 +00:00
Elias Naur 87523ce63a Windows: Got rid of dummy window in WindowsDisplayPeerInfo 2006-09-19 14:17:13 +00:00
Elias Naur def08f06f8 Display.java: Moved Context creation to after createWindow to relax the requirement that the Display PeerInfo must be valid before createWindow(). This will help Windows get rid of a dummy window. 2006-09-19 13:41:18 +00:00
Elias Naur 08c39c86d2 Windows: Removed unused method in WindowsDisplayPeerInfo 2006-09-19 13:18:05 +00:00
Elias Naur 03c801b081 Linux: Map alt-gr to RMENU 2006-09-18 15:03:44 +00:00
Elias Naur 145f00031a Windows: Fixed NPE in Display.getVersion() 2006-09-08 08:29:16 +00:00
Ioannis Tsakpinis 71f67b1859 Added INVALID_FRAMEBUFFER_OPERATION_EXT in GLU.gluErrorString 2006-09-01 20:15:05 +00:00
Brian Matzon 93aa253732 fixed params (int -> float) 2006-08-31 16:40:53 +00:00
Elias Naur ec4a94d47d Don't throw exceptions on Mouse.getEventButtonState 2006-08-31 13:35:36 +00:00
Kevin Glass 7f9faf144d Removed sanity checks for controllers. All controllers are now reported allowing the developer to make the decision over which ones to display to the user. 2006-08-30 02:47:49 +00:00
Kevin Glass b1a4935212 Added sanity checks on reported controllers to prune out one with no Axis or no Buttons. 2006-08-21 17:26:28 +00:00
Kevin Glass 8ac762037f Update controllers test to not poll() the controllers from multiple threads. 2006-08-21 17:25:49 +00:00
Elias Naur dde118016c Update to beta3 2006-08-10 08:45:10 +00:00
Ioannis Tsakpinis 7f2440d950 Added OpenGL 2.1 support 2006-08-03 10:00:11 +00:00
Elias Naur 78006b3409 Make sure the mode member is never null in FullScreenWindowedTest 2006-08-01 10:36:13 +00:00