This commit is contained in:
Mark Bernard 2007-08-22 23:11:54 +00:00
parent 9182e5b3ae
commit 8291c7f163
31 changed files with 4461 additions and 0 deletions

View File

@ -0,0 +1,120 @@
#include <D3dx9math.h>
#include "org_lwjgl_d3d_D3DUtil.h"
/*
* Class: org_lwjgl_d3d_D3DUtil
* Method: nD3DXMatrixLookAtLH
* Signature: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_D3DUtil_nD3DXMatrixLookAtLH
(JNIEnv *env, jclass clazz, jobject outBuffer, jobject eyeBuffer, jobject atBuffer, jobject upBuffer) {
D3DXMATRIX* out = (D3DXMATRIX*)((*env)->GetDirectBufferAddress(env, outBuffer));
CONST D3DXVECTOR3 *eye = (D3DXVECTOR3*)((*env)->GetDirectBufferAddress(env, eyeBuffer));
CONST D3DXVECTOR3 *at = (D3DXVECTOR3*)((*env)->GetDirectBufferAddress(env, atBuffer));
CONST D3DXVECTOR3 *up = (D3DXVECTOR3*)((*env)->GetDirectBufferAddress(env, upBuffer));
D3DXMatrixLookAtLH(out, eye, at, up);
}
/*
* Class: org_lwjgl_d3d_D3DUtil
* Method: nD3DXMatrixPerspectiveFovLH
* Signature: (Ljava/nio/ByteBuffer;FFFF)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_D3DUtil_nD3DXMatrixPerspectiveFovLH
(JNIEnv *env, jclass clazz, jobject outBuffer, jfloat fovy, jfloat aspect, jfloat zn, jfloat zf) {
D3DXMATRIX *out = (D3DXMATRIX*)((*env)->GetDirectBufferAddress(env, outBuffer));
D3DXMatrixPerspectiveFovLH(out, fovy, aspect, zn, zf);
}
/*
* Class: org_lwjgl_d3d_D3DUtil
* Method: nD3DXMatrixIdentity
* Signature: (Ljava/nio/ByteBuffer;)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_D3DUtil_nD3DXMatrixIdentity
(JNIEnv *env, jclass clazz, jobject outBuffer) {
D3DXMATRIX *out = (D3DXMATRIX*)((*env)->GetDirectBufferAddress(env, outBuffer));
D3DXMatrixIdentity(out);
}
/*
* Class: org_lwjgl_d3d_D3DUtil
* Method: nD3DXMatrixScaling
* Signature: (Ljava/nio/ByteBuffer;FFF)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_D3DUtil_nD3DXMatrixScaling
(JNIEnv *env, jclass clazz, jobject outBuffer, jfloat sx, jfloat sy, jfloat sz) {
D3DXMATRIX *out = (D3DXMATRIX*)((*env)->GetDirectBufferAddress(env, outBuffer));
D3DXMatrixScaling(out, sx, sy, sz);
}
/*
* Class: org_lwjgl_d3d_D3DUtil
* Method: nD3DXMatrixTranslation
* Signature: (Ljava/nio/ByteBuffer;FFF)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_D3DUtil_nD3DXMatrixTranslation
(JNIEnv *env, jclass clazz, jobject outBuffer, jfloat x, jfloat y, jfloat z) {
D3DXMATRIX *out = (D3DXMATRIX*)((*env)->GetDirectBufferAddress(env, outBuffer));
D3DXMatrixTranslation(out, x, y, z);
}
/*
* Class: org_lwjgl_d3d_D3DUtil
* Method: nD3DXMatrixRotationX
* Signature: (Ljava/nio/ByteBuffer;F)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_D3DUtil_nD3DXMatrixRotationX
(JNIEnv *env, jclass clazz, jobject outBuffer, jfloat angle) {
D3DXMATRIX *out = (D3DXMATRIX*)((*env)->GetDirectBufferAddress(env, outBuffer));
D3DXMatrixRotationY(out, angle);
}
/*
* Class: org_lwjgl_d3d_D3DUtil
* Method: nD3DXMatrixRotationY
* Signature: (Ljava/nio/ByteBuffer;F)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_D3DUtil_nD3DXMatrixRotationY
(JNIEnv *env, jclass clazz, jobject outBuffer, jfloat angle) {
D3DXMATRIX *out = (D3DXMATRIX*)((*env)->GetDirectBufferAddress(env, outBuffer));
D3DXMatrixRotationY(out, angle);
}
/*
* Class: org_lwjgl_d3d_D3DUtil
* Method: nD3DXMatrixRotationZ
* Signature: (Ljava/nio/ByteBuffer;F)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_D3DUtil_nD3DXMatrixRotationZ
(JNIEnv *env, jclass clazz, jobject outBuffer, jfloat angle) {
D3DXMATRIX *out = (D3DXMATRIX*)((*env)->GetDirectBufferAddress(env, outBuffer));
D3DXMatrixRotationY(out, angle);
}
/*
* Class: org_lwjgl_d3d_D3DUtil
* Method: nD3DXMatrixMultiply
* Signature: (Ljava/nio/ByteBuffer;Lorg/lwjgl/d3d/D3DMatrix;Lorg/lwjgl/d3d/D3DMatrix;)Ljava/nio/ByteBuffer;
*/
JNIEXPORT jobject JNICALL Java_org_lwjgl_d3d_D3DUtil_nD3DXMatrixMultiply
(JNIEnv *env, jclass clazz, jobject outBuffer, jobject m1Buffer, jobject m2Buffer) {
D3DXMATRIX *out = (D3DXMATRIX*)((*env)->GetDirectBufferAddress(env, outBuffer));
CONST D3DXMATRIX *m1 = (D3DXMATRIX*)((*env)->GetDirectBufferAddress(env, m1Buffer));
CONST D3DXMATRIX *m2 = (D3DXMATRIX*)((*env)->GetDirectBufferAddress(env, m2Buffer));
D3DXMATRIX *result = D3DXMatrixMultiply(out, m1, m2);
jobject resultBuffer = (*env)->NewDirectByteBuffer(env, result, sizeof(D3DXMATRIX));
return resultBuffer;
}

View File

