| /******************************************************************************* |
| * Copyright (c) 2000, 2005 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-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); |
| } |
| |
| |