/******************************************************************************* | |
* Copyright (c) 2000, 2003 IBM Corporation and others. | |
* All rights reserved. This program and the accompanying materials | |
* are made available under the terms of the Common Public License v1.0 | |
* which accompanies this distribution, and is available at | |
* http://www.eclipse.org/legal/cpl-v10.html | |
* | |
* Contributors: | |
* IBM Corporation - initial API and implementation | |
*******************************************************************************/ | |
#include <windows.h> | |
#include <wingdi.h> | |
#include "jni.h" | |
#include "swt.h" | |
#include "structs.h" | |
#define WGL_NATIVE(func) Java_org_eclipse_swt_opengl_internal_win32_WGL_##func | |
JNIEXPORT jint JNICALL WGL_NATIVE(ChoosePixelFormat) | |
(JNIEnv *env, jclass that, jint arg0, jobject arg1) | |
{ | |
PIXELFORMATDESCRIPTOR _arg1, *lparg1=NULL; | |
jint rc; | |
DEBUG_CALL("ChoosePixelFormat\n") | |
if (arg1) lparg1 = getPIXELFORMATDESCRIPTORFields(env, arg1, &_arg1); | |
rc = (jint)ChoosePixelFormat((HDC)arg0, (CONST PIXELFORMATDESCRIPTOR *)lparg1); | |
if (arg1) setPIXELFORMATDESCRIPTORFields(env, arg1, lparg1); | |
return rc; | |
} | |
JNIEXPORT jint JNICALL WGL_NATIVE(DescribePixelFormat) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jobject arg3) | |
{ | |
PIXELFORMATDESCRIPTOR _arg3, *lparg3=NULL; | |
jint rc; | |
DEBUG_CALL("DescribePixelFormat\n") | |
if (arg3) lparg3 = getPIXELFORMATDESCRIPTORFields(env, arg3, &_arg3); | |
rc = (jint)DescribePixelFormat((HDC)arg0, arg1, arg2, (LPPIXELFORMATDESCRIPTOR)lparg3); | |
if (arg3) setPIXELFORMATDESCRIPTORFields(env, arg3, lparg3); | |
return rc; | |
} | |
JNIEXPORT jint JNICALL WGL_NATIVE(GetPixelFormat) | |
(JNIEnv *env, jclass that, jint arg0) | |
{ | |
DEBUG_CALL("GetPixelFormat\n") | |
return (jint)GetPixelFormat((HDC)arg0); | |
} | |
JNIEXPORT jboolean JNICALL WGL_NATIVE(SetPixelFormat) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1, jobject arg2) | |
{ | |
PIXELFORMATDESCRIPTOR _arg2, *lparg2=NULL; | |
jboolean rc; | |
DEBUG_CALL("SetPixelFormat\n") | |
if (arg2) lparg2 = getPIXELFORMATDESCRIPTORFields(env, arg2, &_arg2); | |
rc = (jboolean)SetPixelFormat((HDC)arg0, arg1, (CONST PIXELFORMATDESCRIPTOR *)lparg2); | |
if (arg2) setPIXELFORMATDESCRIPTORFields(env, arg2, lparg2); | |
return rc; | |
} | |
JNIEXPORT jboolean JNICALL WGL_NATIVE(SwapBuffers) | |
(JNIEnv *env, jclass that, jint arg0) | |
{ | |
DEBUG_CALL("SwapBuffers\n") | |
return (jboolean)SwapBuffers((HDC)arg0); | |
} | |
JNIEXPORT jboolean JNICALL WGL_NATIVE(wglCopyContext) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2) | |
{ | |
DEBUG_CALL("wglCopyContext\n") | |
return (jboolean)wglCopyContext((HGLRC)arg0, (HGLRC)arg1, (UINT)arg2); | |
} | |
JNIEXPORT jint JNICALL WGL_NATIVE(wglCreateContext) | |
(JNIEnv *env, jclass that, jint arg0) | |
{ | |
DEBUG_CALL("wglCreateContext\n") | |
return (jint)wglCreateContext((HDC)arg0); | |
} | |
JNIEXPORT jint JNICALL WGL_NATIVE(wglCreateLayerContext) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1) | |
{ | |
DEBUG_CALL("wglCreateLayerContext\n") | |
return (jint)wglCreateLayerContext((HDC)arg0, arg1); | |
} | |
JNIEXPORT jboolean JNICALL WGL_NATIVE(wglDeleteContext) | |
(JNIEnv *env, jclass that, jint arg0) | |
{ | |
DEBUG_CALL("wglDeleteContext\n") | |
return (jboolean)wglDeleteContext((HGLRC)arg0); | |
} | |
JNIEXPORT jboolean JNICALL WGL_NATIVE(wglDescribeLayerPlane) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jobject arg4) | |
{ | |
LAYERPLANEDESCRIPTOR _arg4, *lparg4=NULL; | |
jboolean rc; | |
DEBUG_CALL("wglDescribeLayerPlane\n") | |
if (arg4) lparg4 = getLAYERPLANEDESCRIPTORFields(env, arg4, &_arg4); | |
rc = (jboolean)wglDescribeLayerPlane((HDC)arg0, arg1, arg2, arg3, (LPLAYERPLANEDESCRIPTOR)lparg4); | |
if (arg4) setLAYERPLANEDESCRIPTORFields(env, arg4, lparg4); | |
return rc; | |
} | |
JNIEXPORT jint JNICALL WGL_NATIVE(wglGetCurrentContext) | |
(JNIEnv *env, jclass that) | |
{ | |
DEBUG_CALL("wglGetCurrentContext\n") | |
return (jint)wglGetCurrentContext(); | |
} | |
JNIEXPORT jint JNICALL WGL_NATIVE(wglGetCurrentDC) | |
(JNIEnv *env, jclass that) | |
{ | |
DEBUG_CALL("wglGetCurrentDC\n") | |
return (jint)wglGetCurrentDC(); | |
} | |
JNIEXPORT jint JNICALL WGL_NATIVE(wglGetLayerPaletteEntries) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jintArray arg4) | |
{ | |
jint *lparg4=NULL; | |
jint rc; | |
DEBUG_CALL("wglGetLayerPaletteEntries\n") | |
if (arg4) lparg4 = (*env)->GetIntArrayElements(env, arg4, NULL); | |
rc = (jint)wglGetLayerPaletteEntries((HDC)arg0, arg1, arg2, arg3, (COLORREF *)lparg4); | |
if (arg4) (*env)->ReleaseIntArrayElements(env, arg4, lparg4, 0); | |
return rc; | |
} | |
JNIEXPORT jint JNICALL WGL_NATIVE(wglGetProcAddress) | |
(JNIEnv *env, jclass that, jbyteArray arg0) | |
{ | |
jbyte *lparg0=NULL; | |
jint rc; | |
DEBUG_CALL("wglGetProcAddress\n") | |
if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL); | |
rc = (jint)wglGetProcAddress((LPCSTR)lparg0); | |
if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0); | |
return rc; | |
} | |
JNIEXPORT jboolean JNICALL WGL_NATIVE(wglMakeCurrent) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1) | |
{ | |
DEBUG_CALL("wglMakeCurrent\n") | |
return (jboolean)wglMakeCurrent((HDC)arg0, (HGLRC)arg1); | |
} | |
JNIEXPORT jboolean JNICALL WGL_NATIVE(wglRealizeLayerPalette) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1, jboolean arg2) | |
{ | |
DEBUG_CALL("wglRealizeLayerPalette\n") | |
return (jboolean)wglRealizeLayerPalette((HDC)arg0, arg1, (BOOL)arg2); | |
} | |
JNIEXPORT jint JNICALL WGL_NATIVE(wglSetLayerPaletteEntries) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jintArray arg4) | |
{ | |
jint *lparg4=NULL; | |
jint rc; | |
DEBUG_CALL("wglSetLayerPaletteEntries\n") | |
if (arg4) lparg4 = (*env)->GetIntArrayElements(env, arg4, NULL); | |
rc = (jint)wglSetLayerPaletteEntries((HDC)arg0, arg1, arg2, arg3, (CONST COLORREF *)lparg4); | |
if (arg4) (*env)->ReleaseIntArrayElements(env, arg4, lparg4, 0); | |
return rc; | |
} | |
JNIEXPORT jboolean JNICALL WGL_NATIVE(wglShareLists) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1) | |
{ | |
DEBUG_CALL("wglShareLists\n") | |
return (jboolean)wglShareLists((HGLRC)arg0, (HGLRC)arg1); | |
} | |
JNIEXPORT jboolean JNICALL WGL_NATIVE(wglSwapLayerBuffers) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1) | |
{ | |
DEBUG_CALL("wglSwapLayerBuffers\n") | |
return (jboolean)wglSwapLayerBuffers((HDC)arg0, arg1); | |
} | |
JNIEXPORT jboolean JNICALL WGL_NATIVE(wglUseFontBitmapsA) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3) | |
{ | |
DEBUG_CALL("wglUseFontBitmapsA\n") | |
return (jboolean)wglUseFontBitmapsA((HDC)arg0, arg1, arg2, arg3); | |
} | |
JNIEXPORT jboolean JNICALL WGL_NATIVE(wglUseFontBitmapsW) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3) | |
{ | |
DEBUG_CALL("wglUseFontBitmapsW\n") | |
return (jboolean)wglUseFontBitmapsW((HDC)arg0, arg1, arg2, arg3); | |
} | |
JNIEXPORT jboolean JNICALL WGL_NATIVE(wglUseFontOutlinesA) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jfloat arg4, jfloat arg5, jint arg6, jobject arg7) | |
{ | |
// GLYPHMETRICSFLOAT _arg7, *lparg7=NULL; | |
jboolean rc; | |
DEBUG_CALL("wglUseFontOutlinesA\n") | |
// if (arg7) lparg7 = getGLYPHMETRICSFLOATFields(env, arg7, &_arg7); | |
rc = (jboolean)wglUseFontOutlinesA((HDC)arg0, arg1, arg2, arg3, (FLOAT)arg4, (FLOAT)arg5, arg6, (LPGLYPHMETRICSFLOAT)arg7); | |
// if (arg7) setGLYPHMETRICSFLOATFields(env, arg7, lparg7); | |
return rc; | |
} | |
JNIEXPORT jboolean JNICALL WGL_NATIVE(wglUseFontOutlinesW) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jfloat arg4, jfloat arg5, jint arg6, jobject arg7) | |
{ | |
// GLYPHMETRICSFLOAT _arg7, *lparg7=NULL; | |
jboolean rc; | |
DEBUG_CALL("wglUseFontOutlinesW\n") | |
// if (arg7) lparg7 = getGLYPHMETRICSFLOATFields(env, arg7, &_arg7); | |
rc = (jboolean)wglUseFontOutlinesW((HDC)arg0, arg1, arg2, arg3, (FLOAT)arg4, (FLOAT)arg5, arg6, (LPGLYPHMETRICSFLOAT)arg7); | |
// if (arg7) setGLYPHMETRICSFLOATFields(env, arg7, lparg7); | |
return rc; | |
} | |
JNIEXPORT void JNICALL WGL_NATIVE(MoveMemoryW__Lorg_eclipse_swt_opengl_internal_win32_GLYPHMETRICSFLOAT_2II) | |
(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2) | |
{ | |
GLYPHMETRICSFLOAT _arg0, *lparg0=NULL; | |
DEBUG_CALL("MoveMemoryW__Lorg_eclipse_swt_opengl_internal_win32_GLYPHMETRICSFLOAT_2II\n") | |
DEBUG_CHECK_NULL(env, arg1) | |
if (arg0) lparg0 = &_arg0; | |
MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2); | |
if (arg0) setGLYPHMETRICSFLOATFields(env, arg0, lparg0); | |
} | |
JNIEXPORT void JNICALL WGL_NATIVE(MoveMemoryA__Lorg_eclipse_swt_opengl_internal_win32_GLYPHMETRICSFLOAT_2II) | |
(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2) | |
{ | |
GLYPHMETRICSFLOAT _arg0, *lparg0=NULL; | |
DEBUG_CALL("MoveMemoryA__Lorg_eclipse_swt_opengl_internal_win32_GLYPHMETRICSFLOAT_2II\n") | |
DEBUG_CHECK_NULL(env, arg1) | |
if (arg0) lparg0 = &_arg0; | |
MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2); | |
if (arg0) setGLYPHMETRICSFLOATFields(env, arg0, lparg0); | |
} | |