@ -0,0 +1,200 @@
#include <windows.h>
#include <windowsx.h>
#include <d3d9.h>
#include <stdio.h>
#include "org_lwjgl_d3d_IDirect3D9.h"
#include "context.h"
extern void setPointer(JNIEnv *env, jobject classInstance, const char* methodName, jlong pointer);
//void setPointer(JNIEnv *env, jobject classInstance, const char* methodName, jlong pointer) {
// jclass clazz = (*env)->GetObjectClass(env, classInstance);
// jmethodID mid = (*env)->GetMethodID(env, clazz, methodName, "(J)V");
// if (mid != NULL) {
// (*env)->CallVoidMethod(env, classInstance, mid, pointer);
// }
//}
/*
* Class: org_lwjgl_d3d_IDirect3D9
* Method: nCheckDepthStencilMatch
* Signature: (IIIII)I
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3D9_nCheckDepthStencilMatch
(JNIEnv *env, jobject object, jlong iDirect3D9, jint adapter, jint deviceType, jint adapterFormat, jint renderTargetFormat, jint depthStencilFormat) {
return IDirect3D9_CheckDepthStencilMatch((IDirect3D9 *)iDirect3D9, adapter, deviceType, adapterFormat, renderTargetFormat, depthStencilFormat);
}
/*
* Class: org_lwjgl_d3d_IDirect3D9
* Method: nCheckDeviceFormat
* Signature: (IIIJII)I
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3D9_nCheckDeviceFormat
(JNIEnv *env, jobject object, jlong iDirect3D9, jint adapter, jint deviceType, jint adapterFormat, jint usage, jint resoruceType, jint checkFormat) {
return IDirect3D9_CheckDeviceFormat((IDirect3D9 *)iDirect3D9, adapter, deviceType, adapterFormat, usage, resoruceType, checkFormat);
}
/*
* Class: org_lwjgl_d3d_IDirect3D9
* Method: nCheckDeviceFormatConversion
* Signature: (IIII)I
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3D9_nCheckDeviceFormatConversion
(JNIEnv *env, jobject object, jlong iDirect3D9, jint adapter, jint deviceType, jint sourceFormat, jint targetFormat) {
return IDirect3D9_CheckDeviceFormatConversion((IDirect3D9 *)iDirect3D9, adapter, deviceType, sourceFormat, targetFormat);
}
/*
* Class: org_lwjgl_d3d_IDirect3D9
* Method: nCheckDeviceMultiSampleType
* Signature: (IIIZILjava/nio/IntBuffer;)I
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3D9_nCheckDeviceMultiSampleType
(JNIEnv *env, jobject object, jlong iDirect3D9, jint adapter, jint deviceType, jint surfaceFormat, boolean windowed, jint multiSampleType, jobject qualityLevels) {
DWORD * quality = NULL;
if(qualityLevels != NULL) {
DWORD * quality = (DWORD *)((*env)->GetDirectBufferAddress(env, qualityLevels));
}
return IDirect3D9_CheckDeviceMultiSampleType((IDirect3D9 *)iDirect3D9, adapter, deviceType, surfaceFormat, windowed, multiSampleType, quality);
}
/*
* Class: org_lwjgl_d3d_IDirect3D9
* Method: nCheckDeviceType
* Signature: (IIIIZ)I
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3D9_nCheckDeviceType
(JNIEnv *env, jobject object, jlong iDirect3D9, jint adapter, jint deviceType, jint displayFormat, jint backBufferFormat, boolean windowed) {
return IDirect3D9_CheckDeviceType((IDirect3D9 *)iDirect3D9, adapter, deviceType, displayFormat, backBufferFormat, windowed);
}
/*
* Class: org_lwjgl_d3d_IDirect3D9
* Method: nCreateDevice
* Signature: (IIJJLorg/lwjgl/d3d/IDirect3D9$D3DPRESENT_PARAMETERS;Lorg/lwjgl/d3d/IDirect3DDevice9;)I
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3D9_nCreateDevice
(JNIEnv *env, jobject object, jlong iDirect3D9, jint adapter, jint deviceType, jlong focusWindow, jint behaviorFlags, jobject presentationParameters, jobject returnedDeviceInterface) {
IDirect3DDevice9 *iDirect3DDevice9;
HWND myHwnd = (HWND)(INT_PTR)focusWindow;
D3DPRESENT_PARAMETERS* pPresentationParameters = (D3DPRESENT_PARAMETERS*)((*env)->GetDirectBufferAddress(env, presentationParameters));
HRESULT hResult = IDirect3D9_CreateDevice((IDirect3D9 *)iDirect3D9, adapter, deviceType,
myHwnd, behaviorFlags, pPresentationParameters, &iDirect3DDevice9);
setPointer(env, returnedDeviceInterface, "setIDirect3DDevice9", (jlong)iDirect3DDevice9);
return hResult;
}
/*
* Class: org_lwjgl_d3d_IDirect3D9
* Method: nEnumAdapterModes
* Signature: (IIILorg/lwjgl/d3d/IDirect3D9$D3DDISPLAYMODE;)I
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3D9_nEnumAdapterModes
(JNIEnv *env, jobject object, jlong iDirect3D9, jint adapter, jint format, jint modeIndex, jobject mode) {
D3DDISPLAYMODE * displayMode = (D3DDISPLAYMODE *)((*env)->GetDirectBufferAddress(env, mode));
return IDirect3D9_EnumAdapterModes((IDirect3D9 *)iDirect3D9, adapter, format, modeIndex, displayMode);
}
/*
* Class: org_lwjgl_d3d_IDirect3D9
* Method: nGetAdapterCount
* Signature: (J)I
*/
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_IDirect3D9_nGetAdapterCount
(JNIEnv *env, jobject object, jlong iDirect3D9) {
return IDirect3D9_GetAdapterCount((IDirect3D9 *)iDirect3D9);
}
/*
* Class: org_lwjgl_d3d_IDirect3D9
* Method: nGetAdapterDisplayMode
* Signature: (ILorg/lwjgl/d3d/IDirect3D9$D3DDISPLAYMODE;)I
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3D9_nGetAdapterDisplayMode
(JNIEnv *env, jobject object, jlong iDirect3D9, jint adapter, jobject mode) {
D3DDISPLAYMODE * displayMode = (D3DDISPLAYMODE *)((*env)->GetDirectBufferAddress(env, mode));
return IDirect3D9_GetAdapterDisplayMode((IDirect3D9 *)iDirect3D9, adapter, displayMode);
}
/*
* Class: org_lwjgl_d3d_IDirect3D9
* Method: nGetAdapterIdentifier
* Signature: (IJLorg/lwjgl/d3d/IDirect3D9$D3DADAPTER_IDENTIFIER9;)I
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3D9_nGetAdapterIdentifier
(JNIEnv *env, jobject object, jlong iDirect3D9, jint adapter, jint flags, jobject identifier) {
D3DADAPTER_IDENTIFIER9 * adapterIdentifier = (D3DADAPTER_IDENTIFIER9 *)((*env)->GetDirectBufferAddress(env, identifier));
return IDirect3D9_GetAdapterIdentifier((IDirect3D9 *)iDirect3D9, adapter, flags, adapterIdentifier);
}
/*
* Class: org_lwjgl_d3d_IDirect3D9
* Method: nGetAdapterModeCount
* Signature: (II)I
*/
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_IDirect3D9_nGetAdapterModeCount
(JNIEnv *env, jobject object, jlong iDirect3D9, jint adapter, jint format) {
return IDirect3D9_GetAdapterModeCount((IDirect3D9 *)iDirect3D9, adapter, format);
}
/*
* Class: org_lwjgl_d3d_IDirect3D9
* Method: nGetAdapterMonitor
* Signature: (I)I
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3D9_nGetAdapterMonitor
(JNIEnv *env, jobject object, jlong iDirect3D9, jint adapter) {
return (jlong)IDirect3D9_GetAdapterMonitor((IDirect3D9 *)iDirect3D9, adapter);
}
/*
* Class: org_lwjgl_d3d_IDirect3D9
* Method: nGetDeviceCaps
* Signature: (IILorg/lwjgl/d3d/IDirect3D9$D3DCAPS9;)I
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3D9_nGetDeviceCaps
(JNIEnv *env, jobject object, jlong iDirect3D9, jint adapter, jint deviceType, jobject caps) {
D3DCAPS9 * d3dCaps = (D3DCAPS9 *)((*env)->GetDirectBufferAddress(env, caps));
return IDirect3D9_GetDeviceCaps((IDirect3D9 *)iDirect3D9, adapter, deviceType, d3dCaps);
}
/*
* Class: org_lwjgl_d3d_IDirect3D9
* Method: nRegisterSoftwareDevice
* Signature: ()I
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3D9_nRegisterSoftwareDevice
(JNIEnv *env, jobject object, jlong iDirect3D9) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3D9
* Method: nRelease
* Signature: (J)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_IDirect3D9_nRelease
(JNIEnv *env, jobject object, jlong iDirect3D9) {
IDirect3D9_Release((IDirect3D9 *)iDirect3D9);
}
/*
* Class: org_lwjgl_d3d_IDirect3D9
* Method: nCreate
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3D9_nCreate
(JNIEnv *env, jclass clazz) {
IDirect3D9 *direct3DInterface = Direct3DCreate9(D3D_SDK_VERSION);
return (jlong)direct3DInterface;
}

View File

@ -0,0 +1,51 @@
#include "org_lwjgl_d3d_IDirect3D9Ex.h"
/*
* Class: org_lwjgl_d3d_IDirect3D9Ex
* Method: nCreateDeviceEx
* Signature: (JIIJJLorg/lwjgl/d3d/D3DPresentParameters;Lorg/lwjgl/d3d/D3DDisplaymodeEx;Lorg/lwjgl/d3d/IDirect3DDevice9Ex;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3D9Ex_nCreateDeviceEx
(JNIEnv *env, jobject obj, jlong IDirect3D9Ex, jint adapter, jint deviceType, jlong focusWindow, jlong behaviorFlags, jobject presentationParameters, jobject fullscreenDisplayMode, jobject returnedDeviceInterface) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3D9Ex
* Method: nEnumAdapterModesEx
* Signature: (JILorg/lwjgl/d3d/D3DDisplaymodeFilter;ILorg/lwjgl/d3d/D3DDisplaymodeEx;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3D9Ex_nEnumAdapterModesEx
(JNIEnv *env, jobject obj, jlong IDirect3D9Ex, jint adapter, jobject filter, jint mode, jobject displayMode) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3D9Ex
* Method: nGetAdapterDisplayModeEx
* Signature: (JILorg/lwjgl/d3d/D3DDisplaymodeEx;I)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3D9Ex_nGetAdapterDisplayModeEx
(JNIEnv *env, jobject obj, jlong IDirect3D9Ex, jint adapter, jobject mode, jint rotation) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3D9Ex
* Method: nGetAdapterLUID
* Signature: (JILorg/lwjgl/d3d/LUID;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3D9Ex_nGetAdapterLUID
(JNIEnv *env, jobject obj, jlong IDirect3D9Ex, jint adapter, jobject LUID) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3D9Ex
* Method: nGetAdapterModeCountEx
* Signature: (JILorg/lwjgl/d3d/D3DDisplaymodeFilter;)I
*/
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_IDirect3D9Ex_nGetAdapterModeCountEx
(JNIEnv *env, jobject obj, jlong IDirect3D9Ex, jint adapter, jobject filter) {
return 0;
}

View File

@ -0,0 +1,60 @@
#include "org_lwjgl_d3d_IDirect3DBaseTexture9.h"
/*
* Class: org_lwjgl_d3d_IDirect3DBaseTexture9
* Method: nGenerateMipSubLevels
* Signature: (J)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_IDirect3DBaseTexture9_nGenerateMipSubLevels
(JNIEnv *env, jobject obj, jlong IDirect3DBaseTexture9) {
}
/*
* Class: org_lwjgl_d3d_IDirect3DBaseTexture9
* Method: nGetAutoGenFilterType
* Signature: (J)I
*/
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_IDirect3DBaseTexture9_nGetAutoGenFilterType
(JNIEnv *env, jobject obj, jlong IDirect3DBaseTexture9) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DBaseTexture9
* Method: nGetLevelCount
* Signature: (J)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DBaseTexture9_nGetLevelCount
(JNIEnv *env, jobject obj, jlong IDirect3DBaseTexture9) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DBaseTexture9
* Method: nGetLOD
* Signature: (J)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DBaseTexture9_nGetLOD
(JNIEnv *env, jobject obj, jlong IDirect3DBaseTexture9) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DBaseTexture9
* Method: nSetAutoGenFilterType
* Signature: (JI)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DBaseTexture9_nSetAutoGenFilterType
(JNIEnv *env, jobject obj, jlong IDirect3DBaseTexture9, jint filterType) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DBaseTexture9
* Method: nSetLOD
* Signature: (JJ)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DBaseTexture9_nSetLOD
(JNIEnv *env, jobject obj, jlong IDirect3DBaseTexture9, jlong LODNew) {
return 0;
}

View File

