blob: e3615ca3e179d8847e75310f22d2c4e22a895755 [file] [log] [blame]
/*******************************************************************************
* 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 "swt.h"
#include "glx_structs.h"
#include "glx_stats.h"
#define GLX_NATIVE(func) Java_org_eclipse_swt_internal_opengl_gtk_GLX_##func
#ifndef NO_glXChooseVisual
JNIEXPORT jint JNICALL GLX_NATIVE(glXChooseVisual)
(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2)
{
jint *lparg2=NULL;
jint rc = 0;
GLX_NATIVE_ENTER(env, that, glXChooseVisual_FUNC);
if (arg2) if ((lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL)) == NULL) goto fail;
rc = (jint)glXChooseVisual(arg0, arg1, lparg2);
fail:
if (arg2 && lparg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);
GLX_NATIVE_EXIT(env, that, glXChooseVisual_FUNC);
return rc;
}
#endif
#ifndef NO_glXCopyContext
JNIEXPORT void JNICALL GLX_NATIVE(glXCopyContext)
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)
{
GLX_NATIVE_ENTER(env, that, glXCopyContext_FUNC);
glXCopyContext(arg0, arg1, arg2, arg3);
GLX_NATIVE_EXIT(env, that, glXCopyContext_FUNC);
}
#endif
#ifndef NO_glXCreateContext
JNIEXPORT jint JNICALL GLX_NATIVE(glXCreateContext)
(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2, jboolean arg3)
{
XVisualInfo _arg1, *lparg1=NULL;
jint rc = 0;
GLX_NATIVE_ENTER(env, that, glXCreateContext_FUNC);
if (arg1) if ((lparg1 = getXVisualInfoFields(env, arg1, &_arg1)) == NULL) goto fail;
rc = (jint)glXCreateContext(arg0, lparg1, arg2, arg3);
fail:
if (arg1 && lparg1) setXVisualInfoFields(env, arg1, lparg1);
GLX_NATIVE_EXIT(env, that, glXCreateContext_FUNC);
return rc;
}
#endif
#ifndef NO_glXCreateGLXPixmap
JNIEXPORT jint JNICALL GLX_NATIVE(glXCreateGLXPixmap)
(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2)
{
XVisualInfo _arg1, *lparg1=NULL;
jint rc = 0;
GLX_NATIVE_ENTER(env, that, glXCreateGLXPixmap_FUNC);
if (arg1) if ((lparg1 = getXVisualInfoFields(env, arg1, &_arg1)) == NULL) goto fail;
rc = (jint)glXCreateGLXPixmap(arg0, lparg1, arg2);
fail:
if (arg1 && lparg1) setXVisualInfoFields(env, arg1, lparg1);
GLX_NATIVE_EXIT(env, that, glXCreateGLXPixmap_FUNC);
return rc;
}
#endif
#ifndef NO_glXDestroyContext
JNIEXPORT void JNICALL GLX_NATIVE(glXDestroyContext)
(JNIEnv *env, jclass that, jint arg0, jint arg1)
{
GLX_NATIVE_ENTER(env, that, glXDestroyContext_FUNC);
glXDestroyContext(arg0, arg1);
GLX_NATIVE_EXIT(env, that, glXDestroyContext_FUNC);
}
#endif
#ifndef NO_glXDestroyGLXPixmap
JNIEXPORT void JNICALL GLX_NATIVE(glXDestroyGLXPixmap)
(JNIEnv *env, jclass that, jint arg0, jint arg1)
{
GLX_NATIVE_ENTER(env, that, glXDestroyGLXPixmap_FUNC);
glXDestroyGLXPixmap(arg0, arg1);
GLX_NATIVE_EXIT(env, that, glXDestroyGLXPixmap_FUNC);
}
#endif
#ifndef NO_glXGetClientString
JNIEXPORT jint JNICALL GLX_NATIVE(glXGetClientString)
(JNIEnv *env, jclass that, jint arg0, jint arg1)
{
jint rc = 0;
GLX_NATIVE_ENTER(env, that, glXGetClientString_FUNC);
rc = (jint)glXGetClientString(arg0, arg1);
GLX_NATIVE_EXIT(env, that, glXGetClientString_FUNC);
return rc;
}
#endif
#ifndef NO_glXGetConfig
JNIEXPORT jint JNICALL GLX_NATIVE(glXGetConfig)
(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2, jintArray arg3)
{
XVisualInfo _arg1, *lparg1=NULL;
jint *lparg3=NULL;
jint rc = 0;
GLX_NATIVE_ENTER(env, that, glXGetConfig_FUNC);
if (arg1) if ((lparg1 = getXVisualInfoFields(env, arg1, &_arg1)) == NULL) goto fail;
if (arg3) if ((lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL)) == NULL) goto fail;
rc = (jint)glXGetConfig(arg0, lparg1, arg2, lparg3);
fail:
if (arg3 && lparg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);
if (arg1 && lparg1) setXVisualInfoFields(env, arg1, lparg1);
GLX_NATIVE_EXIT(env, that, glXGetConfig_FUNC);
return rc;
}
#endif
#ifndef NO_glXGetCurrentContext
JNIEXPORT jint JNICALL GLX_NATIVE(glXGetCurrentContext)
(JNIEnv *env, jclass that)
{
jint rc = 0;
GLX_NATIVE_ENTER(env, that, glXGetCurrentContext_FUNC);
rc = (jint)glXGetCurrentContext();
GLX_NATIVE_EXIT(env, that, glXGetCurrentContext_FUNC);
return rc;
}
#endif
#ifndef NO_glXGetCurrentDrawable
JNIEXPORT jint JNICALL GLX_NATIVE(glXGetCurrentDrawable)
(JNIEnv *env, jclass that)
{
jint rc = 0;
GLX_NATIVE_ENTER(env, that, glXGetCurrentDrawable_FUNC);
rc = (jint)glXGetCurrentDrawable();
GLX_NATIVE_EXIT(env, that, glXGetCurrentDrawable_FUNC);
return rc;
}
#endif
#ifndef NO_glXIsDirect
JNIEXPORT jboolean JNICALL GLX_NATIVE(glXIsDirect)
(JNIEnv *env, jclass that, jint arg0, jint arg1)
{
jboolean rc = 0;
GLX_NATIVE_ENTER(env, that, glXIsDirect_FUNC);
rc = (jboolean)glXIsDirect(arg0, arg1);
GLX_NATIVE_EXIT(env, that, glXIsDirect_FUNC);
return rc;
}
#endif
#ifndef NO_glXMakeCurrent
JNIEXPORT jboolean JNICALL GLX_NATIVE(glXMakeCurrent)
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)
{
jboolean rc = 0;
GLX_NATIVE_ENTER(env, that, glXMakeCurrent_FUNC);
rc = (jboolean)glXMakeCurrent(arg0, arg1, arg2);
GLX_NATIVE_EXIT(env, that, glXMakeCurrent_FUNC);
return rc;
}
#endif
#ifndef NO_glXQueryExtension
JNIEXPORT jboolean JNICALL GLX_NATIVE(glXQueryExtension)
(JNIEnv *env, jclass that, jint arg0, jintArray arg1, jintArray arg2)
{
jint *lparg1=NULL;
jint *lparg2=NULL;
jboolean rc = 0;
GLX_NATIVE_ENTER(env, that, glXQueryExtension_FUNC);
if (arg1) if ((lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL)) == NULL) goto fail;
if (arg2) if ((lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL)) == NULL) goto fail;
rc = (jboolean)glXQueryExtension(arg0, lparg1, lparg2);
fail:
if (arg2 && lparg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);
if (arg1 && lparg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);
GLX_NATIVE_EXIT(env, that, glXQueryExtension_FUNC);
return rc;
}
#endif
#ifndef NO_glXQueryExtensionsString
JNIEXPORT jint JNICALL GLX_NATIVE(glXQueryExtensionsString)
(JNIEnv *env, jclass that, jint arg0, jint arg1)
{
jint rc = 0;
GLX_NATIVE_ENTER(env, that, glXQueryExtensionsString_FUNC);
rc = (jint)glXQueryExtensionsString(arg0, arg1);
GLX_NATIVE_EXIT(env, that, glXQueryExtensionsString_FUNC);
return rc;
}
#endif
#ifndef NO_glXQueryServerString
JNIEXPORT jint JNICALL GLX_NATIVE(glXQueryServerString)
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)
{
jint rc = 0;
GLX_NATIVE_ENTER(env, that, glXQueryServerString_FUNC);
rc = (jint)glXQueryServerString(arg0, arg1, arg2);
GLX_NATIVE_EXIT(env, that, glXQueryServerString_FUNC);
return rc;
}
#endif
#ifndef NO_glXQueryVersion
JNIEXPORT jboolean JNICALL GLX_NATIVE(glXQueryVersion)
(JNIEnv *env, jclass that, jint arg0, jintArray arg1, jintArray arg2)
{
jint *lparg1=NULL;
jint *lparg2=NULL;
jboolean rc = 0;
GLX_NATIVE_ENTER(env, that, glXQueryVersion_FUNC);
if (arg1) if ((lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL)) == NULL) goto fail;
if (arg2) if ((lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL)) == NULL) goto fail;
rc = (jboolean)glXQueryVersion(arg0, lparg1, lparg2);
fail:
if (arg2 && lparg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);
if (arg1 && lparg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);
GLX_NATIVE_EXIT(env, that, glXQueryVersion_FUNC);
return rc;
}
#endif
#ifndef NO_glXSwapBuffers
JNIEXPORT void JNICALL GLX_NATIVE(glXSwapBuffers)
(JNIEnv *env, jclass that, jint arg0, jint arg1)
{
GLX_NATIVE_ENTER(env, that, glXSwapBuffers_FUNC);
glXSwapBuffers(arg0, arg1);
GLX_NATIVE_EXIT(env, that, glXSwapBuffers_FUNC);
}
#endif
#ifndef NO_glXUseXFont
JNIEXPORT void JNICALL GLX_NATIVE(glXUseXFont)
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)
{
GLX_NATIVE_ENTER(env, that, glXUseXFont_FUNC);
glXUseXFont(arg0, arg1, arg2, arg3);
GLX_NATIVE_EXIT(env, that, glXUseXFont_FUNC);
}
#endif
#ifndef NO_glXWaitGL
JNIEXPORT void JNICALL GLX_NATIVE(glXWaitGL)
(JNIEnv *env, jclass that)
{
GLX_NATIVE_ENTER(env, that, glXWaitGL_FUNC);
glXWaitGL();
GLX_NATIVE_EXIT(env, that, glXWaitGL_FUNC);
}
#endif
#ifndef NO_glXWaitX
JNIEXPORT void JNICALL GLX_NATIVE(glXWaitX)
(JNIEnv *env, jclass that)
{
GLX_NATIVE_ENTER(env, that, glXWaitX_FUNC);
glXWaitX();
GLX_NATIVE_EXIT(env, that, glXWaitX_FUNC);
}
#endif
#ifndef NO_memmove
JNIEXPORT void JNICALL GLX_NATIVE(memmove)
(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)
{
XVisualInfo _arg0, *lparg0=NULL;
GLX_NATIVE_ENTER(env, that, memmove_FUNC);
if (arg0) if ((lparg0 = getXVisualInfoFields(env, arg0, &_arg0)) == NULL) goto fail;
memmove(lparg0, arg1, arg2);
fail:
if (arg0 && lparg0) setXVisualInfoFields(env, arg0, lparg0);
GLX_NATIVE_EXIT(env, that, memmove_FUNC);
}
#endif