/******************************************************************************* | |
* 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 <GL/glx.h> | |
#include <string.h> | |
#include "swt.h" | |
#include "structs.h" | |
#define XGL_NATIVE(func) Java_org_eclipse_swt_opengl_internal_gtk_XGL_##func | |
JNIEXPORT jint JNICALL XGL_NATIVE(glXChooseVisual) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2) | |
{ | |
jint *lparg2=NULL; | |
jint rc; | |
NATIVE_ENTER(env, that, "glXChooseVisual\n") | |
if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL); | |
rc = (jint)glXChooseVisual((Display *)arg0, arg1, (int *)lparg2); | |
if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0); | |
NATIVE_EXIT(env, that, "glXChooseVisual\n") | |
return rc; | |
} | |
JNIEXPORT void JNICALL XGL_NATIVE(glXCopyContext) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3) | |
{ | |
NATIVE_ENTER(env, that, "glXCopyContext\n") | |
glXCopyContext((Display *)arg0, (GLXContext)arg1, (GLXContext)arg2, arg3); | |
NATIVE_EXIT(env, that, "glXCopyContext\n") | |
} | |
JNIEXPORT jint JNICALL XGL_NATIVE(glXCreateContext) | |
(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2, jboolean arg3) | |
{ | |
XVisualInfo _arg1, *lparg1=NULL; | |
jint rc; | |
NATIVE_ENTER(env, that, "glXCreateContext\n") | |
if (arg1) lparg1 = getXVisualInfoFields(env, arg1, &_arg1); | |
rc = (jint)glXCreateContext((Display *)arg0, lparg1, (GLXContext)arg2, arg3); | |
if (arg1) setXVisualInfoFields(env, arg1, lparg1); | |
NATIVE_EXIT(env, that, "glXCreateContext\n") | |
return rc; | |
} | |
JNIEXPORT jint JNICALL XGL_NATIVE(glXCreateGLXPixmap) | |
(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2) | |
{ | |
XVisualInfo _arg1, *lparg1=NULL; | |
jint rc; | |
NATIVE_ENTER(env, that, "glXCreateGLXPixmap\n") | |
if (arg1) lparg1 = getXVisualInfoFields(env, arg1, &_arg1); | |
rc = (jint)glXCreateGLXPixmap((Display *)arg0, lparg1, arg2); | |
if (arg1) setXVisualInfoFields(env, arg1, lparg1); | |
NATIVE_EXIT(env, that, "glXCreateGLXPixmap\n") | |
return rc; | |
} | |
JNIEXPORT void JNICALL XGL_NATIVE(glXDestroyContext) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1) | |
{ | |
NATIVE_ENTER(env, that, "glXDestroyContext\n") | |
glXDestroyContext((Display *)arg0, (GLXContext)arg1); | |
NATIVE_EXIT(env, that, "glXDestroyContext\n") | |
} | |
JNIEXPORT void JNICALL XGL_NATIVE(glXDestroyGLXPixmap) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1) | |
{ | |
NATIVE_ENTER(env, that, "glXDestroyGLXPixmap\n") | |
glXDestroyGLXPixmap((Display *)arg0, arg1); | |
NATIVE_EXIT(env, that, "glXDestroyGLXPixmap\n") | |
} | |
JNIEXPORT jint JNICALL XGL_NATIVE(glXGetClientString) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1) | |
{ | |
jint rc; | |
NATIVE_ENTER(env, that, "glXGetClientString\n") | |
rc = (jint)glXGetClientString((Display *)arg0, arg1); | |
NATIVE_EXIT(env, that, "glXGetClientString\n") | |
return rc; | |
} | |
JNIEXPORT jint JNICALL XGL_NATIVE(glXGetConfig) | |
(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2, jintArray arg3) | |
{ | |
XVisualInfo _arg1, *lparg1=NULL; | |
jint *lparg3=NULL; | |
jint rc; | |
NATIVE_ENTER(env, that, "glXGetConfig\n") | |
if (arg1) lparg1 = getXVisualInfoFields(env, arg1, &_arg1); | |
if (arg3) lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL); | |
rc = (jint)glXGetConfig((Display *)arg0, lparg1, arg2, (int *)lparg3); | |
if (arg1) setXVisualInfoFields(env, arg1, lparg1); | |
if (arg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0); | |
NATIVE_EXIT(env, that, "glXGetConfig\n") | |
return rc; | |
} | |
JNIEXPORT jint JNICALL XGL_NATIVE(glXGetCurrentContext) | |
(JNIEnv *env, jclass that) | |
{ | |
jint rc; | |
NATIVE_ENTER(env, that, "glXGetCurrentContext\n") | |
rc = (jint)glXGetCurrentContext(); | |
NATIVE_EXIT(env, that, "glXGetCurrentContext\n") | |
return rc; | |
} | |
JNIEXPORT jint JNICALL XGL_NATIVE(glXGetCurrentDrawable) | |
(JNIEnv *env, jclass that) | |
{ | |
jint rc; | |
NATIVE_ENTER(env, that, "glXGetCurrentDrawable\n") | |
rc = (jint)glXGetCurrentDrawable(); | |
NATIVE_EXIT(env, that, "glXGetCurrentDrawable\n") | |
return rc; | |
} | |
JNIEXPORT jboolean JNICALL XGL_NATIVE(glXIsDirect) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1) | |
{ | |
jboolean result; | |
NATIVE_ENTER(env, that, "glXIsDirect\n") | |
result = (jboolean)glXIsDirect((Display *)arg0, (GLXContext)arg1); | |
NATIVE_EXIT(env, that, "glXIsDirect\n") | |
return result; | |
} | |
JNIEXPORT jboolean JNICALL XGL_NATIVE(glXMakeCurrent) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2) | |
{ | |
jboolean result; | |
NATIVE_ENTER(env, that, "glXMakeCurrent\n") | |
result = (jboolean)glXMakeCurrent((Display *)arg0, (GLXDrawable)arg1, (GLXContext)arg2); | |
NATIVE_EXIT(env, that, "glXMakeCurrent\n") | |
return result; | |
} | |
JNIEXPORT jboolean JNICALL XGL_NATIVE(glXQueryExtension) | |
(JNIEnv *env, jclass that, jint arg0, jintArray arg1, jintArray arg2) | |
{ | |
jint *lparg1=NULL; | |
jint *lparg2=NULL; | |
jboolean rc; | |
NATIVE_ENTER(env, that, "glXQueryExtension\n") | |
if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL); | |
if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL); | |
rc = (jboolean)glXQueryExtension((Display *)arg0, (int *)lparg1, (int *)lparg2); | |
if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0); | |
if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0); | |
NATIVE_EXIT(env, that, "glXQueryExtension\n") | |
return rc; | |
} | |
JNIEXPORT jint JNICALL XGL_NATIVE(glXQueryExtensionsString) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1) | |
{ | |
jint rc; | |
NATIVE_ENTER(env, that, "glXQueryExtensionsString\n") | |
rc = (jint)glXQueryExtensionsString((Display *)arg0, arg1); | |
NATIVE_EXIT(env, that, "glXQueryExtensionsString\n") | |
return rc; | |
} | |
JNIEXPORT jint JNICALL XGL_NATIVE(glXQueryServerString) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2) | |
{ | |
jint rc; | |
NATIVE_ENTER(env, that, "glXQueryServerString\n") | |
rc = (jint)glXQueryServerString((Display *)arg0, arg1, arg2); | |
NATIVE_EXIT(env, that, "glXQueryServerString\n") | |
return rc; | |
} | |
JNIEXPORT jboolean JNICALL XGL_NATIVE(glXQueryVersion) | |
(JNIEnv *env, jclass that, jint arg0, jintArray arg1, jintArray arg2) | |
{ | |
jint *lparg1=NULL; | |
jint *lparg2=NULL; | |
jboolean rc; | |
NATIVE_ENTER(env, that, "glXQueryVersion\n") | |
if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL); | |
if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL); | |
rc = (jboolean)glXQueryVersion((Display *)arg0, (int *)lparg1, (int *)lparg2); | |
if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0); | |
if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0); | |
NATIVE_EXIT(env, that, "glXQueryVersion\n") | |
return rc; | |
} | |
JNIEXPORT void JNICALL XGL_NATIVE(glXSwapBuffers) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1) | |
{ | |
NATIVE_ENTER(env, that, "glXSwapBuffers\n") | |
glXSwapBuffers((Display *)arg0, (GLXDrawable)arg1); | |
NATIVE_EXIT(env, that, "glXSwapBuffers\n") | |
} | |
JNIEXPORT void JNICALL XGL_NATIVE(glXUseXFont) | |
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3) | |
{ | |
NATIVE_ENTER(env, that, "glXUseXFont\n") | |
glXUseXFont(arg0, arg1, arg2, arg3); | |
NATIVE_EXIT(env, that, "glXUseXFont\n") | |
} | |
JNIEXPORT void JNICALL XGL_NATIVE(glXWaitGL) | |
(JNIEnv *env, jclass that) | |
{ | |
NATIVE_ENTER(env, that, "glXWaitGL\n") | |
glXWaitGL(); | |
NATIVE_EXIT(env, that, "glXWaitGL\n") | |
} | |
JNIEXPORT void JNICALL XGL_NATIVE(glXWaitX) | |
(JNIEnv *env, jclass that) | |
{ | |
NATIVE_ENTER(env, that, "glXWaitX\n") | |
glXWaitX(); | |
NATIVE_EXIT(env, that, "glXWaitX\n") | |
} | |
JNIEXPORT void JNICALL XGL_NATIVE(memmove__Lorg_eclipse_swt_opengl_internal_gtk_XVisualInfo_2II) | |
(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2) | |
{ | |
XVisualInfo _arg0, *lparg0=NULL; | |
NATIVE_ENTER(env, that, "memmove__Lorg_eclipse_swt_opengl_internal_gtk_XVisualInfo_2II\n") | |
if (arg0) lparg0 = &_arg0; | |
memmove((void *)lparg0, (const void *)arg1, (size_t)arg2); | |
if (arg0) setXVisualInfoFields(env, arg0, lparg0); | |
NATIVE_EXIT(env, that, "memmove__Lorg_eclipse_swt_opengl_internal_gtk_XVisualInfo_2II\n") | |
} |