@ -0,0 +1,51 @@
#include "org_lwjgl_d3d_IDirect3DCubeTexture9.h"
/*
* Class: org_lwjgl_d3d_IDirect3DCubeTexture9
* Method: nAddDirtyRect
* Signature: (JILorg/lwjgl/d3d/Rectangle;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DCubeTexture9_nAddDirtyRect
(JNIEnv *env, jobject obj, jlong IDirect3DCubeTexture9, jint faceType, jobject dirtyRect) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DCubeTexture9
* Method: nGetCubeMapSurface
* Signature: (JIILorg/lwjgl/d3d/IDirect3DSurface9;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DCubeTexture9_nGetCubeMapSurface
(JNIEnv *env, jobject obj, jlong IDirect3DCubeTexture9, jint faceType, jint level, jobject cubeMapSurface) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DCubeTexture9
* Method: nGetLevelDesc
* Signature: (JILorg/lwjgl/d3d/D3DSsurfaceDesc;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DCubeTexture9_nGetLevelDesc
(JNIEnv *env, jobject obj, jlong IDirect3DCubeTexture9, jint level, jobject desc) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DCubeTexture9
* Method: nLockRect
* Signature: (JIILorg/lwjgl/d3d/D3DLockedRect;Lorg/lwjgl/d3d/Rectangle;J)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DCubeTexture9_nLockRect
(JNIEnv *env, jobject obj, jlong IDirect3DCubeTexture9, jint faceType, jint level, jobject lockedRect, jobject rect, jlong flags) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DCubeTexture9
* Method: nUnlockRect
* Signature: (JII)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DCubeTexture9_nUnlockRect
(JNIEnv *env, jobject obj, jlong IDirect3DCubeTexture9, jint faceType, jint level) {
return 0;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,161 @@
#include "org_lwjgl_d3d_IDirect3DDevice9Ex.h"
/*
* Class: org_lwjgl_d3d_IDirect3DDevice9Ex
* Method: nCheckDeviceState
* Signature: (JJ)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DDevice9Ex_nCheckDeviceState
(JNIEnv *env, jobject obj, jlong IDirect3DDevice9Ex, jlong window) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DDevice9Ex
* Method: nCheckResourceResidency
* Signature: (JLorg/lwjgl/d3d/IDirect3DResource9;J)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DDevice9Ex_nCheckResourceResidency
(JNIEnv *env, jobject obj, jlong IDirect3DDevice9Ex, jobject resourceArray, jlong numResources) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DDevice9Ex
* Method: nCreateDepthStencilSurfaceEx
* Signature: (JIIIIJZLorg/lwjgl/d3d/IDirect3DSurface9;JJ)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DDevice9Ex_nCreateDepthStencilSurfaceEx
(JNIEnv *env, jobject obj, jlong IDirect3DDevice9Ex, jint width, jint height, jint format, jint multiSample, jlong multisampleQuality, jboolean discard, jobject surface, jlong sharedHandle, jlong usage) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DDevice9Ex
* Method: nCreateOffscreenPlainSurfaceEx
* Signature: (JIIIJLorg/lwjgl/d3d/IDirect3DSurface9;JJ)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DDevice9Ex_nCreateOffscreenPlainSurfaceEx
(JNIEnv *env, jobject obj, jlong IDirect3DDevice9Ex, jint width, jint height, jint format, jlong pool, jobject surface, jlong sharedHandle, jlong usage) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DDevice9Ex
* Method: nCreateRenderTargetEx
* Signature: (JIIIIJZLorg/lwjgl/d3d/IDirect3DSurface9;JJ)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DDevice9Ex_nCreateRenderTargetEx
(JNIEnv *env, jobject obj, jlong IDirect3DDevice9Ex, jint width, jint height, jint format, jint multiSample, jlong multisampleQuality, jboolean lockable, jobject surface, jlong sharedHandle, jlong usage) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DDevice9Ex
* Method: nComposeRect
* Signature: (JLorg/lwjgl/d3d/IDirect3DSurface9;Lorg/lwjgl/d3d/IDirect3DSurface9;Lorg/lwjgl/d3d/IDirect3DVertexBuffer9;ILorg/lwjgl/d3d/IDirect3DVertexBuffer9;III)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DDevice9Ex_nComposeRect
(JNIEnv *env, jobject obj, jlong IDirect3DDevice9Ex, jobject source, jobject destination, jobject srcRectDescriptors, jint numRects, jobject dstRectDescriptors, jint operation, jint xOffset, jint yOffset) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DDevice9Ex
* Method: nGetDisplayModeEx
* Signature: (JILorg/lwjgl/d3d/D3DDisplaymodeEx;I)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DDevice9Ex_nGetDisplayModeEx
(JNIEnv *env, jobject obj, jlong IDirect3DDevice9Ex, jint swapChain, jobject mode, jint rotation) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DDevice9Ex
* Method: nGetGPUThreadPriority
* Signature: (JLjava/nio/IntBuffer;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DDevice9Ex_nGetGPUThreadPriority
(JNIEnv *env, jobject obj, jlong IDirect3DDevice9Ex, jobject priority) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DDevice9Ex
* Method: nGetMaximumFrameLatency
* Signature: (JLjava/nio/IntBuffer;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DDevice9Ex_nGetMaximumFrameLatency
(JNIEnv *env, jobject obj, jlong IDirect3DDevice9Ex, jobject maxLatency) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DDevice9Ex
* Method: nPresentEx
* Signature: (JLorg/lwjgl/d3d/Rectangle;Lorg/lwjgl/d3d/Rectangle;JLorg/lwjgl/d3d/D3DRegionData;J)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DDevice9Ex_nPresentEx
(JNIEnv *env, jobject obj, jlong IDirect3DDevice9Ex, jobject sourceRect, jobject destRect, jlong destWindowOverride, jobject dirtyRegion, jlong flags) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DDevice9Ex
* Method: nResetEx
* Signature: (JLorg/lwjgl/d3d/D3DPresentParameters;Lorg/lwjgl/d3d/D3DDisplaymodeEx;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DDevice9Ex_nResetEx
(JNIEnv *env, jobject obj, jlong IDirect3DDevice9Ex, jobject presentationParameters, jobject fullscreenDisplayMode) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DDevice9Ex
* Method: nSetConvolutionMonoKernel
* Signature: (JIILjava/nio/FloatBuffer;Ljava/nio/FloatBuffer;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DDevice9Ex_nSetConvolutionMonoKernel
(JNIEnv *env, jobject obj, jlong IDirect3DDevice9Ex, jint width, jint height, jobject rowWeights, jobject columnWeights) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DDevice9Ex
* Method: nSetGPUThreadPriority
* Signature: (JI)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DDevice9Ex_nSetGPUThreadPriority
(JNIEnv *env, jobject obj, jlong IDirect3DDevice9Ex, jint priority) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DDevice9Ex
* Method: nSetMaximumFrameLatency
* Signature: (JI)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DDevice9Ex_nSetMaximumFrameLatency
(JNIEnv *env, jobject obj, jlong IDirect3DDevice9Ex, jint maxLatency) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DDevice9Ex
* Method: nTestCooperativeLevel
* Signature: (J)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DDevice9Ex_nTestCooperativeLevel
(JNIEnv *env, jobject obj, jlong IDirect3DDevice9Ex) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DDevice9Ex
* Method: nWaitForVBlank
* Signature: (JI)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DDevice9Ex_nWaitForVBlank
(JNIEnv *env, jobject obj, jlong IDirect3DDevice9Ex, jint swapChainIndex) {
return 0;
}

View File

@ -0,0 +1,31 @@
#include "org_lwjgl_d3d_IDirect3DIndexBuffer9.h"
/*
* Class: org_lwjgl_d3d_IDirect3DIndexBuffer9
* Method: nGetDesc
* Signature: (JLorg/lwjgl/d3d/D3DIndexBufferDesc;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DIndexBuffer9_nGetDesc
(JNIEnv *env, jobject obj, jlong IDirect3DIndexBuffer9, jobject desc) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DIndexBuffer9
* Method: nLock
* Signature: (JIILjava/nio/ByteBuffer;J)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DIndexBuffer9_nLock
(JNIEnv *env, jobject obj, jlong IDirect3DIndexBuffer9, jint offsetToLock, jint sizeToLock, jobject data, jlong flags) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DIndexBuffer9
* Method: nUnlock
* Signature: (J)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DIndexBuffer9_nUnlock
(JNIEnv *env, jobject obj, jlong IDirect3DIndexBuffer9) {
return 0;
}

View File

@ -0,0 +1,21 @@
#include "org_lwjgl_d3d_IDirect3DPixelShader9.h"
/*
* Class: org_lwjgl_d3d_IDirect3DPixelShader9
* Method: nGetDevice
* Signature: (JLorg/lwjgl/d3d/IDirect3DDevice9;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DPixelShader9_nGetDevice
(JNIEnv *env, jobject obj, jlong IDirect3DPixelShader9, jobject device) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DPixelShader9
* Method: nGetFunction
* Signature: (JLjava/nio/ByteBuffer;Ljava/nio/IntBuffer;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DPixelShader9_nGetFunction
(JNIEnv *env, jobject obj, jlong IDirect3DPixelShader9, jobject data, jobject sizeOfData) {
return 0;
}

View File

@ -0,0 +1,51 @@
#include "org_lwjgl_d3d_IDirect3DQuery9.h"
/*
* Class: org_lwjgl_d3d_IDirect3DQuery9
* Method: nGetData
* Signature: (JLjava/nio/ByteBuffer;JJ)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DQuery9_nGetData
(JNIEnv *env, jobject obj, jlong IDirect3DQuery9, jobject data, jlong size, jlong getDataFlags) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DQuery9
* Method: nGetDataSize
* Signature: (J)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DQuery9_nGetDataSize
(JNIEnv *env, jobject obj, jlong IDirect3DQuery9) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DQuery9
* Method: nGetDevice
* Signature: (JLorg/lwjgl/d3d/IDirect3DDevice9;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DQuery9_nGetDevice
(JNIEnv *env, jobject obj, jlong IDirect3DQuery9, jobject device) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DQuery9
* Method: nGetType
* Signature: (J)I
*/
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_IDirect3DQuery9_nGetType
(JNIEnv *env, jobject obj, jlong IDirect3DQuery9) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DQuery9
* Method: nIssue
* Signature: (JJ)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DQuery9_nIssue
(JNIEnv *env, jobject obj, jlong IDirect3DQuery9, jlong issueFlags) {
return 0;
}

View File

