From: <eli...@us...> - 2008-04-10 20:47:39
|
Revision: 3003 http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3003&view=rev Author: elias_naur Date: 2008-04-10 13:47:29 -0700 (Thu, 10 Apr 2008) Log Message: ----------- Windows: Removed directinput files, since they are now unused. Fixed headers build.xml target Modified Paths: -------------- trunk/LWJGL/build.xml trunk/LWJGL/platform_build/windows_ant/build.xml trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDisplay.java Removed Paths: ------------- trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInput.java trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInput3.java trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInput8.java trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInputDevice.java trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInputDevice3.java trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInputDevice8.java trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInputDeviceObjectCallback.java trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInputMouse.java trunk/LWJGL/src/native/windows/org_lwjgl_opengl_WindowsDirectInput3.c trunk/LWJGL/src/native/windows/org_lwjgl_opengl_WindowsDirectInput8.c trunk/LWJGL/src/native/windows/org_lwjgl_opengl_WindowsDirectInputDevice3.c trunk/LWJGL/src/native/windows/org_lwjgl_opengl_WindowsDirectInputDevice8.c Modified: trunk/LWJGL/build.xml =================================================================== --- trunk/LWJGL/build.xml 2008-04-10 20:25:54 UTC (rev 3002) +++ trunk/LWJGL/build.xml 2008-04-10 20:47:29 UTC (rev 3003) @@ -435,7 +435,6 @@ <target name="headers" description="invokes javah on java classes" depends="compile"> <!-- platform specific classes --> <javah classpath="${lwjgl.bin}" destdir="${lwjgl.src.native}/linux" force="yes"> - <class name="org.lwjgl.opengl.LinuxAWTInput" /> <class name="org.lwjgl.opengl.LinuxEvent" /> <class name="org.lwjgl.opengl.LinuxMouse" /> <class name="org.lwjgl.opengl.LinuxKeyboard" /> @@ -450,12 +449,7 @@ <javah classpath="${lwjgl.bin}" destdir="${lwjgl.src.native}/windows" force="yes"> <!-- OpenGL --> - <class name="org.lwjgl.opengl.WindowsAWTInput" /> <class name="org.lwjgl.opengl.WindowsKeyboard" /> - <class name="org.lwjgl.opengl.WindowsDirectInput8" /> - <class name="org.lwjgl.opengl.WindowsDirectInputDevice8" /> - <class name="org.lwjgl.opengl.WindowsDirectInput3" /> - <class name="org.lwjgl.opengl.WindowsDirectInputDevice3" /> <class name="org.lwjgl.opengl.WindowsPbufferPeerInfo" /> <class name="org.lwjgl.opengl.WindowsDisplay" /> <class name="org.lwjgl.opengl.WindowsRegistry" /> Modified: trunk/LWJGL/platform_build/windows_ant/build.xml =================================================================== --- trunk/LWJGL/platform_build/windows_ant/build.xml 2008-04-10 20:25:54 UTC (rev 3002) +++ trunk/LWJGL/platform_build/windows_ant/build.xml 2008-04-10 20:47:29 UTC (rev 3003) @@ -4,7 +4,7 @@ <property name="native" location="../../src/native"/> <property environment="env"/> <property name="dxhome" location="${env.DXSDK_DIR}"/> - <property name="sdkhome" location="${env.MSSdk}"/> + <property name="sdkhome" location="${env.MSSDK}"/> <property name="program_files" location="${env.ProgramFiles}"/> <property name="alhome" location="${program_files}\OpenAL 1.1 with EFX SDK"/> <property name="dllname" value="lwjgl.dll"/> @@ -53,6 +53,9 @@ </target> <target name="compile"> + <echo message="${dxhome}"/> + <echo message="${sdkhome}"/> + <echo message="${program_files}"/> <property name="libs" value="Kernel32.lib ole32.lib dinput.lib dxguid.lib OpenGL32.Lib Version.lib user32.lib Gdi32.lib Advapi32.lib jawt.lib delayimp.lib winmm.lib"/> <antcall target="compile_dir"/> <antcall target="link"/> Deleted: trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInput.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInput.java 2008-04-10 20:25:54 UTC (rev 3002) +++ trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInput.java 2008-04-10 20:47:29 UTC (rev 3003) @@ -1,78 +0,0 @@ -/* - * Copyright (c) 2002-2008 LWJGL 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 'LWJGL' 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.opengl; - -/** - * This is the DirectInput base class - * @author elias_naur - */ - -import org.lwjgl.LWJGLException; - -abstract class WindowsDirectInput { - public final static int KEYBOARD_TYPE = 1; - public final static int MOUSE_TYPE = 2; - - /* DirectInput constants */ - public final static int DI_OK = 0x00000000; - public final static int DI_NOEFFECT = 0x00000001; - public final static int DI_PROPNOEFFECT = 0x00000001; - public final static int DI_POLLEDDEVICE = 0x00000002; - - public final static int DI_DOWNLOADSKIPPED = 0x00000003; - public final static int DI_EFFECTRESTARTED = 0x00000004; - public final static int DI_TRUNCATED = 0x00000008; - public final static int DI_SETTINGSNOTSAVED = 0x0000000B; - public final static int DI_TRUNCATEDANDRESTARTED = 0x0000000C; - - public final static int DI_BUFFEROVERFLOW = 0x00000001; - public final static int DIERR_INPUTLOST = 0x8007001E; - public final static int DIERR_NOTACQUIRED = 0x8007001C; - public final static int DIERR_OTHERAPPHASPRIO = 0x80070005; - - private final long di_interface; - - public WindowsDirectInput(long hinst) throws LWJGLException { - di_interface = createDirectInput(hinst); - } - protected abstract long createDirectInput(long hinst) throws LWJGLException; - - public WindowsDirectInputDevice createDevice(int type) throws LWJGLException { - return createDevice(di_interface, type); - } - protected abstract WindowsDirectInputDevice createDevice(long di_interface, int type) throws LWJGLException; - - public void release() { - release(di_interface); - } - protected abstract void release(long di_interface); -} Deleted: trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInput3.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInput3.java 2008-04-10 20:25:54 UTC (rev 3002) +++ trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInput3.java 2008-04-10 20:47:29 UTC (rev 3003) @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2002-2008 LWJGL 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 'LWJGL' 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.opengl; - -/** - * This is the DirectInput3 interface - * @author elias_naur - */ - -import org.lwjgl.LWJGLException; - -final class WindowsDirectInput3 extends WindowsDirectInput { - /* Re-define device types to get them included in the native headers */ - public final static int KEYBOARD_TYPE = WindowsDirectInput.KEYBOARD_TYPE; - public final static int MOUSE_TYPE = WindowsDirectInput.MOUSE_TYPE; - - public WindowsDirectInput3(long hinst) throws LWJGLException { - super(hinst); - } - - protected native long createDirectInput(long hinst) throws LWJGLException; - - protected WindowsDirectInputDevice createDevice(long di_interface, int type) throws LWJGLException { - long device = nCreateDevice(di_interface, type); - return new WindowsDirectInputDevice3(device); - } - private static native long nCreateDevice(long di_interface, int type) throws LWJGLException; - - protected native void release(long di_interface); -} Deleted: trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInput8.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInput8.java 2008-04-10 20:25:54 UTC (rev 3002) +++ trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInput8.java 2008-04-10 20:47:29 UTC (rev 3003) @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2002-2008 LWJGL 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 'LWJGL' 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.opengl; - -/** - * This is the DirectInput8 interface - * @author elias_naur - */ - -import org.lwjgl.LWJGLException; - -final class WindowsDirectInput8 extends WindowsDirectInput { - /* Re-define device types to get them included in the native headers */ - public final static int KEYBOARD_TYPE = WindowsDirectInput.KEYBOARD_TYPE; - public final static int MOUSE_TYPE = WindowsDirectInput.MOUSE_TYPE; - - public WindowsDirectInput8(long hinst) throws LWJGLException { - super(hinst); - } - - protected native long createDirectInput(long hinst) throws LWJGLException; - - protected WindowsDirectInputDevice createDevice(long di_interface, int type) throws LWJGLException { - long device = nCreateDevice(di_interface, type); - return new WindowsDirectInputDevice8(device); - } - private static native long nCreateDevice(long di_interface, int type) throws LWJGLException; - - protected native void release(long di_interface); -} Deleted: trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInputDevice.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInputDevice.java 2008-04-10 20:25:54 UTC (rev 3002) +++ trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInputDevice.java 2008-04-10 20:47:29 UTC (rev 3003) @@ -1,132 +0,0 @@ -/* - * Copyright (c) 2002-2008 LWJGL 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 'LWJGL' 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.opengl; - -/** - * This is the DirectInputDevice interface - * @author elias_naur - */ - -import java.nio.ByteBuffer; -import java.nio.IntBuffer; -import org.lwjgl.LWJGLException; -import org.lwjgl.BufferUtils; - -abstract class WindowsDirectInputDevice { - public final static int DISCL_EXCLUSIVE = 0x00000001; - public final static int DISCL_NONEXCLUSIVE = 0x00000002; - public final static int DISCL_FOREGROUND = 0x00000004; - public final static int DISCL_BACKGROUND = 0x00000008; - public final static int DISCL_NOWINKEY = 0x00000010; - - public final static int GUID_XAxis = 1; - public final static int GUID_YAxis = 2; - public final static int GUID_ZAxis = 3; - public final static int GUID_Button = 4; - public final static int GUID_Unknown = 5; - - public final static int DATA_SIZE = 3; - - private final long di_device; - private ByteBuffer event_buffer; - - public WindowsDirectInputDevice(long di_device) { - this.di_device = di_device; - } - - public void release() { - release(di_device); - } - protected abstract void release(long di_device); - - public int poll() { - return poll(di_device); - } - protected abstract int poll(long di_device); - - public void setDataFormat(int type) throws LWJGLException { - int ret = setDataFormat(di_device, type); - if (ret != WindowsDirectInput.DI_OK) - throw new LWJGLException("Failed to set data format (" + Integer.toHexString(ret) + ")"); - } - protected abstract int setDataFormat(long di_device, int type); - - public void setCooperateLevel(long hwnd, int flags) throws LWJGLException { - int ret = setCooperativeLevel(di_device, hwnd, flags); - if (ret != WindowsDirectInput.DI_OK) - throw new LWJGLException("Failed to set cooperative level (" + Integer.toHexString(ret) + ")"); - } - protected abstract int setCooperativeLevel(long di_device, long hwnd, int flags); - - public int acquire() { - return acquire(di_device); - } - protected abstract int acquire(long di_device); - - public void setBufferSize(int buffer_size) throws LWJGLException { - int ret = setBufferSize(di_device, buffer_size); - if (ret != WindowsDirectInput.DI_OK && ret != WindowsDirectInput.DI_PROPNOEFFECT && ret != WindowsDirectInput.DI_POLLEDDEVICE) - throw new LWJGLException("Failed to set buffer size (" + Integer.toHexString(ret) + ")"); - int event_buffer_size = getEventSize()*buffer_size; - event_buffer = BufferUtils.createByteBuffer(event_buffer_size); - } - protected abstract int setBufferSize(long di_device, int buffer_size); - - public int getDeviceData(IntBuffer buffer) { - int events_remaining = buffer.remaining()/DATA_SIZE; - if (event_buffer == null || events_remaining > event_buffer.remaining()/getEventSize()) - event_buffer = BufferUtils.createByteBuffer(events_remaining*getEventSize()); - return getDeviceData(di_device, event_buffer, event_buffer.capacity(), buffer, buffer.position(), buffer.remaining()); - } - protected abstract int getDeviceData(long di_device, ByteBuffer event_buffer, int event_buffer_size, IntBuffer buffer, int position, int size); - - /** - * Device data is returned in tuples of the form <dwOfs, dwData>. - * buffer position() is moved accordingly to number of events. - */ - public int getDeviceState(ByteBuffer buffer) { - return getDeviceState(di_device, buffer, buffer.position(), buffer.remaining()); - } - protected abstract int getDeviceState(long di_device, ByteBuffer buffer, int position, int size); - - public void unacquire() { - unacquire(di_device); - } - protected abstract int unacquire(long di_device); - - public int enumObjects(WindowsDirectInputDeviceObjectCallback enumerator) { - return enumObjects(di_device, enumerator); - } - protected abstract int enumObjects(long di_device, WindowsDirectInputDeviceObjectCallback enumerator); - - protected abstract int getEventSize(); -} Deleted: trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInputDevice3.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInputDevice3.java 2008-04-10 20:25:54 UTC (rev 3002) +++ trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInputDevice3.java 2008-04-10 20:47:29 UTC (rev 3003) @@ -1,78 +0,0 @@ -/* - * Copyright (c) 2002-2008 LWJGL 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 'LWJGL' 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.opengl; - -/** - * This is the DirectInputDevice3 interface - * @author elias_naur - */ - -import java.nio.ByteBuffer; -import java.nio.IntBuffer; - -final class WindowsDirectInputDevice3 extends WindowsDirectInputDevice { - /** Re-declare to get the constants into the native headers */ - public final static int GUID_XAxis = WindowsDirectInputDevice.GUID_XAxis; - public final static int GUID_YAxis = WindowsDirectInputDevice.GUID_YAxis; - public final static int GUID_ZAxis = WindowsDirectInputDevice.GUID_ZAxis; - public final static int GUID_Button = WindowsDirectInputDevice.GUID_Button; - public final static int GUID_Unknown = WindowsDirectInputDevice.GUID_Unknown; - - public final static int DATA_SIZE = WindowsDirectInputDevice.DATA_SIZE; - - public WindowsDirectInputDevice3(long di_device) { - super(di_device); - } - - protected native int setDataFormat(long di_device, int type); - - protected native int setCooperativeLevel(long di_device, long hwnd, int flags); - - protected native int acquire(long di_device); - - protected native int getDeviceState(long di_device, ByteBuffer buffer, int position, int size); - - protected native int getDeviceData(long di_device, ByteBuffer event_buffer, int event_buffer_size, IntBuffer buffer, int position, int size); - - protected native int unacquire(long di_device); - - protected int poll(long di_device) { - return WindowsDirectInput.DI_OK; - } - - protected native int setBufferSize(long di_device, int buffer_size); - protected native int getEventSize(); - - protected native void release(long di_device); - - protected native int enumObjects(long di_device, WindowsDirectInputDeviceObjectCallback enumerator); -} Deleted: trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInputDevice8.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInputDevice8.java 2008-04-10 20:25:54 UTC (rev 3002) +++ trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInputDevice8.java 2008-04-10 20:47:29 UTC (rev 3003) @@ -1,76 +0,0 @@ -/* - * Copyright (c) 2002-2008 LWJGL 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 'LWJGL' 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.opengl; - -/** - * This is the DirectInputDevice3 interface - * @author elias_naur - */ - -import java.nio.ByteBuffer; -import java.nio.IntBuffer; - -final class WindowsDirectInputDevice8 extends WindowsDirectInputDevice { - /** Re-declare to get the constants into the native headers */ - public final static int GUID_XAxis = WindowsDirectInputDevice.GUID_XAxis; - public final static int GUID_YAxis = WindowsDirectInputDevice.GUID_YAxis; - public final static int GUID_ZAxis = WindowsDirectInputDevice.GUID_ZAxis; - public final static int GUID_Button = WindowsDirectInputDevice.GUID_Button; - public final static int GUID_Unknown = WindowsDirectInputDevice.GUID_Unknown; - - public final static int DATA_SIZE = WindowsDirectInputDevice.DATA_SIZE; - - public WindowsDirectInputDevice8(long di_device) { - super(di_device); - } - - protected native int setDataFormat(long di_device, int type); - - protected native int setCooperativeLevel(long di_device, long hwnd, int flags); - - protected native int acquire(long di_device); - - protected native int getDeviceState(long di_device, ByteBuffer buffer, int position, int size); - - protected native int getDeviceData(long di_device, ByteBuffer event_buffer, int event_buffer_size, IntBuffer buffer, int position, int size); - - protected native int unacquire(long di_device); - - protected native int poll(long di_device); - - protected native int setBufferSize(long di_device, int buffer_size); - protected native int getEventSize(); - - protected native void release(long di_device); - - protected native int enumObjects(long di_device, WindowsDirectInputDeviceObjectCallback enumerator); -} Deleted: trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInputDeviceObjectCallback.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInputDeviceObjectCallback.java 2008-04-10 20:25:54 UTC (rev 3002) +++ trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInputDeviceObjectCallback.java 2008-04-10 20:47:29 UTC (rev 3003) @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2002-2008 LWJGL 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 'LWJGL' 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.opengl; - -/** - * This is the DirectInputDevice callback interface - * @author elias_naur - */ - -interface WindowsDirectInputDeviceObjectCallback { - public boolean nextObject(int type, String name); -} Deleted: trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInputMouse.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInputMouse.java 2008-04-10 20:25:54 UTC (rev 3002) +++ trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDirectInputMouse.java 2008-04-10 20:47:29 UTC (rev 3003) @@ -1,352 +0,0 @@ -/* - * Copyright (c) 2002-2008 LWJGL 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 'LWJGL' 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.opengl; - -/** - * This is the Windows implementation of the Mouse. - * @author elias_naur - */ - -import java.nio.ByteBuffer; -import java.nio.IntBuffer; - -import org.lwjgl.BufferUtils; -import org.lwjgl.LWJGLException; -import org.lwjgl.LWJGLUtil; -import org.lwjgl.input.Mouse; - -final class WindowsDirectInputMouse { - private final static int BUFFER_SIZE = 50; - private final static int BUTTON_STATES_SIZE = 7; - - private final static int DIMOFS_X = 0; - private final static int DIMOFS_Y = 4; - private final static int DIMOFS_Z = 8; - private final static int DIMOFS_BUTTON0 = 12; - private final static int DIMOFS_BUTTON1 = 13; - private final static int DIMOFS_BUTTON2 = 14; - private final static int DIMOFS_BUTTON3 = 15; - - private final long hwnd; - private final WindowsDirectInput dinput; - private final WindowsDirectInputDevice mouse; - - private final int mouse_button_count; - private final boolean has_wheel; - - private final EventQueue event_queue = new EventQueue(Mouse.EVENT_SIZE); - /* Buffer to hold a DIMOUSESTATE */ - private final ByteBuffer mouse_state; - private final IntBuffer temp_data_buffer; - - private final ByteBuffer mouse_event = ByteBuffer.allocate(Mouse.EVENT_SIZE); - - private boolean mouse_grabbed; - private byte[] win32_message_button_states = new byte[BUTTON_STATES_SIZE]; - private int accum_dwheel; - private int last_x; - private int last_y; - - public WindowsDirectInputMouse(WindowsDirectInput dinput, long hwnd) throws LWJGLException { - this.hwnd = hwnd; - this.dinput = dinput; - try { - mouse = dinput.createDevice(WindowsDirectInput.MOUSE_TYPE); - try { - mouse.setDataFormat(WindowsDirectInput.MOUSE_TYPE); - mouse.setBufferSize(BUFFER_SIZE); - if (!acquireNonExclusive()) - throw new LWJGLException("Failed to acquire mouse non-exclusive"); - } catch (LWJGLException e) { - mouse.release(); - throw e; - } - } catch (LWJGLException e) { - dinput.release(); - throw e; - } - MouseEnumerator enumerator = new MouseEnumerator(); - mouse.enumObjects(enumerator); - this.mouse_button_count = Math.min(enumerator.getButtonCount(), 4); - this.has_wheel = enumerator.hasWheel(); - mouse_state = BufferUtils.createByteBuffer(3*4 + 4); - temp_data_buffer = BufferUtils.createIntBuffer(BUFFER_SIZE*WindowsDirectInputDevice.DATA_SIZE); - } - - public boolean hasWheel() { - return has_wheel; - } - - public int getButtonCount() { - return mouse_button_count; - } - - private boolean acquire(int flags) { - try { - mouse.setCooperateLevel(hwnd, flags); - mouse.acquire(); - return true; - } catch (LWJGLException e) { - LWJGLUtil.log("Failed to acquire mouse: " + e); - return false; - } - } - - private boolean acquireNonExclusive() { - return acquire(WindowsDirectInputDevice.DISCL_NONEXCLUSIVE | WindowsDirectInputDevice.DISCL_FOREGROUND) || - acquire(WindowsDirectInputDevice.DISCL_NONEXCLUSIVE | WindowsDirectInputDevice.DISCL_BACKGROUND); - } - - public void destroy() { - mouse.unacquire(); - mouse.release(); - dinput.release(); - } - - public void poll(IntBuffer coord_buffer, ByteBuffer buttons) { - int ret = mouse.acquire(); - if (ret != WindowsDirectInput.DI_OK && ret != WindowsDirectInput.DI_NOEFFECT) - return; - mouse.poll(); - for (int i = 0; i < coord_buffer.remaining(); i++) - coord_buffer.put(coord_buffer.position() + i, 0); - mouse_state.clear(); - ret = mouse.getDeviceState(mouse_state); - int mouse_state_lx = mouse_state.getInt(); - int mouse_state_ly = mouse_state.getInt(); - int mouse_state_lz = mouse_state.getInt(); - int num_buttons = mouse_button_count; - if (mouse_grabbed || ret == WindowsDirectInput.DI_OK) { - if (ret != WindowsDirectInput.DI_OK) { - LWJGLUtil.log("Error getting mouse state: (0x" + Integer.toHexString(ret) + ")"); - return; - } - - coord_buffer.put(coord_buffer.position() + 2, mouse_state_lz); - if (num_buttons > buttons.remaining()) - num_buttons = buttons.remaining(); - for (int j = 0; j < num_buttons; j++) { - byte button_state = (mouse_state.get() & 0x80) != 0 ? (byte)1 : (byte)0; - buttons.put(buttons.position() + j, button_state); - // track the button state in the windows message buffer state array - // to get accurate button information when releasing a grab - win32_message_button_states[j] = button_state; - } - } else { - coord_buffer.put(coord_buffer.position() + 2, accum_dwheel); - if (num_buttons > win32_message_button_states.length) - num_buttons = win32_message_button_states.length; - for (int j = 0; j < num_buttons; j++) { - buttons.put(buttons.position() + j, win32_message_button_states[j]); - } - } - accum_dwheel = 0; - if (mouse_grabbed) { - coord_buffer.put(coord_buffer.position() + 0, mouse_state_lx); - coord_buffer.put(coord_buffer.position() + 1, -mouse_state_ly); - } else { - coord_buffer.put(coord_buffer.position() + 0, last_x); - coord_buffer.put(coord_buffer.position() + 1, last_y); - } - } - - private void putMouseEventWithCoords(byte button, byte state, int coord1, int coord2, int dz, long nanos) { - mouse_event.clear(); - mouse_event.put(button).put(state).putInt(coord1).putInt(coord2).putInt(dz).putLong(nanos); - mouse_event.flip(); - event_queue.putEvent(mouse_event); - } - - private void putMouseEvent(byte button, byte state, int dz, long nanos) { - if (mouse_grabbed) - putMouseEventWithCoords(button, state, 0, 0, dz, nanos); - else - putMouseEventWithCoords(button, state, last_x, last_y, dz, nanos); - } - - private void copyDXEvents(IntBuffer buffer) { - int buffer_index = 0; - int dx = 0, dy = 0, dwheel = 0; - byte button_state; - int i; - long nanos = 0; - while (buffer.hasRemaining()) { - int dwOfs = buffer.get(); - int dwData = buffer.get(); - long dwTimeStamp = ((long)buffer.get()) & 0xFFFFFFFF; - nanos = dwTimeStamp*1000000; - button_state = (dwData & 0x80) != 0 ? (byte)1 : (byte)0; - switch (dwOfs) { - case DIMOFS_BUTTON0: - putMouseEventWithCoords((byte)0, button_state, dx, -dy, dwheel, nanos); - dx = dy = dwheel = 0; - break; - case DIMOFS_BUTTON1: - putMouseEventWithCoords((byte)1, button_state, dx, -dy, dwheel, nanos); - dx = dy = dwheel = 0; - break; - case DIMOFS_BUTTON2: - putMouseEventWithCoords((byte)2, button_state, dx, -dy, dwheel, nanos); - dx = dy = dwheel = 0; - break; - case DIMOFS_BUTTON3: - putMouseEventWithCoords((byte)3, button_state, dx, -dy, dwheel, nanos); - dx = dy = dwheel = 0; - break; - case DIMOFS_X: - dx += dwData; - break; - case DIMOFS_Y: - dy += dwData; - break; - case DIMOFS_Z: - dwheel += dwData; - break; - } - } - if (dx != 0 || dy != 0 || dwheel != 0) - putMouseEventWithCoords((byte)-1, (byte)0, dx, -dy, dwheel, nanos); - } - - private void readDXBuffer() { - int ret = mouse.acquire(); - if (ret != WindowsDirectInput.DI_OK && ret != WindowsDirectInput.DI_NOEFFECT) - return; - mouse.poll(); - temp_data_buffer.clear(); - ret = mouse.getDeviceData(temp_data_buffer); - - switch (ret) { - case WindowsDirectInput.DI_OK: - break; - case WindowsDirectInput.DI_BUFFEROVERFLOW: - LWJGLUtil.log("Mouse buffer overflowed"); - break; - case WindowsDirectInput.DIERR_INPUTLOST: - LWJGLUtil.log("Mouse input lost"); - break; - case WindowsDirectInput.DIERR_NOTACQUIRED: - LWJGLUtil.log("Mouse not acquired"); - break; - default: - LWJGLUtil.log("unknown mouse error (" + Integer.toHexString(ret) + ")"); - break; - } - } - - public final void flush() { - readDXBuffer(); - temp_data_buffer.clear(); - } - - public void read(ByteBuffer buffer) { - readDXBuffer(); - if (mouse_grabbed) { - temp_data_buffer.flip(); - copyDXEvents(temp_data_buffer); - } - event_queue.copyEvents(buffer); - } - - public void grab(boolean grab) { - if(grab) { - if (!mouse_grabbed) { - flush(); - mouse_grabbed = true; - mouse.unacquire(); - if (!acquire(WindowsDirectInputDevice.DISCL_EXCLUSIVE | WindowsDirectInputDevice.DISCL_FOREGROUND)) - LWJGLUtil.log("Failed to reset cooperative mode"); - } - } else { - if (mouse_grabbed) { - mouse_grabbed = false; - mouse.unacquire(); - acquireNonExclusive(); - } - } - event_queue.clearEvents(); - } - - public void handleMouseScrolled(int event_dwheel, long millis) { - accum_dwheel += event_dwheel; - putMouseEvent((byte)-1, (byte)0, event_dwheel, millis*1000000); - } - - public void handleMouseMoved(int x, int y, long millis) { - int dx; - int dy; - dx = x - last_x; - dy = y - last_y; - last_x = x; - last_y = y; - long nanos = millis*1000000; - if (mouse_grabbed) { - putMouseEventWithCoords((byte)-1, (byte)0, dx, dy, 0, nanos); - } else { - putMouseEventWithCoords((byte)-1, (byte)0, x, y, 0, nanos); - } - } - - public void handleMouseButton(byte button, byte state, long millis) { - putMouseEvent(button, state, 0, millis*1000000); - if (button < BUTTON_STATES_SIZE) - win32_message_button_states[button] = state != 0 ? (byte)1 : (byte)0; - } - - private static class MouseEnumerator implements WindowsDirectInputDeviceObjectCallback { - private int button_count; - private boolean has_wheel; - - public int getButtonCount() { - return button_count; - } - - public boolean hasWheel() { - return has_wheel; - } - - public boolean nextObject(int type, String name) { - LWJGLUtil.log("Found mouse object: " + name); - switch (type) { - case WindowsDirectInputDevice.GUID_ZAxis: - has_wheel = true; - break; - case WindowsDirectInputDevice.GUID_Button: - button_count++; - break; - default: - break; - } - return true; - } - } -} Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDisplay.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDisplay.java 2008-04-10 20:25:54 UTC (rev 3002) +++ trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDisplay.java 2008-04-10 20:47:29 UTC (rev 3003) @@ -205,15 +205,6 @@ rect.offset(offset_x, offset_y); } - static WindowsDirectInput createDirectInput() throws LWJGLException { - try { - return new WindowsDirectInput8(getDllInstance()); - } catch (LWJGLException e) { - LWJGLUtil.log("Failed to create DirectInput 8 interface, falling back to DirectInput 3"); - return new WindowsDirectInput3(getDllInstance()); - } - } - static void setupCursorClipping(long hwnd) throws LWJGLException { cursor_clipped = true; getGlobalClientRect(hwnd, rect); Deleted: trunk/LWJGL/src/native/windows/org_lwjgl_opengl_WindowsDirectInput3.c =================================================================== --- trunk/LWJGL/src/native/windows/org_lwjgl_opengl_WindowsDirectInput3.c 2008-04-10 20:25:54 UTC (rev 3002) +++ trunk/LWJGL/src/native/windows/org_lwjgl_opengl_WindowsDirectInput3.c 2008-04-10 20:47:29 UTC (rev 3003) @@ -1,88 +0,0 @@ -/* - * Copyright (c) 2002-2008 LWJGL 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 'LWJGL' 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. - */ - -/** - * $Id: org_lwjgl_input_Keyboard.c 2385 2006-06-23 16:45:21Z elias_naur $ - * - * @author elias_naur <eli...@us...> - * @version $Revision: 2385 $ - */ - -#undef DIRECTINPUT_VERSION -#define DIRECTINPUT_VERSION 0x0300 -#include "Window.h" -#include <dinput.h> -#include <jni.h> -#include "org_lwjgl_opengl_WindowsDirectInput3.h" - -JNIEXPORT jlong JNICALL Java_org_lwjgl_opengl_WindowsDirectInput3_createDirectInput(JNIEnv *env, jobject unused, jlong hinst_int) { - HINSTANCE hinst = (HINSTANCE)(LONG_PTR)hinst_int; - LPDIRECTINPUT lpdi; - HRESULT ret; - - ret = DirectInputCreate(hinst, DIRECTINPUT_VERSION, &lpdi, NULL); - if (ret != DI_OK) { - throwFormattedException(env, "Failed to create DirectInput (%x)", ret); - return (LONG_PTR)NULL; - } - return (LONG_PTR)lpdi; -} - -JNIEXPORT jlong JNICALL Java_org_lwjgl_opengl_WindowsDirectInput3_nCreateDevice(JNIEnv *env, jclass unused, jlong di_interface, jint type) { - LPDIRECTINPUT lpdi = (LPDIRECTINPUT)(LONG_PTR)di_interface; - LPDIRECTINPUTDEVICE lpdevice; - GUID device_guid; - HRESULT ret; - - switch (type) { - case org_lwjgl_opengl_WindowsDirectInput3_KEYBOARD_TYPE: - device_guid = GUID_SysKeyboard; - break; - case org_lwjgl_opengl_WindowsDirectInput3_MOUSE_TYPE: - device_guid = GUID_SysMouse; - break; - default: - throwFormattedException(env, "Unknown device type (%d)", type); - return (LONG_PTR)NULL; - } - ret = IDirectInput_CreateDevice(lpdi, &device_guid, &lpdevice, NULL); - if (ret != DI_OK) { - throwFormattedException(env, "Failed to create keyboard (%x).", ret); - return (LONG_PTR)NULL; - } - return (LONG_PTR)lpdevice; -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_WindowsDirectInput3_release(JNIEnv *env, jobject unused, jlong di_interface) { - LPDIRECTINPUT lpdi = (LPDIRECTINPUT)(LONG_PTR)di_interface; - IDirectInput_Release(lpdi); -} Deleted: trunk/LWJGL/src/native/windows/org_lwjgl_opengl_WindowsDirectInput8.c =================================================================== --- trunk/LWJGL/src/native/windows/org_lwjgl_opengl_WindowsDirectInput8.c 2008-04-10 20:25:54 UTC (rev 3002) +++ trunk/LWJGL/src/native/windows/org_lwjgl_opengl_WindowsDirectInput8.c 2008-04-10 20:47:29 UTC (rev 3003) @@ -1,101 +0,0 @@ -/* - * Copyright (c) 2002-2008 LWJGL 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 'LWJGL' 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. - */ - -/** - * $Id: org_lwjgl_input_Keyboard.c 2385 2006-06-23 16:45:21Z elias_naur $ - * - * @author elias_naur <eli...@us...> - * @version $Revision: 2385 $ - */ - -#undef DIRECTINPUT_VERSION -#define DIRECTINPUT_VERSION 0x0800 -#include "Window.h" -#include <dinput.h> -#include <jni.h> -#include "org_lwjgl_opengl_WindowsDirectInput8.h" - -JNIEXPORT jlong JNICALL Java_org_lwjgl_opengl_WindowsDirectInput8_createDirectInput(JNIEnv *env, jobject unused, jlong hinst_int) { - HINSTANCE hinst = (HINSTANCE)(LONG_PTR)hinst_int; - LPDIRECTINPUT8 lpdi; - HRESULT ret; - - ret = CoInitialize(NULL); - if (ret != S_OK && ret != S_FALSE) { - throwFormattedException(env, "CoInitialize failed (%x)", ret); - return (LONG_PTR)NULL; - } - ret = CoCreateInstance(&CLSID_DirectInput8, NULL, CLSCTX_INPROC_SERVER, &IID_IDirectInput8, (void *)&lpdi); - if (ret != DI_OK && ret != DIERR_BETADIRECTINPUTVERSION) { - throwFormattedException(env, "Failed to create DirectInput (%x)", ret); - return (LONG_PTR)NULL; - } - - ret = IDirectInput8_Initialize(lpdi, hinst, DIRECTINPUT_VERSION); - if (FAILED(ret)) { - throwFormattedException(env, "Failed to initialize DirectInput (%x)", ret); - IDirectInput8_Release(lpdi); - return (LONG_PTR)NULL; - } - return (LONG_PTR)lpdi; -} - -JNIEXPORT jlong JNICALL Java_org_lwjgl_opengl_WindowsDirectInput8_nCreateDevice(JNIEnv *env, jclass unused, jlong di_interface, jint type) { - LPDIRECTINPUT8 lpdi = (LPDIRECTINPUT8)(LONG_PTR)di_interface; - LPDIRECTINPUTDEVICE8 lpdevice; - GUID device_guid; - HRESULT ret; - - switch (type) { - case org_lwjgl_opengl_WindowsDirectInput8_KEYBOARD_TYPE: - device_guid = GUID_SysKeyboard; - break; - case org_lwjgl_opengl_WindowsDirectInput8_MOUSE_TYPE: - device_guid = GUID_SysMouse; - break; - default: - throwFormattedException(env, "Unknown device type (%d)", type); - return (LONG_PTR)NULL; - } - ret = IDirectInput8_CreateDevice(lpdi, &device_guid, &lpdevice, NULL); - if (ret != DI_OK) { - throwFormattedException(env, "Failed to create keyboard (%x).", ret); - return (LONG_PTR)NULL; - } - return (LONG_PTR)lpdevice; -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_WindowsDirectInput8_release(JNIEnv *env, jobject unused, jlong di_interface) { - LPDIRECTINPUT8 lpdi = (LPDIRECTINPUT8)(LONG_PTR)di_interface; - IDirectInput8_Release(lpdi); - CoUninitialize(); -} Deleted: trunk/LWJGL/src/native/windows/org_lwjgl_opengl_WindowsDirectInputDevice3.c =================================================================== --- trunk/LWJGL/src/native/windows/org_lwjgl_opengl_WindowsDirectInputDevice3.c 2008-04-10 20:25:54 UTC (rev 3002) +++ trunk/LWJGL/src/native/windows/org_lwjgl_opengl_WindowsDirectInputDevice3.c 2008-04-10 20:47:29 UTC (rev 3003) @@ -1,160 +0,0 @@ -/* - * Copyright (c) 2002-2008 LWJGL 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 'LWJGL' 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. - */ - -/** - * $Id: org_lwjgl_input_Keyboard.c 2385 2006-06-23 16:45:21Z elias_naur $ - * - * @author elias_naur <eli...@us...> - * @version $Revision: 2385 $ - */ - -#undef DIRECTINPUT_VERSION -#define DIRECTINPUT_VERSION 0x0300 -#include "Window.h" -#include "dinputhelper.h" -#include <dinput.h> -#include <jni.h> -#include "org_lwjgl_opengl_WindowsDirectInput3.h" -#include "org_lwjgl_opengl_WindowsDirectInputDevice3.h" - -JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_WindowsDirectInputDevice3_unacquire(JNIEnv *env, jobject unused, jlong di_device) { - LPDIRECTINPUTDEVICE lpdevice = (LPDIRECTINPUTDEVICE)(LONG_PTR)di_device; - return IDirectInputDevice_Unacquire(lpdevice); -} - -JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_WindowsDirectInputDevice3_setDataFormat(JNIEnv *env, jobject unused, jlong di_device, jint type) { - LPDIRECTINPUTDEVICE lpdevice = (LPDIRECTINPUTDEVICE)(LONG_PTR)di_device; - LPCDIDATAFORMAT format; - - switch (type) { - case org_lwjgl_opengl_WindowsDirectInput3_KEYBOARD_TYPE: - format = &c_dfDIKeyboard; - break; - case org_lwjgl_opengl_WindowsDirectInput3_MOUSE_TYPE: - format = &c_dfDIMouse; - break; - default: - throwFormattedException(env, "Unknown device type (%d)", type); - return DIERR_INVALIDPARAM; - } - return IDirectInputDevice_SetDataFormat(lpdevice, format); -} - -JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_WindowsDirectInputDevice3_getDeviceState(JNIEnv *env, jobject unused, jlong di_device, jobject buffer_obj, jint pos, jint size) { - LPDIRECTINPUTDEVICE lpdevice = (LPDIRECTINPUTDEVICE)(LONG_PTR)di_device; - jbyte *buffer = pos + (jbyte *)(*env)->GetDirectBufferAddress(env, buffer_obj); - return IDirectInputDevice_GetDeviceState(lpdevice, size, buffer); -} - -JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_WindowsDirectInputDevice3_getEventSize(JNIEnv *env, jobject unused) { - return sizeof(DIDEVICEOBJECTDATA); -} - -JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_WindowsDirectInputDevice3_getDeviceData(JNIEnv *env, jobject unused, jlong di_device, jobject event_buffer_obj, jint event_buffer_size, jobject buffer_obj, jint buffer_pos, jint buffer_size) { - LPDIRECTINPUTDEVICE lpdevice = (LPDIRECTINPUTDEVICE)(LONG_PTR)di_device; - jint *buffer = buffer_pos + (jint *)(*env)->GetDirectBufferAddress(env, buffer_obj); - DIDEVICEOBJECTDATA *event_buffer = (*env)->GetDirectBufferAddress(env, event_buffer_obj); - DIDEVICEOBJECTDATA *current_event; - DWORD num_events = event_buffer_size/sizeof(DIDEVICEOBJECTDATA); - HRESULT ret = IDirectInputDevice_GetDeviceData(lpdevice, sizeof(DIDEVICEOBJECTDATA), event_buffer, &num_events, 0); - jint num_buffer_events = buffer_size/org_lwjgl_opengl_WindowsDirectInputDevice3_DATA_SIZE; - jint i; - if (ret != DI_OK && ret != DI_BUFFEROVERFLOW) - return ret; - - if (num_buffer_events < num_events) { - num_events = num_buffer_events; - ret = DI_BUFFEROVERFLOW; - } - for (i = 0; i < num_events; i++) { - current_event = event_buffer + i; - buffer[buffer_pos++] = current_event->dwOfs; - buffer[buffer_pos++] = current_event->dwData; - buffer[buffer_pos++] = current_event->dwTimeStamp; - } - positionBuffer(env, buffer_obj, buffer_pos); - return ret; -} - -JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_WindowsDirectInputDevice3_acquire(JNIEnv *env, jobject unused, jlong di_device) { - LPDIRECTINPUTDEVICE lpdevice = (LPDIRECTINPUTDEVICE)(LONG_PTR)di_device; - return IDirectInputDevice_Acquire(lpdevice); -} - -JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_WindowsDirectInputDevice3_setBufferSize(JNIEnv *env, jobject unused, jlong di_device, jint buffer_size) { - LPDIRECTINPUTDEVICE lpdevice = (LPDIRECTINPUTDEVICE)(LONG_PTR)di_device; - DIPROPDWORD dipropdw; - dipropdw.diph.dwSize = sizeof(DIPROPDWORD); - dipropdw.diph.dwHeaderSize = sizeof(DIPROPHEADER); - dipropdw.diph.dwObj = 0; - dipropdw.diph.dwHow = DIPH_DEVICE; - dipropdw.dwData = buffer_size; - return IDirectInputDevice_SetProperty(lpdevice, DIPROP_BUFFERSIZE, &dipropdw.diph); -} - -JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_WindowsDirectInputDevice3_setCooperativeLevel(JNIEnv *env, jobject unused, jlong di_device, jlong hwnd_int, jint flags) { - LPDIRECTINPUTDEVICE lpdevice = (LPDIRECTINPUTDEVICE)(LONG_PTR)di_device; - HWND hwnd = (HWND)(LONG_PTR)hwnd_int; - return IDirectInputDevice_SetCooperativeLevel(lpdevice, hwnd, flags); -} - -JNIEXPORT void JNICALL Java_org_lwjgl_opengl_WindowsDirectInputDevice3_release(JNIEnv *env, jobject unused, jlong di_device) { - LPDIRECTINPUTDEVICE lpdevice = (LPDIRECTINPUTDEVICE)(LONG_PTR)di_device; - IDirectInputDevice_Release(lpdevice); -} - -static BOOL CALLBACK EnumMouseObjectsCallback(LPCDIDEVICEOBJECTINSTANCE lpddoi, LPVOID pvRef) { - enum_context_t *enum_context = (enum_context_t *)pvRef; - jint object_type; - - if (IsEqualGUID(&lpddoi->guidType, &GUID_Button)) { - object_type = org_lwjgl_opengl_WindowsDirectInputDevice3_GUID_Button; - } else if(IsEqualGUID(&lpddoi->guidType, &GUID_XAxis)) { - object_type = org_lwjgl_opengl_WindowsDirectInputDevice3_GUID_XAxis; - } else if(IsEqualGUID(&lpddoi->guidType, &GUID_YAxis)) { - object_type = org_lwjgl_opengl_WindowsDirectInputDevice3_GUID_YAxis; - } else if(IsEqualGUID(&lpddoi->guidType, &GUID_ZAxis)) { - object_type = org_lwjgl_opengl_WindowsDirectInputDevice3_GUID_ZAxis; - } else { - object_type = org_lwjgl_opengl_WindowsDirectInputDevice3_GUID_Unknown; - } - - return objectCallback(enum_context->env, enum_context->enumerator, object_type, lpddoi->tszName) ? DIENUM_CONTINUE : DIENUM_STOP; -} - -JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_WindowsDirectInputDevice3_enumObjects(JNIEnv *env, jobject unused, jlong di_device, jobject enumerator) { - LPDIRECTINPUTDEVICE lpdevice = (LPDIRECTINPUTDEVICE)(LONG_PTR)di_device; - enum_context_t enum_context; - enum_context.env = env; - enum_context.enumerator = enumerator; - return IDirectInputDevice_EnumObjects(lpdevice, EnumMouseObjectsCallback, &enum_context, DIDFT_ALL); -} Deleted: trunk/LWJGL/src/native/windows/org_lwjgl_opengl_WindowsDirectInputDevice8.c =================================================================== --- trunk/LWJGL/src/native/windows/org_lwjgl_opengl_WindowsDirectInputDevice8.c 2008-04-10 20:25:54 UTC (rev 3002) +++ trunk/LWJGL/src/native/windows/org_lwjgl_opengl_WindowsDirectInputDevice8.c 2008-04-10 20:47:29 UTC (rev 3003) @@ -1,165 +0,0 @@ -/* - * Copyright (c) 2002-2008 LWJGL 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 'LWJGL' 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. - */ - -/** - * $Id: org_lwjgl_input_Keyboard.c 2385 2006-06-23 16:45:21Z elias_naur $ - * - * @author elias_naur <eli...@us...> - * @version $Revision: 2385 $ - */ - -#undef DIRECTINPUT_VERSION -#define DIRECTINPUT_VERSION 0x0800 -#include "Window.h" -#include "dinputhelper.h" -#include <dinput.h> -#include <jni.h> -#include "org_lwjgl_opengl_WindowsDirectInput8.h" -#include "org_lwjgl_opengl_WindowsDirectInputDevice8.h" - -JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_WindowsDirectInputDevice8_unacquire(JNIEnv *env, jobject unused, jlong di_device) { - LPDIRECTINPUTDEVICE8 lpdevice = (LPDIRECTINPUTDEVICE8)(LONG_PTR)di_device; - return IDirectInputDevice8_Unacquire(lpdevice); -} - -JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_WindowsDirectInputDevice8_poll(JNIEnv *env, jobject unused, jlong di_device) { - LPDIRECTINPUTDEVICE8 lpdevice = (LPDIRECTINPUTDEVICE8)(LONG_PTR)di_device; - return IDirectInputDevice8_Poll(lpdevice); -} - -JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_WindowsDirectInputDevice8_setDataFormat(JNIEnv *env, jobject unused, jlong di_device, jint type) { - LPDIRECTINPUTDEVI... [truncated message content] |