@ -0,0 +1,80 @@
#include "org_lwjgl_d3d_IDirect3DResource9.h"
/*
* Class: org_lwjgl_d3d_IDirect3DResource9
* Method: nFreePrivateData
* Signature: (JLorg/lwjgl/d3d/GUID;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DResource9_nFreePrivateData
(JNIEnv *env, jobject obj, jlong IDirect3DResource9, jobject refguid) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DResource9
* Method: nGetDevice
* Signature: (JLorg/lwjgl/d3d/IDirect3DDevice9;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DResource9_nGetDevice
(JNIEnv *env, jobject obj, jlong IDirect3DResource9, jobject device) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DResource9
* Method: nGetPriority
* Signature: (J)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DResource9_nGetPriority
(JNIEnv *env, jobject obj, jlong IDirect3DResource9) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DResource9
* Method: nGetPrivateData
* Signature: (JLorg/lwjgl/d3d/GUID;Ljava/nio/ByteBuffer;Ljava/nio/LongBuffer;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DResource9_nGetPrivateData
(JNIEnv *env, jobject obj, jlong IDirect3DResource9, jobject refguid, jobject data, jobject sizeOfData) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DResource9
* Method: nGetType
* Signature: (J)I
*/
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_IDirect3DResource9_nGetType
(JNIEnv *env, jobject obj, jlong IDirect3DResource9) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DResource9
* Method: nPreLoad
* Signature: (J)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_IDirect3DResource9_nPreLoad
(JNIEnv *env, jobject obj, jlong IDirect3DResource9) {
}
/*
* Class: org_lwjgl_d3d_IDirect3DResource9
* Method: nSetPriority
* Signature: (JJ)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DResource9_nSetPriority
(JNIEnv *env, jobject obj, jlong IDirect3DResource9, jlong priorityNew) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DResource9
* Method: nSetPrivateData
* Signature: (JLorg/lwjgl/d3d/GUID;Ljava/nio/ByteBuffer;JJ)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DResource9_nSetPrivateData
(JNIEnv *env, jobject obj, jlong IDirect3DResource9, jobject refguid, jobject data, jlong sizeOfData, jlong flags) {
return 0;
}

View File

@ -0,0 +1,31 @@
#include "org_lwjgl_d3d_IDirect3DStateBlock9.h"
/*
* Class: org_lwjgl_d3d_IDirect3DStateBlock9
* Method: nApply
* Signature: (J)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DStateBlock9_nApply
(JNIEnv *env, jobject obj, jlong IDirect3DStateBlock9) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DStateBlock9
* Method: nCapture
* Signature: (J)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DStateBlock9_nCapture
(JNIEnv *env, jobject obj, jlong IDirect3DStateBlock9) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DStateBlock9
* Method: nGetDevice
* Signature: (JLorg/lwjgl/d3d/IDirect3DDevice9;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DStateBlock9_nGetDevice
(JNIEnv *env, jobject obj, jlong IDirect3DStateBlock9, jobject device) {
return 0;
}

View File

@ -0,0 +1,61 @@
#include "org_lwjgl_d3d_IDirect3DSurface9.h"
/*
* Class: org_lwjgl_d3d_IDirect3DSurface9
* Method: nGetContainer
* Signature: (JJLjava/nio/ByteBuffer;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DSurface9_nGetContainer
(JNIEnv *env, jobject obj, jlong IDirect3DSurface9, jlong riid, jobject container) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DSurface9
* Method: nGetDC
* Signature: (JJ)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DSurface9_nGetDC
(JNIEnv *env, jobject obj, jlong IDirect3DSurface9, jlong hdc) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DSurface9
* Method: nGetDesc
* Signature: (JLorg/lwjgl/d3d/D3DSurfaceDesc;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DSurface9_nGetDesc
(JNIEnv *env, jobject obj, jlong IDirect3DSurface9, jobject desc) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DSurface9
* Method: nLockRect
* Signature: (JLorg/lwjgl/d3d/D3DLockedRect;Lorg/lwjgl/d3d/Rectangle;J)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DSurface9_nLockRect
(JNIEnv *env, jobject obj, jlong IDirect3DSurface9, jobject lockedRect, jobject rect, jlong flags) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DSurface9
* Method: nReleaseDC
* Signature: (JJ)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DSurface9_nReleaseDC
(JNIEnv *env, jobject obj, jlong IDirect3DSurface9, jlong hdc) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DSurface9
* Method: nUnlockRect
* Signature: (J)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DSurface9_nUnlockRect
(JNIEnv *env, jobject obj, jlong IDirect3DSurface9) {
return 0;
}

View File

@ -0,0 +1,71 @@
#include "org_lwjgl_d3d_IDirect3DSwapChain9.h"
/*
* Class: org_lwjgl_d3d_IDirect3DSwapChain9
* Method: nGetBackBuffer
* Signature: (JIILorg/lwjgl/d3d/IDirect3DSurface9;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DSwapChain9_nGetBackBuffer
(JNIEnv *env, jobject obj, jlong IDirect3DSwapChain9, jint backBuffer, jint type, jobject backBufferSurface) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DSwapChain9
* Method: nGetDevice
* Signature: (JLorg/lwjgl/d3d/IDirect3DDevice9;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DSwapChain9_nGetDevice
(JNIEnv *env, jobject obj, jlong IDirect3DSwapChain9, jobject device) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DSwapChain9
* Method: nGetDisplayMode
* Signature: (JLorg/lwjgl/d3d/D3DDisplaymode;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DSwapChain9_nGetDisplayMode
(JNIEnv *env, jobject obj, jlong IDirect3DSwapChain9, jobject mode) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DSwapChain9
* Method: nGetFrontBufferData
* Signature: (JLorg/lwjgl/d3d/IDirect3DSurface9;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DSwapChain9_nGetFrontBufferData
(JNIEnv *env, jobject obj, jlong IDirect3DSwapChain9, jobject destSurface) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DSwapChain9
* Method: nGetPresentParameters
* Signature: (JLorg/lwjgl/d3d/D3DPresentParameters;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DSwapChain9_nGetPresentParameters
(JNIEnv *env, jobject obj, jlong IDirect3DSwapChain9, jobject presentationParameters) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DSwapChain9
* Method: nGetRasterStatus
* Signature: (JLorg/lwjgl/d3d/D3DRasterStatus;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DSwapChain9_nGetRasterStatus
(JNIEnv *env, jobject obj, jlong IDirect3DSwapChain9, jobject rasterStatus) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DSwapChain9
* Method: nPresent
* Signature: (JLorg/lwjgl/d3d/Rectangle;Lorg/lwjgl/d3d/Rectangle;JLorg/lwjgl/d3d/RegionData;J)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DSwapChain9_nPresent
(JNIEnv *env, jobject obj, jlong IDirect3DSwapChain9, jobject sourceRect, jobject destRect, jlong destWindowOverride, jobject dirtyRegion, jlong flags) {
return 0;
}

View File

@ -0,0 +1,31 @@
#include "org_lwjgl_d3d_IDirect3DSwapChain9Ex.h"
/*
* Class: org_lwjgl_d3d_IDirect3DSwapChain9Ex
* Method: nGetDisplayModeEx
* Signature: (JLorg/lwjgl/d3d/D3DDisplaymodeEx;I)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DSwapChain9Ex_nGetDisplayModeEx
(JNIEnv *env, jobject obj, jlong IDirect3DSwapChain9Ex, jobject mode, jint rotation) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DSwapChain9Ex
* Method: nGetLastPresentCount
* Signature: (JLjava/nio/IntBuffer;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DSwapChain9Ex_nGetLastPresentCount
(JNIEnv *env, jobject obj, jlong IDirect3DSwapChain9Ex, jobject lastPresentCount) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DSwapChain9Ex
* Method: nGetPresentStatistics
* Signature: (JLorg/lwjgl/d3d/D3DPresentStats;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DSwapChain9Ex_nGetPresentStatistics
(JNIEnv *env, jobject obj, jlong IDirect3DSwapChain9Ex, jobject presentationStatistics) {
return 0;
}

View File

@ -0,0 +1,51 @@
#include "org_lwjgl_d3d_IDirect3DTexture9.h"
/*
* Class: org_lwjgl_d3d_IDirect3DTexture9
* Method: nAddDirtyRect
* Signature: (JLorg/lwjgl/d3d/Rectangle;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DTexture9_nAddDirtyRect
(JNIEnv *env, jobject obj, jlong IDirect3DTexture9, jobject dirtyRect) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DTexture9
* Method: nGetLevelDesc
* Signature: (JILorg/lwjgl/d3d/D3DSurfaceDesc;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DTexture9_nGetLevelDesc
(JNIEnv *env, jobject obj, jlong IDirect3DTexture9, jint level, jobject desc) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DTexture9
* Method: nGetSurfaceLevel
* Signature: (JILorg/lwjgl/d3d/IDirect3DSurface9;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DTexture9_nGetSurfaceLevel
(JNIEnv *env, jobject obj, jlong IDirect3DTexture9, jint level, jobject surfaceLevel) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DTexture9
* Method: nLockRect
* Signature: (JILorg/lwjgl/d3d/D3DLockedRect;Lorg/lwjgl/d3d/Rectangle;J)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DTexture9_nLockRect
(JNIEnv *env, jobject obj, jlong IDirect3DTexture9, jint level, jobject lockedRect, jobject rect, jlong flags) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DTexture9
* Method: nUnlockRect
* Signature: (JI)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DTexture9_nUnlockRect
(JNIEnv *env, jobject obj, jlong IDirect3DTexture9, jint level) {
return 0;
}

View File

@ -0,0 +1,63 @@
#include <d3d9.h>
#include "org_lwjgl_d3d_IDirect3DVertexBuffer9.h"
extern void setPointer(JNIEnv *env, jobject classInstance, const char* methodName, jlong pointer);
//void setPointer(JNIEnv *env, jobject classInstance, const char* methodName, jlong pointer) {
// jclass clazz = (*env)->GetObjectClass(env, classInstance);
// jmethodID mid = (*env)->GetMethodID(env, clazz, methodName, "(J)V");
// if (mid != NULL) {
// (*env)->CallVoidMethod(env, classInstance, mid, pointer);
// }
//}
/*
* Class: org_lwjgl_d3d_IDirect3DVertexBuffer9
* Method: nGetDesc
* Signature: (JLjava/nio/ByteBuffer;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DVertexBuffer9_nGetDesc
(JNIEnv *env, jobject obj, jlong iDirect3DVertexBuffer9, jobject descBuffer) {
D3DVERTEXBUFFER_DESC *desc = (D3DVERTEXBUFFER_DESC*)((*env)->GetDirectBufferAddress(env, descBuffer));
return IDirect3DVertexBuffer9_GetDesc((IDirect3DVertexBuffer9*)iDirect3DVertexBuffer9, desc);
}
/*
* Class: org_lwjgl_d3d_IDirect3DVertexBuffer9
* Method: nLock
* Signature: (JIILjava/nio/ByteBuffer;JI)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DVertexBuffer9_nLock
(JNIEnv *env, jobject obj, jlong iDirect3DVertexBuffer9, jint offsetToLock, jint sizeToLock, jobject ataBuffer, jlong flags, jint bufferSize) {
void *ata;
HRESULT hResult = IDirect3DVertexBuffer9_Lock((IDirect3DVertexBuffer9*)iDirect3DVertexBuffer9, offsetToLock, sizeToLock, &ata, flags);
void *ataAddress = (void*)((*env)->GetDirectBufferAddress(env, ataBuffer));
memcpy(ata, ataAddress, bufferSize);
return hResult;
}
/*
* Class: org_lwjgl_d3d_IDirect3DVertexBuffer9
* Method: nUnlock
* Signature: (J)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DVertexBuffer9_nUnlock
(JNIEnv *env, jobject obj, jlong iDirect3DVertexBuffer9) {
return IDirect3DVertexBuffer9_Unlock((IDirect3DVertexBuffer9*)iDirect3DVertexBuffer9);
}
/*
* Class: org_lwjgl_d3d_IDirect3DVertexBuffer9
* Method: create
* Signature: (Lorg/lwjgl/d3d/IDirect3DVertexBuffer9;)J
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_IDirect3DVertexBuffer9_create
(JNIEnv *env, jobject obj, jobject iDirect3DVertexBuffer9) {
IDirect3DVertexBuffer9 *buffer = NULL;
setPointer(env, iDirect3DVertexBuffer9, "setIDirect3DVertexBuffer9", (jlong)buffer);
}

View File

@ -0,0 +1,21 @@
#include "org_lwjgl_d3d_IDirect3DVertexDeclaration9.h"
/*
* Class: org_lwjgl_d3d_IDirect3DVertexDeclaration9
* Method: nGetDeclaration
* Signature: (JLorg/lwjgl/d3d/D3DVertexElement9;Ljava/nio/IntBuffer;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DVertexDeclaration9_nGetDeclaration
(JNIEnv *env, jobject obj, jlong IDirect3DVertexDeclaration9, jobject decl, jobject numElements) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DVertexDeclaration9
* Method: nGetDevice
* Signature: (JLorg/lwjgl/d3d/IDirect3DDevice9;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DVertexDeclaration9_nGetDevice
(JNIEnv *env, jobject obj, jlong IDirect3DVertexDeclaration9, jobject device) {
return 0;
}

View File

@ -0,0 +1,21 @@
#include "org_lwjgl_d3d_IDirect3DVertexShader9.h"
/*
* Class: org_lwjgl_d3d_IDirect3DVertexShader9
* Method: nGetDevice
* Signature: (JLorg/lwjgl/d3d/IDirect3DDevice9;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DVertexShader9_nGetDevice
(JNIEnv *env, jobject obj, jlong IDirect3DVertexShader9, jobject device) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DVertexShader9
* Method: nGetFunction
* Signature: (JLjava/nio/ByteBuffer;Ljava/nio/IntBuffer;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DVertexShader9_nGetFunction
(JNIEnv *env, jobject obj, jlong IDirect3DVertexShader9, jobject data, jobject sizeOfData) {
return 0;
}

View File

@ -0,0 +1,81 @@
#include "org_lwjgl_d3d_IDirect3DVolume9.h"
/*
* Class: org_lwjgl_d3d_IDirect3DVolume9
* Method: nFreePrivateData
* Signature: (JLorg/lwjgl/d3d/GUID;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DVolume9_nFreePrivateData
(JNIEnv *env, jobject obj, jlong IDirect3DVolume9, jobject refguid) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DVolume9
* Method: nGetContainer
* Signature: (JJLjava/nio/ByteBuffer;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DVolume9_nGetContainer
(JNIEnv *env, jobject obj, jlong IDirect3DVolume9, jlong riid, jobject container) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DVolume9
* Method: nGetDesc
* Signature: (JLorg/lwjgl/d3d/D3DVolumeDesc;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DVolume9_nGetDesc
(JNIEnv *env, jobject obj, jlong IDirect3DVolume9, jobject desc) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DVolume9
* Method: nGetDevice
* Signature: (JLorg/lwjgl/d3d/IDirect3DDevice9;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DVolume9_nGetDevice
(JNIEnv *env, jobject obj, jlong IDirect3DVolume9, jobject device) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DVolume9
* Method: nGetPrivateData
* Signature: (JLorg/lwjgl/d3d/GUID;Ljava/nio/ByteBuffer;J)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DVolume9_nGetPrivateData
(JNIEnv *env, jobject obj, jlong IDirect3DVolume9, jobject refguid, jobject data, jlong sizeOfData) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DVolume9
* Method: nLockBox
* Signature: (JLorg/lwjgl/d3d/D3DLockedBox;Lorg/lwjgl/d3d/D3DBox;J)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DVolume9_nLockBox
(JNIEnv *env, jobject obj, jlong IDirect3DVolume9, jobject lockedVolume, jobject box, jlong flags) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DVolume9
* Method: nSetPrivateData
* Signature: (JLorg/lwjgl/d3d/GUID;Ljava/nio/ByteBuffer;JJ)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DVolume9_nSetPrivateData
(JNIEnv *env, jobject obj, jlong IDirect3DVolume9, jobject refguid, jobject data, jlong sizeOfData, jlong flags) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DVolume9
* Method: nUnlockBox
* Signature: (J)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DVolume9_nUnlockBox
(JNIEnv *env, jobject obj, jlong IDirect3DVolume9) {
return 0;
}

View File

@ -0,0 +1,51 @@
#include "org_lwjgl_d3d_IDirect3DVolumeTexture9.h"
/*
* Class: org_lwjgl_d3d_IDirect3DVolumeTexture9
* Method: nAddDirtyBox
* Signature: (JLorg/lwjgl/d3d/D3DBox;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DVolumeTexture9_nAddDirtyBox
(JNIEnv *env, jobject obj, jlong IDirect3DVolumeTexture9, jobject dirtyBox) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DVolumeTexture9
* Method: nGetLevelDesc
* Signature: (JILorg/lwjgl/d3d/D3DVolumeDesc;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DVolumeTexture9_nGetLevelDesc
(JNIEnv *env, jobject obj, jlong IDirect3DVolumeTexture9, jint level, jobject desc) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DVolumeTexture9
* Method: nGetVolumeLevel
* Signature: (JILorg/lwjgl/d3d/IDirect3DVolume9;)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DVolumeTexture9_nGetVolumeLevel
(JNIEnv *env, jobject obj, jlong IDirect3DVolumeTexture9, jint level, jobject volumeLevel) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DVolumeTexture9
* Method: nLockBox
* Signature: (JILorg/lwjgl/d3d/D3DLockedBox;Lorg/lwjgl/d3d/D3DBox;J)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DVolumeTexture9_nLockBox
(JNIEnv *env, jobject obj, jlong IDirect3DVolumeTexture9, jint level, jobject lockedVolume, jobject box, jlong flags) {
return 0;
}
/*
* Class: org_lwjgl_d3d_IDirect3DVolumeTexture9
* Method: nUnlockBox
* Signature: (JI)J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_IDirect3DVolumeTexture9_nUnlockBox
(JNIEnv *env, jobject obj, jlong IDirect3DVolumeTexture9, jint level) {
return 0;
}

View File

@ -0,0 +1,122 @@
/*
* Copyright (c) 2002-2004 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_d3d_WindowsContextImplementation.c 2832 2007-05-27 15:32:25Z elias_naur $
*
* @author elias_naur <elias_naur@users.sourceforge.net>
* @version $Revision: 2832 $
*/
#include <jni.h>
#include "org_lwjgl_d3d_WindowsContextImplementation.h"
#include "context.h"
#include "common_tools.h"
typedef struct {
HGLRC context;
} WindowsContext;
JNIEXPORT jobject JNICALL Java_org_lwjgl_d3d_WindowsContextImplementation_nCreate
(JNIEnv *env, jclass clazz, jobject peer_info_handle, jobject shared_context_handle) {
WindowsPeerInfo *peer_info;
WindowsContext *shared_context_info;
WindowsContext *context_info;
HGLRC context;
HGLRC shared_context = NULL;
HDC saved_hdc;
HGLRC saved_context;
jobject context_handle = newJavaManagedByteBuffer(env, sizeof(WindowsContext));
if (context_handle == NULL) {
throwException(env, "Could not create handle buffer");
return NULL;
}
peer_info = (WindowsPeerInfo *)(*env)->GetDirectBufferAddress(env, peer_info_handle);
context = wglCreateContext(peer_info->drawable_hdc);
if (context == NULL) {
throwException(env, "Could not create context");
return NULL;
}
if (shared_context_handle != NULL) {
shared_context_info = (WindowsContext *)(*env)->GetDirectBufferAddress(env, shared_context_handle);
shared_context = shared_context_info->context;
if (!wglShareLists(shared_context, context)) {
wglDeleteContext(context);
throwException(env, "Could not share contexts");
return NULL;
}
}
context_info = (WindowsContext *)(*env)->GetDirectBufferAddress(env, context_handle);
context_info->context = context;
return context_handle;
}
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsContextImplementation_nSwapBuffers
(JNIEnv *env, jclass clazz, jobject peer_info_handle) {
WindowsPeerInfo *peer_info = (WindowsPeerInfo *)(*env)->GetDirectBufferAddress(env, peer_info_handle);
SwapBuffers(peer_info->drawable_hdc);
}
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsContextImplementation_nReleaseCurrentContext
(JNIEnv *env, jclass clazz) {
wglMakeCurrent(NULL, NULL);
}
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsContextImplementation_nMakeCurrent
(JNIEnv *env, jclass clazz, jobject peer_info_handle, jobject context_handle) {
WindowsContext *context_info = (WindowsContext *)(*env)->GetDirectBufferAddress(env, context_handle);
WindowsPeerInfo *peer_info = (WindowsPeerInfo *)(*env)->GetDirectBufferAddress(env, peer_info_handle);
if (!wglMakeCurrent(peer_info->drawable_hdc, context_info->context))
throwException(env, "Could not make context current");
}
JNIEXPORT jboolean JNICALL Java_org_lwjgl_d3d_WindowsContextImplementation_nIsCurrent
(JNIEnv *env, jclass clazz, jobject context_handle) {
WindowsContext *context_info = (WindowsContext *)(*env)->GetDirectBufferAddress(env, context_handle);
return wglGetCurrentContext() == context_info->context;
}
JNIEXPORT jboolean JNICALL Java_org_lwjgl_d3d_WindowsContextImplementation_nSetSwapInterval
(JNIEnv *env, jclass clazz, jint value) {
WGLExtensions extensions;
extgl_InitWGL(&extensions);
if (extensions.WGL_EXT_swap_control) {
return extensions.wglSwapIntervalEXT(value) ? JNI_TRUE : JNI_FALSE;
} else
return JNI_FALSE;
}
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsContextImplementation_nDestroy
(JNIEnv *env, jclass clazz, jobject context_handle) {
WindowsContext *context_info = (WindowsContext *)(*env)->GetDirectBufferAddress(env, context_handle);
wglDeleteContext(context_info->context);
}

View File

@ -0,0 +1,88 @@
/*
* Copyright (c) 2002-2004 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 <elias_naur@users.sourceforge.net>
* @version $Revision: 2385 $
*/
#undef DIRECTINPUT_VERSION
#define DIRECTINPUT_VERSION 0x0300
#include "Window.h"
#include <dinput.h>
#include <jni.h>
#include "org_lwjgl_d3d_WindowsDirectInput3.h"
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_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_d3d_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_d3d_WindowsDirectInput3_KEYBOARD_TYPE:
device_guid = GUID_SysKeyboard;
break;
case org_lwjgl_d3d_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_d3d_WindowsDirectInput3_release(JNIEnv *env, jobject unused, jlong di_interface) {
LPDIRECTINPUT lpdi = (LPDIRECTINPUT)(LONG_PTR)di_interface;
IDirectInput_Release(lpdi);
}

View File

@ -0,0 +1,101 @@
/*
* Copyright (c) 2002-2004 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 <elias_naur@users.sourceforge.net>
* @version $Revision: 2385 $
*/
#undef DIRECTINPUT_VERSION
#define DIRECTINPUT_VERSION 0x0800
#include "Window.h"
#include <dinput.h>
#include <jni.h>
#include "org_lwjgl_d3d_WindowsDirectInput8.h"
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_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_d3d_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_d3d_WindowsDirectInput8_KEYBOARD_TYPE:
device_guid = GUID_SysKeyboard;
break;
case org_lwjgl_d3d_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_d3d_WindowsDirectInput8_release(JNIEnv *env, jobject unused, jlong di_interface) {
LPDIRECTINPUT8 lpdi = (LPDIRECTINPUT8)(LONG_PTR)di_interface;
IDirectInput8_Release(lpdi);
CoUninitialize();
}

View File

@ -0,0 +1,160 @@
/*
* Copyright (c) 2002-2004 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 <elias_naur@users.sourceforge.net>
* @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_d3d_WindowsDirectInput3.h"
#include "org_lwjgl_d3d_WindowsDirectInputDevice3.h"
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_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_d3d_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_d3d_WindowsDirectInput3_KEYBOARD_TYPE:
format = &c_dfDIKeyboard;
break;
case org_lwjgl_d3d_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_d3d_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_d3d_WindowsDirectInputDevice3_getEventSize(JNIEnv *env, jobject unused) {
return sizeof(DIDEVICEOBJECTDATA);
}
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_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_d3d_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_d3d_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_d3d_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_d3d_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_d3d_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_d3d_WindowsDirectInputDevice3_GUID_Button;
} else if(IsEqualGUID(&lpddoi->guidType, &GUID_XAxis)) {
object_type = org_lwjgl_d3d_WindowsDirectInputDevice3_GUID_XAxis;
} else if(IsEqualGUID(&lpddoi->guidType, &GUID_YAxis)) {
object_type = org_lwjgl_d3d_WindowsDirectInputDevice3_GUID_YAxis;
} else if(IsEqualGUID(&lpddoi->guidType, &GUID_ZAxis)) {
object_type = org_lwjgl_d3d_WindowsDirectInputDevice3_GUID_ZAxis;
} else {
object_type = org_lwjgl_d3d_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_d3d_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);
}

View File

@ -0,0 +1,165 @@
/*
* Copyright (c) 2002-2004 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 <elias_naur@users.sourceforge.net>
* @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_d3d_WindowsDirectInput8.h"
#include "org_lwjgl_d3d_WindowsDirectInputDevice8.h"
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_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_d3d_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_d3d_WindowsDirectInputDevice8_setDataFormat(JNIEnv *env, jobject unused, jlong di_device, jint type) {
LPDIRECTINPUTDEVICE8 lpdevice = (LPDIRECTINPUTDEVICE8)(LONG_PTR)di_device;
LPCDIDATAFORMAT format;
switch (type) {
case org_lwjgl_d3d_WindowsDirectInput8_KEYBOARD_TYPE:
format = &c_dfDIKeyboard;
break;
case org_lwjgl_d3d_WindowsDirectInput8_MOUSE_TYPE:
format = &c_dfDIMouse;
break;
default:
throwFormattedException(env, "Unknown device type (%d)", type);
return DIERR_INVALIDPARAM;
}
return IDirectInputDevice8_SetDataFormat(lpdevice, format);
}
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_WindowsDirectInputDevice8_getDeviceState(JNIEnv *env, jobject unused, jlong di_device, jobject buffer_obj, jint pos, jint size) {
LPDIRECTINPUTDEVICE8 lpdevice = (LPDIRECTINPUTDEVICE8)(LONG_PTR)di_device;
jbyte *buffer = pos + (jbyte *)(*env)->GetDirectBufferAddress(env, buffer_obj);
return IDirectInputDevice8_GetDeviceState(lpdevice, size, buffer);
}
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_WindowsDirectInputDevice8_getEventSize(JNIEnv *env, jobject unused) {
return sizeof(DIDEVICEOBJECTDATA);
}
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_WindowsDirectInputDevice8_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) {
LPDIRECTINPUTDEVICE8 lpdevice = (LPDIRECTINPUTDEVICE8)(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 = IDirectInputDevice8_GetDeviceData(lpdevice, sizeof(DIDEVICEOBJECTDATA), event_buffer, &num_events, 0);
jint num_buffer_events = buffer_size/org_lwjgl_d3d_WindowsDirectInputDevice8_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_d3d_WindowsDirectInputDevice8_acquire(JNIEnv *env, jobject unused, jlong di_device) {
LPDIRECTINPUTDEVICE8 lpdevice = (LPDIRECTINPUTDEVICE8)(LONG_PTR)di_device;
return IDirectInputDevice8_Acquire(lpdevice);
}
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_WindowsDirectInputDevice8_setBufferSize(JNIEnv *env, jobject unused, jlong di_device, jint buffer_size) {
LPDIRECTINPUTDEVICE8 lpdevice = (LPDIRECTINPUTDEVICE8)(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 IDirectInputDevice8_SetProperty(lpdevice, DIPROP_BUFFERSIZE, &dipropdw.diph);
}
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_WindowsDirectInputDevice8_setCooperativeLevel(JNIEnv *env, jobject unused, jlong di_device, jlong hwnd_int, jint flags) {
LPDIRECTINPUTDEVICE8 lpdevice = (LPDIRECTINPUTDEVICE8)(LONG_PTR)di_device;
HWND hwnd = (HWND)(LONG_PTR)hwnd_int;
return IDirectInputDevice8_SetCooperativeLevel(lpdevice, hwnd, flags);
}
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsDirectInputDevice8_release(JNIEnv *env, jobject unused, jlong di_device) {
LPDIRECTINPUTDEVICE8 lpdevice = (LPDIRECTINPUTDEVICE8)(LONG_PTR)di_device;
IDirectInputDevice8_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_d3d_WindowsDirectInputDevice8_GUID_Button;
} else if(IsEqualGUID(&lpddoi->guidType, &GUID_XAxis)) {
object_type = org_lwjgl_d3d_WindowsDirectInputDevice8_GUID_XAxis;
} else if(IsEqualGUID(&lpddoi->guidType, &GUID_YAxis)) {
object_type = org_lwjgl_d3d_WindowsDirectInputDevice8_GUID_YAxis;
} else if(IsEqualGUID(&lpddoi->guidType, &GUID_ZAxis)) {
object_type = org_lwjgl_d3d_WindowsDirectInputDevice8_GUID_ZAxis;
} else {
object_type = org_lwjgl_d3d_WindowsDirectInputDevice8_GUID_Unknown;
}
return objectCallback(enum_context->env, enum_context->enumerator, object_type, lpddoi->tszName) ? DIENUM_CONTINUE : DIENUM_STOP;
}
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_WindowsDirectInputDevice8_enumObjects(JNIEnv *env, jobject unused, jlong di_device, jobject enumerator) {
LPDIRECTINPUTDEVICE8 lpdevice = (LPDIRECTINPUTDEVICE8)(LONG_PTR)di_device;
enum_context_t enum_context;
enum_context.env = env;
enum_context.enumerator = enumerator;
return IDirectInputDevice8_EnumObjects(lpdevice, EnumMouseObjectsCallback, &enum_context, DIDFT_ALL);
}

View File

@ -0,0 +1,682 @@
#include <jni.h>
#include <windows.h>
#include "common_tools.h"
#include "org_lwjgl_d3d_WindowsDisplay.h"
#define WINDOWCLASSNAME "LWJGL"
static HICON small_icon = NULL;
static HICON large_icon = NULL;
static HWND displayHwnd = NULL; // Handle to the window
static HDC displayHdc = NULL; // Device context
extern HINSTANCE dll_handle; // Handle to the LWJGL dll
HDC getD3DHDC() {
return displayHdc;
}
HWND getD3DHWND() {
return displayHwnd;
}
static void freeLargeIcon() {
if (large_icon != NULL) {
DestroyIcon(large_icon);
large_icon = NULL;
}
}
static void freeSmallIcon() {
if (small_icon != NULL) {
DestroyIcon(small_icon);
small_icon = NULL;
}
}
static void copyBufferToRect(JNIEnv *env, jobject buffer_handle, RECT *rect) {
jint *buffer = (jint *)(*env)->GetDirectBufferAddress(env, buffer_handle);
jlong size = (*env)->GetDirectBufferCapacity(env, buffer_handle);
if (size < 4) {
throwFormattedRuntimeException(env, "Buffer size < 4", size);
return;
}
rect->top = buffer[0];
rect->bottom = buffer[1];
rect->left = buffer[2];
rect->right = buffer[3];
}
void d3dSetGammaRamp(JNIEnv * env, jobject gammaRampBuffer) {
HDC screenDC;
WORD *gammaRamp = (WORD *)(*env)->GetDirectBufferAddress(env, gammaRampBuffer);
screenDC = GetDC(NULL);
if (SetDeviceGammaRamp(screenDC, gammaRamp) == FALSE) {
throwException(env, "Failed to set device gamma.");
}
ReleaseDC(NULL, screenDC);
}
/*
* Create a window with the specified title, position, size, and
* fullscreen attribute. The window will have DirectInput associated
* with it.
*
* Returns true for success, or false for failure
*/
HWND d3dCreateWindow(LPCTSTR window_class_name, int x, int y, int width, int height, bool fullscreen, bool undecorated)
{
RECT clientSize;
DWORD exstyle, windowflags;
HWND new_hwnd;
getWindowFlags(&windowflags, &exstyle, fullscreen, undecorated);
// If we're not a fullscreen window, adjust the height to account for the
// height of the title bar (unless undecorated)
clientSize.bottom = height;
clientSize.left = 0;
clientSize.right = width;
clientSize.top = 0;
AdjustWindowRectEx(
&clientSize, // client-rectangle structure
windowflags, // window styles
FALSE, // menu-present option
exstyle // extended window style
);
// Create the window now, using that class:
new_hwnd = CreateWindowEx (
exstyle,
window_class_name,
"",
windowflags,
x, y, clientSize.right - clientSize.left, clientSize.bottom - clientSize.top,
NULL,
NULL,
dll_handle,
NULL);
return new_hwnd;
}
static HICON createWindowIcon(JNIEnv *env, jint *pixels, jint width, jint height) {
unsigned char col;
unsigned char mask;
BITMAPINFO bitmapInfo;
HBITMAP cursorMask;
HBITMAP colorBitmap;
ICONINFO iconInfo;
HICON icon;
char *ptrCursorImage;
int x, y;
char *dstPtr;
int wordAlignedWidth;
int imageSize;
unsigned char *maskPixels;
int widthInBytes;
int leftShift;
int maskPixelsOff;
int scanlineWidth;
HBITMAP colorDIB;
memset(&bitmapInfo, 0, sizeof(BITMAPINFO));
bitmapInfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bitmapInfo.bmiHeader.biWidth = width;
bitmapInfo.bmiHeader.biHeight = -height;
bitmapInfo.bmiHeader.biPlanes = 1;
bitmapInfo.bmiHeader.biBitCount = 24;
bitmapInfo.bmiHeader.biCompression = BI_RGB;
colorDIB = CreateDIBSection(GetDC(NULL), (BITMAPINFO*)&(bitmapInfo),
DIB_RGB_COLORS, (void*)&(ptrCursorImage), NULL, 0);
if (!ptrCursorImage) {
throwException(env, "Could not allocate DIB section.");
}
wordAlignedWidth = width * 3;
if (wordAlignedWidth % sizeof(long) != 0) {
wordAlignedWidth = (wordAlignedWidth / sizeof(long)) * sizeof(long) + sizeof(long);
}
for (y = 0; y < height; y++ ) {
dstPtr = ptrCursorImage + wordAlignedWidth*y;;
for (x = 0; x < width; x++ ) {
if ((pixels[y*width+x] & 0xFF000000) != 0)
{
dstPtr[0] = (pixels[y*width+x] >> 0x10) & 0xFF;
dstPtr[1] = (pixels[y*width+x] >> 0x08) & 0xFF;
dstPtr[2] = pixels[y*width+x] & 0xFF;
}
else
{
dstPtr[0] = 0;
dstPtr[1] = 0;
dstPtr[2] = 0;
}
dstPtr += 3;
}
}
colorBitmap = CreateDIBitmap(GetDC(NULL),
(BITMAPINFOHEADER*)&bitmapInfo.bmiHeader,
CBM_INIT,
(void *)ptrCursorImage,
(BITMAPINFO*)&bitmapInfo,
DIB_RGB_COLORS);
DeleteObject(colorDIB);
// Convert alpha map to pixel packed mask
// number of bytes it takes to fit a bit packed scan line.
widthInBytes = (width & 0x7) != 0 ? (width >> 3) + 1 : (width >> 3);
// number of bytes it takes to fit WORD padded scan line.
scanlineWidth = widthInBytes;
if (scanlineWidth % sizeof(WORD) != 0) {
scanlineWidth = (scanlineWidth / sizeof(WORD)) * sizeof(WORD) + sizeof(WORD);
}
imageSize = scanlineWidth*height;
maskPixels = (unsigned char*)malloc(sizeof(unsigned char)*imageSize);
memset(maskPixels, 0, imageSize);
for (y = 0; y < height; y++) {
leftShift = 7;
mask = 0;
maskPixelsOff = scanlineWidth*y;
for (x = 0; x < width; x++) {
col = (((pixels[(width*y)+x] & 0xFF000000) != 0) ? 1 : 0) << leftShift;
mask = mask | col;
leftShift--;
if (leftShift == -1) {
maskPixels[maskPixelsOff++] = ~mask;
leftShift = 7;
mask = 0;
}
}
// write what is left over
if (leftShift != 7) {
maskPixels[maskPixelsOff++] = ~mask;
}
}
cursorMask = CreateBitmap(width, height, 1, 1, maskPixels);
memset(&iconInfo, 0, sizeof(ICONINFO));
iconInfo.hbmMask = cursorMask;
iconInfo.hbmColor = colorBitmap;
iconInfo.fIcon = TRUE;
iconInfo.xHotspot = 0;
iconInfo.yHotspot = 0;
icon = CreateIconIndirect(&iconInfo);
DeleteObject(colorBitmap);
DeleteObject(cursorMask);
free(maskPixels);
return icon;
}
/*
* WindowProc for the GL window.
*/
static LRESULT CALLBACK lwjglWindowProc(HWND hWnd,
UINT msg,
WPARAM wParam,
LPARAM lParam)
{
jclass display_class;
jclass display_class_global;
jmethodID handleMessage_method;
LONG message_time;
JNIEnv *env = getThreadEnv();
if (env != NULL && !(*env)->ExceptionOccurred(env)) {
/*
* We'll cache a global reference to the WindowsDisplay class in the window's user data.
* This is not so much to avoid lookup overhead as it is to avoid problems
* with AWT. Specifically, awt code can indirectly call this message handler
* when it does a SendMessage on the main thread to the currently focused window,
* which could be a LWJGL window. The FindClass will then fail because the calling
* internal awt class is using the system class loader, not the application loader
* where lwjgl is found.
*
* The very first message sent to this handler is sent when
* a window is created, where we are sure that the calling class' classloader has
* LWJGL classes in it.
*/
display_class_global = (jclass)(LONG_PTR)GetWindowLongPtr(hWnd, GWLP_USERDATA);
if (display_class_global == NULL) {
display_class = (*env)->FindClass(env, "org/lwjgl/d3d/WindowsDisplay");
if (display_class != NULL) {
display_class_global = (*env)->NewGlobalRef(env, display_class);
if (display_class_global != NULL)
SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG_PTR)display_class_global);
}
}
if (display_class_global != NULL) {
message_time = GetMessageTime();
handleMessage_method = (*env)->GetStaticMethodID(env, display_class_global, "handleMessage", "(JIJJJ)Z");
if (handleMessage_method != NULL)
if ((*env)->CallStaticBooleanMethod(env, display_class_global, handleMessage_method, (jlong)(intptr_t)hWnd, (jint)msg, (jlong)wParam, (jlong)lParam, (jlong)message_time))
return 0;
}
}
// default action
return DefWindowProc(hWnd, msg, wParam, lParam);
}
/*
* Handle native Windows messages
*/
static void handleMessages(JNIEnv *env) {
/*
* Now's our chance to deal with Windows messages that are
* otherwise just piling up and causing everything not to
* work properly
*/
MSG msg;
if (displayHwnd != NULL) {
while (!(*env)->ExceptionOccurred(env) && PeekMessage(
&msg, // message information
NULL, // handle to window
0, // first message
0, // last message
PM_REMOVE // removal options
))
{
DispatchMessage(&msg);
TranslateMessage(&msg);
}
}
}
static jobject createDisplayMode(JNIEnv *env, DEVMODE *devmode) {
jclass displayModeClass;
jmethodID displayModeConstructor;
displayModeClass = (*env)->FindClass(env, "org/lwjgl/d3d/DisplayMode");
if (displayModeClass == NULL)
return NULL;
displayModeConstructor = (*env)->GetMethodID(env, displayModeClass, "<init>", "(IIII)V");
if (displayModeConstructor == NULL)
return NULL;
return (*env)->NewObject(env, displayModeClass, displayModeConstructor,
devmode->dmPelsWidth, devmode->dmPelsHeight,
devmode->dmBitsPerPel, devmode->dmDisplayFrequency);
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: nCreateWindow
* Signature: (Lorg/lwjgl/d3d/DisplayMode;ZII)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsDisplay_nCreateWindow
(JNIEnv *env, jobject obj, jobject mode, jboolean fullscreen, jint x, jint y) {
jclass cls_displayMode = (*env)->GetObjectClass(env, mode);
jfieldID fid_width = (*env)->GetFieldID(env, cls_displayMode, "width", "I");
jfieldID fid_height = (*env)->GetFieldID(env, cls_displayMode, "height", "I");
int width = (*env)->GetIntField(env, mode, fid_width);
int height = (*env)->GetIntField(env, mode, fid_height);
bool isUndecorated; // Whether we're undecorated or not
static bool oneShotInitialised = false;
if (!oneShotInitialised) {
if (!registerWindow(lwjglWindowProc, WINDOWCLASSNAME)) {
throwException(env, "Could not register window class");
return;
}
oneShotInitialised = true;
}
isUndecorated = getBooleanProperty(env, "org.lwjgl.opengl.Window.undecorated");
displayHwnd = d3dCreateWindow(WINDOWCLASSNAME, x, y, width, height, fullscreen, isUndecorated);
if (displayHwnd == NULL) {
throwException(env, "Failed to create the window.");
return;
}
displayHdc = GetDC(displayHwnd);
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: nDestroyWindow
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsDisplay_nDestroyWindow
(JNIEnv *env, jclass clazz) {
jclass display_class_global = (jclass)(LONG_PTR)GetWindowLongPtr(displayHwnd, GWLP_USERDATA);
closeWindow(&displayHwnd, &displayHdc);
if (display_class_global != NULL) {
(*env)->DeleteGlobalRef(env, display_class_global);
}
freeLargeIcon();
freeSmallIcon();
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: clipCursor
* Signature: (JLjava/nio/IntBuffer;)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsDisplay_clipCursor
(JNIEnv *env, jclass clazz, jlong hwndPtr, jobject handleBuffer) {
HWND hwnd = (HWND)(INT_PTR)hwndPtr;
RECT clip_rect;
LPRECT clip_rect_ptr;
if (handleBuffer != NULL) {
copyBufferToRect(env, handleBuffer, &clip_rect);
clip_rect_ptr = &clip_rect;
} else
clip_rect_ptr = NULL;
if (ClipCursor(clip_rect_ptr) == 0)
throwFormattedException(env, "ClipCursor failed (%d)", GetLastError());
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: nSwitchDisplayMode
* Signature: (Lorg/lwjgl/d3d/DisplayMode;)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsDisplay_nSwitchDisplayMode
(JNIEnv *env, jclass clazz, jobject mode) {
DEVMODE devmode;
jclass cls_displayMode = (*env)->GetObjectClass(env, mode);
jfieldID fid_width = (*env)->GetFieldID(env, cls_displayMode, "width", "I");
jfieldID fid_height = (*env)->GetFieldID(env, cls_displayMode, "height", "I");
jfieldID fid_bpp = (*env)->GetFieldID(env, cls_displayMode, "bpp", "I");
jfieldID fid_freq = (*env)->GetFieldID(env, cls_displayMode, "freq", "I");
int width = (*env)->GetIntField(env, mode, fid_width);
int height = (*env)->GetIntField(env, mode, fid_height);
int bpp = (*env)->GetIntField(env, mode, fid_bpp);
int freq = (*env)->GetIntField(env, mode, fid_freq);
LONG cdsret;
ZeroMemory(&devmode, sizeof(DEVMODE));
devmode.dmSize = sizeof(DEVMODE);
devmode.dmBitsPerPel = bpp;
devmode.dmPelsWidth = width;
devmode.dmPelsHeight = height;
devmode.dmDisplayFrequency = freq;
devmode.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
if (freq != 0)
devmode.dmFields |= DM_DISPLAYFREQUENCY;
cdsret = ChangeDisplaySettings(&devmode, CDS_FULLSCREEN);
if (cdsret != DISP_CHANGE_SUCCESSFUL) {
throwFormattedException(env, "Failed to set display mode (%ld).", cdsret);
return;
}
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: showWindow
* Signature: (JI)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsDisplay_showWindow
(JNIEnv *env, jclass clazz, jlong hwndPtr, jint mode) {
HWND hwnd = (HWND)(INT_PTR)hwndPtr;
ShowWindow(hwnd, mode);
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: setForegroundWindow
* Signature: (J)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsDisplay_setForegroundWindow
(JNIEnv *env, jclass clazz, jlong hwndPtr) {
HWND hwnd = (HWND)(INT_PTR)hwndPtr;
SetForegroundWindow(hwnd);
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: setFocus
* Signature: (J)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsDisplay_setFocus
(JNIEnv *env, jclass clazz, jlong hwndPtr) {
HWND hwnd = (HWND)(INT_PTR)hwndPtr;
SetFocus(hwnd);
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: nResetDisplayMode
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsDisplay_nResetDisplayMode
(JNIEnv *env, jclass clazz) {
ChangeDisplaySettings(NULL, 0);
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: convertToNativeRamp
* Signature: (Ljava/nio/FloatBuffer;)Ljava/nio/ByteBuffer;
*/
JNIEXPORT jobject JNICALL Java_org_lwjgl_d3d_WindowsDisplay_convertToNativeRamp
(JNIEnv *env, jclass clazz, jobject gammaRamp) {
return NULL;
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: getCurrentGammaRamp
* Signature: ()Ljava/nio/ByteBuffer;
*/
JNIEXPORT jobject JNICALL Java_org_lwjgl_d3d_WindowsDisplay_getCurrentGammaRamp
(JNIEnv *env, jclass clazz) {
return NULL;
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: nSetGammaRamp
* Signature: (Ljava/nio/ByteBuffer;)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsDisplay_nSetGammaRamp
(JNIEnv *env, jclass clazz, jobject nativeRamp) {
d3dSetGammaRamp(env, nativeRamp);
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: nGetVersion
* Signature: (Ljava/lang/String;)Lorg/lwjgl/d3d/WindowsFileVersion;
*/
JNIEXPORT jobject JNICALL Java_org_lwjgl_d3d_WindowsDisplay_nGetVersion
(JNIEnv *env, jobject obj, jstring driver) {
return NULL;
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: getCurrentDisplayMode
* Signature: ()Lorg/lwjgl/d3d/DisplayMode;
*/
JNIEXPORT jobject JNICALL Java_org_lwjgl_d3d_WindowsDisplay_getCurrentDisplayMode
(JNIEnv *env, jclass clazz) {
DEVMODE devmode;
if (!EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &devmode)) {
throwFormattedException(env, "Couldn't get current display settings (%ld)", GetLastError());
return NULL;
}
return createDisplayMode(env, &devmode);
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: setTitle
* Signature: (Ljava/lang/String;)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsDisplay_setTitle
(JNIEnv *env, jobject obj, jstring title_obj) {
char * title = GetStringNativeChars(env, title_obj);
SetWindowText(displayHwnd, title);
free(title);
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: nUpdate
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsDisplay_nUpdate
(JNIEnv *env, jclass clazz) {
handleMessages(env);
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: nReshape
* Signature: (JIIII)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsDisplay_nReshape
(JNIEnv *env, jclass clazz, jlong hwndPtr, jint x, jint y, jint width, jint height) {
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: getAvailableDisplayModes
* Signature: ()[Lorg/lwjgl/d3d/DisplayMode;
*/
JNIEXPORT jobjectArray JNICALL Java_org_lwjgl_d3d_WindowsDisplay_getAvailableDisplayModes
(JNIEnv *env, jobject obj) {
int i = 0, j = 0, n = 0;
DEVMODE DevMode;
jobject *display_mode_objects = NULL;
int list_size = 0;
jclass displayModeClass;
jobjectArray ret;
displayModeClass = (*env)->FindClass(env, "org/lwjgl/d3d/DisplayMode");
ZeroMemory(&DevMode, sizeof(DEVMODE));
DevMode.dmSize = sizeof(DEVMODE);
while(EnumDisplaySettings(NULL, j++, &DevMode) != 0) {
// Filter out indexed modes
if (DevMode.dmBitsPerPel > 8 && ChangeDisplaySettings(&DevMode, CDS_FULLSCREEN | CDS_TEST) == DISP_CHANGE_SUCCESSFUL) {
jobject displayMode;
if (list_size <= n) {
list_size += 1;
display_mode_objects = (jobject *)realloc(display_mode_objects, sizeof(jobject)*list_size);
if (display_mode_objects == NULL) {
return NULL;
}
}
displayMode = createDisplayMode(env, &DevMode);
display_mode_objects[n++] = displayMode;
}
}
printfDebugJava(env, "Found %d displaymodes", n);
ret = (*env)->NewObjectArray(env, n, displayModeClass, NULL);
for (i = 0; i < n; i++) {
(*env)->SetObjectArrayElement(env, ret, i, display_mode_objects[i]);
}
free(display_mode_objects);
return ret;
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: nSetCursorPosition
* Signature: (II)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsDisplay_nSetCursorPosition
(JNIEnv *env, jclass clazz, jint x, jint y) {
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: nSetNativeCursor
* Signature: (JLjava/lang/Object;)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsDisplay_nSetNativeCursor
(JNIEnv *env, jclass clazz, jlong hwndPtr, jobject handle) {
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: getSystemMetrics
* Signature: (I)I
*/
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_WindowsDisplay_getSystemMetrics
(JNIEnv *env, jclass clazz, jint index) {
return 0;
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: getDllInstance
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_WindowsDisplay_getDllInstance
(JNIEnv *env, jclass clazz) {
return 0;
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: getHwnd
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_WindowsDisplay_getHwnd
(JNIEnv *env, jclass clazz) {
return (jlong)getD3DHWND();
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: getDesktopWindow
* Signature: ()J
*/
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_WindowsDisplay_getDesktopWindow
(JNIEnv *env, jclass clazz) {
return 0;
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: nSetWindowIcon16
* Signature: (Ljava/nio/IntBuffer;)I
*/
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_WindowsDisplay_nSetWindowIcon16
(JNIEnv *env, jclass clazz, jobject icon) {
return 0;
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: nSetWindowIcon32
* Signature: (Ljava/nio/IntBuffer;)I
*/
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_WindowsDisplay_nSetWindowIcon32
(JNIEnv *env, jclass clazz, jobject icon) {
return 0;
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: getClientRect
* Signature: (JLjava/nio/IntBuffer;)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsDisplay_getClientRect
(JNIEnv *env, jclass clazz, jlong hwndPtr, jobject rect) {
}
/*
* Class: org_lwjgl_d3d_WindowsDisplay
* Method: clientToScreen
* Signature: (JLjava/nio/IntBuffer;)V
*/
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsDisplay_clientToScreen
(JNIEnv *env, jclass clazz, jlong hwndPtr, jobject point) {
}

View File

@ -0,0 +1,51 @@
/*
* Copyright (c) 2002-2004 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_d3d_WindowsDisplayPeerInfo.c 2618 2006-10-30 15:46:42Z elias_naur $
*
* @author elias_naur <elias_naur@users.sourceforge.net>
* @version $Revision: 2618 $
*/
#include <jni.h>
#include "Window.h"
#include "org_lwjgl_d3d_WindowsDisplayPeerInfo.h"
#include "context.h"
#include "common_tools.h"
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsDisplayPeerInfo_nInitDC
(JNIEnv *env, jclass clazz, jobject peer_info_handle) {
WindowsPeerInfo *peer_info = (WindowsPeerInfo *)(*env)->GetDirectBufferAddress(env, peer_info_handle);
peer_info->drawable_hdc = getCurrentHDC();
peer_info->u.hwnd = getCurrentHWND();
}

View File

@ -0,0 +1,75 @@
/*
* Copyright (c) 2002-2004 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_naue <elias_naur@users.sourceforge.net>
* @version $Revision: 2385 $
*/
#include "Window.h"
#include <jni.h>
#include "org_lwjgl_d3d_WindowsKeyboard.h"
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_WindowsKeyboard_GetKeyState(JNIEnv *env, jclass unused, jint virt_key) {
return GetKeyState(virt_key);
}
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_WindowsKeyboard_MapVirtualKey(JNIEnv *env, jclass unused, jint uCode, jint uMapType) {
return MapVirtualKey(uCode, uMapType);
}
JNIEXPORT jboolean JNICALL Java_org_lwjgl_d3d_WindowsKeyboard_isWindowsNT(JNIEnv *env, jclass unused) {
OSVERSIONINFO osvi;
osvi.dwOSVersionInfoSize = sizeof(osvi);
GetVersionEx(&osvi);
return osvi.dwPlatformId == VER_PLATFORM_WIN32_NT ? JNI_TRUE : JNI_FALSE;
}
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_WindowsKeyboard_ToUnicode(JNIEnv *env, jclass unused, jint wVirtKey, jint wScanCode, jobject lpKeyState_obj, jobject pwszBuff_obj, jint cchBuff, jint flags) {
const PBYTE lpKeyState = (*env)->GetDirectBufferAddress(env, lpKeyState_obj);
LPWSTR pwszBuff = (*env)->GetDirectBufferAddress(env, pwszBuff_obj);
return ToUnicode(wVirtKey, wScanCode, lpKeyState, pwszBuff, cchBuff, flags);
}
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_WindowsKeyboard_ToAscii(JNIEnv *env, jclass unused, jint wVirtKey, jint wScanCode, jobject lpKeyState_obj, jobject lpChar_obj, jint flags) {
const PBYTE lpKeyState = (*env)->GetDirectBufferAddress(env, lpKeyState_obj);
LPWORD lpChar = (*env)->GetDirectBufferAddress(env, lpChar_obj);
return ToAscii(wVirtKey, wScanCode, lpKeyState, lpChar, flags);
}
JNIEXPORT jint JNICALL Java_org_lwjgl_d3d_WindowsKeyboard_GetKeyboardState(JNIEnv *env, jclass unused, jobject lpKeyState_obj) {
PBYTE lpKeyState = (*env)->GetDirectBufferAddress(env, lpKeyState_obj);
return GetKeyboardState(lpKeyState);
}

View File

@ -0,0 +1,65 @@
/*
* Copyright (c) 2002-2004 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_d3d_WindowsPeerInfo.c 2619 2006-10-30 15:49:02Z elias_naur $
*
* @author elias_naur <elias_naur@users.sourceforge.net>
* @version $Revision: 2619 $
*/
#include <jni.h>
#include "org_lwjgl_d3d_WindowsPeerInfo.h"
#include "context.h"
#include "common_tools.h"
JNIEXPORT jobject JNICALL Java_org_lwjgl_d3d_WindowsPeerInfo_createHandle
(JNIEnv *env, jclass clazz) {
return newJavaManagedByteBuffer(env, sizeof(WindowsPeerInfo));
}
JNIEXPORT void JNICALL Java_org_lwjgl_d3d_WindowsPeerInfo_nChoosePixelFormat
(JNIEnv *env, jclass clazz, jobject peer_info_handle, jint origin_x, jint origin_y, jobject pixel_format, jobject pixel_format_caps, jboolean use_hdc_bpp, jboolean window, jboolean pbuffer, jboolean double_buffer) {
WindowsPeerInfo *peer_info = (WindowsPeerInfo *)(*env)->GetDirectBufferAddress(env, peer_info_handle);
jclass cls_pixel_format = (*env)->GetObjectClass(env, pixel_format);
bool floating_point = (bool)(*env)->GetBooleanField(env, pixel_format, (*env)->GetFieldID(env, cls_pixel_format, "floating_point", "Z"));
int pixel_format_id = findPixelFormatOnDC(env, peer_info->drawable_hdc, origin_x, origin_y, pixel_format, pixel_format_caps, use_hdc_bpp, window, pbuffer, double_buffer, floating_point);
if (pixel_format_id == -1)
return;
// Let it throw
applyPixelFormat(env, peer_info->drawable_hdc, pixel_format_id);
}
JNIEXPORT jlong JNICALL Java_org_lwjgl_d3d_WindowsPeerInfo_nGetHwnd(JNIEnv *env, jclass unused, jobject peer_info_handle) {
WindowsPeerInfo *peer_info = (WindowsPeerInfo *)(*env)->GetDirectBufferAddress(env, peer_info_handle);
return (intptr_t)peer_info->u.hwnd;
}

View File

@ -0,0 +1,145 @@
/*
* Copyright (c) 2002-2004 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_d3d_WindowsRegistry.c 2775 2007-04-19 22:21:04Z matzon $
*
* @author elias_naur <elias_naur@users.sourceforge.net>
* @version $Revision: 2775 $
*/
#include <jni.h>
#include <windows.h>
#include "org_lwjgl_d3d_WindowsRegistry.h"
#include "common_tools.h"
/*
* Return a string containing the queried value, or NULL of the method fails.
* In that case, a java exception is thrown.
*/
static jstring queryRegistrationKey(JNIEnv *env, HKEY root_key, LPCTSTR subkey, LPCTSTR value) {
DWORD buf_size = 1;
char *result;
HKEY hKey;
LONG lRet;
jstring java_result;
if(RegOpenKeyEx(root_key,
TEXT(subkey),
0,
KEY_QUERY_VALUE,
&hKey) != ERROR_SUCCESS) {
throwException(env, "Failed to open registry key");
return NULL;
}
result = (char *)malloc(buf_size);
if (result == NULL) {
RegCloseKey(hKey);
throwException(env, "Failed to allocate buffer");
return NULL;
}
while (1) {
lRet = RegQueryValueEx(hKey,
TEXT(value),
NULL,
NULL,
(LPBYTE)result,
&buf_size);
if (lRet != ERROR_SUCCESS && lRet != ERROR_MORE_DATA) {
RegCloseKey(hKey);
free(result);
throwException(env, "Failed query key value");
return NULL;
}
if (lRet == ERROR_SUCCESS) {
RegCloseKey(hKey);
// make sure the result has a terminating null
buf_size += 1;
result = (char *)realloc(result, buf_size);
if (result == NULL) {
throwException(env, "Failed to resize buffer");
return NULL;
}
result[buf_size - 1] = '\0';
java_result = NewStringNativeWithLength(env, result, strlen(result));
free(result);
return java_result;
}
result = (char *)realloc(result, buf_size);
if (result == NULL) {
RegCloseKey(hKey);
throwException(env, "Failed to resize buffer");
return NULL;
}
}
}
static HKEY enumToRootKey(jint root_key_enum) {
switch (root_key_enum) {
case org_lwjgl_d3d_WindowsRegistry_HKEY_CLASSES_ROOT:
return HKEY_CLASSES_ROOT;
case org_lwjgl_d3d_WindowsRegistry_HKEY_CURRENT_USER:
return HKEY_CURRENT_USER;
case org_lwjgl_d3d_WindowsRegistry_HKEY_LOCAL_MACHINE:
return HKEY_LOCAL_MACHINE;
case org_lwjgl_d3d_WindowsRegistry_HKEY_USERS:
return HKEY_USERS;
default:
return 0;
}
}
JNIEXPORT jstring JNICALL Java_org_lwjgl_d3d_WindowsRegistry_nQueryRegistrationKey (JNIEnv *env, jclass unused, jint root_key, jstring subkey, jstring value) {
HKEY root = enumToRootKey(root_key);
char *subkey_native;
char *value_native;
jstring result;
subkey_native = GetStringNativeChars(env, subkey);
if (subkey_native == NULL) {
throwException(env, "Failed to fetch the native string");
return NULL;
}
value_native = GetStringNativeChars(env, value);
if (value_native == NULL) {
free(subkey_native);
throwException(env, "Failed to fetch the native string");
return NULL;
}
result = queryRegistrationKey(env, root, subkey_native, value_native);
free(subkey_native);
free(value_native);
return result;
}