blob: 4fca4eb8eb59749ede67e74066012e0d245442cb [file] [log] [blame]
/*******************************************************************************
* 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 "swt.h"
#include "structs.h"
#define XGL_NATIVE(func) Java_org_eclipse_swt_opengl_internal_motif_XGL_##func
JNIEXPORT jint JNICALL XGL_NATIVE(glXChooseVisual)
(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2)
{
jint *lparg2=NULL;
jint rc;
DEBUG_CALL("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);
return rc;
}
JNIEXPORT void JNICALL XGL_NATIVE(glXCopyContext)
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)
{
DEBUG_CALL("glXCopyContext\n")
glXCopyContext((Display *)arg0, (GLXContext)arg1, (GLXContext)arg2, arg3);
}
JNIEXPORT jint JNICALL XGL_NATIVE(glXCreateContext)
(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2, jboolean arg3)
{
XVisualInfo _arg1, *lparg1=NULL;
jint rc;
DEBUG_CALL("glXCreateContext\n")
if (arg1) lparg1 = getXVisualInfoFields(env, arg1, &_arg1);
rc = (jint)glXCreateContext((Display *)arg0, lparg1, (GLXContext)arg2, arg3);
if (arg1) setXVisualInfoFields(env, arg1, lparg1);
return rc;
}
JNIEXPORT jint JNICALL XGL_NATIVE(glXCreateGLXPixmap)
(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2)
{
XVisualInfo _arg1, *lparg1=NULL;
jint rc;
DEBUG_CALL("glXCreateGLXPixmap\n")
if (arg1) lparg1 = getXVisualInfoFields(env, arg1, &_arg1);
rc = (jint)glXCreateGLXPixmap((Display *)arg0, lparg1, arg2);
if (arg1) setXVisualInfoFields(env, arg1, lparg1);
return rc;
}
JNIEXPORT void JNICALL XGL_NATIVE(glXDestroyContext)
(JNIEnv *env, jclass that, jint arg0, jint arg1)
{
DEBUG_CALL("glXDestroyContext\n")
glXDestroyContext((Display *)arg0, (GLXContext)arg1);
}
JNIEXPORT void JNICALL XGL_NATIVE(glXDestroyGLXPixmap)
(JNIEnv *env, jclass that, jint arg0, jint arg1)
{
DEBUG_CALL("glXDestroyGLXPixmap\n")
glXDestroyGLXPixmap((Display *)arg0, arg1);
}
JNIEXPORT jint JNICALL XGL_NATIVE(glXGetClientString)
(JNIEnv *env, jclass that, jint arg0, jint arg1)
{
DEBUG_CALL("glXGetClientString\n")
return (jint)glXGetClientString((Display *)arg0, arg1);
}
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;
DEBUG_CALL("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);
return rc;
}
JNIEXPORT jint JNICALL XGL_NATIVE(glXGetCurrentContext)
(JNIEnv *env, jclass that)
{
DEBUG_CALL("glXGetCurrentContext\n")
return (jint)glXGetCurrentContext();
}
JNIEXPORT jint JNICALL XGL_NATIVE(glXGetCurrentDrawable)
(JNIEnv *env, jclass that)
{
DEBUG_CALL("glXGetCurrentDrawable\n")
return (jint)glXGetCurrentDrawable();
}
JNIEXPORT jboolean JNICALL XGL_NATIVE(glXIsDirect)
(JNIEnv *env, jclass that, jint arg0, jint arg1)
{
DEBUG_CALL("glXIsDirect\n")
return (jboolean)glXIsDirect((Display *)arg0, (GLXContext)arg1);
}
JNIEXPORT jboolean JNICALL XGL_NATIVE(glXMakeCurrent)
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)
{
DEBUG_CALL("glXMakeCurrent\n")
return (jboolean)glXMakeCurrent((Display *)arg0, (GLXDrawable)arg1, (GLXContext)arg2);
}
JNIEXPORT jboolean JNICALL XGL_NATIVE(glXQueryExtension)
(JNIEnv *env, jclass that, jint arg0, jintArray arg1, jintArray arg2)
{
jint *lparg1=NULL;
jint *lparg2=NULL;
jboolean rc;
DEBUG_CALL("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);
return rc;
}
JNIEXPORT jint JNICALL XGL_NATIVE(glXQueryExtensionsString)
(JNIEnv *env, jclass that, jint arg0, jint arg1)
{
DEBUG_CALL("glXQueryExtensionsString\n")
return (jint)glXQueryExtensionsString((Display *)arg0, arg1);
}
JNIEXPORT jint JNICALL XGL_NATIVE(glXQueryServerString)
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)
{
DEBUG_CALL("glXQueryServerString\n")
return (jint)glXQueryServerString((Display *)arg0, arg1, arg2);
}
JNIEXPORT jboolean JNICALL XGL_NATIVE(glXQueryVersion)
(JNIEnv *env, jclass that, jint arg0, jintArray arg1, jintArray arg2)
{
jint *lparg1=NULL;
jint *lparg2=NULL;
jboolean rc;
DEBUG_CALL("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);
return rc;
}
JNIEXPORT void JNICALL XGL_NATIVE(glXSwapBuffers)
(JNIEnv *env, jclass that, jint arg0, jint arg1)
{
DEBUG_CALL("glXSwapBuffers\n")
glXSwapBuffers((Display *)arg0, (GLXDrawable)arg1);
}
JNIEXPORT void JNICALL XGL_NATIVE(glXUseXFont)
(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)
{
DEBUG_CALL("glXUseXFont\n")
glXUseXFont(arg0, arg1, arg2, arg3);
}
JNIEXPORT void JNICALL XGL_NATIVE(glXWaitGL)
(JNIEnv *env, jclass that)
{
DEBUG_CALL("glXWaitGL\n")
glXWaitGL();
}
JNIEXPORT void JNICALL XGL_NATIVE(glXWaitX)
(JNIEnv *env, jclass that)
{
DEBUG_CALL("glXWaitX\n")
glXWaitX();
}
JNIEXPORT void JNICALL XGL_NATIVE(memmove__Lorg_eclipse_swt_opengl_internal_motif_XVisualInfo_2II)
(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)
{
XVisualInfo _arg0, *lparg0=NULL;
DEBUG_CALL("memmove__Lorg_eclipse_swt_opengl_internal_motif_XVisualInfo_2II\n")
if (arg0) lparg0 = &_arg0;
memmove((void *)lparg0, (const void *)arg1, (size_t)arg2);
if (arg0) setXVisualInfoFields(env, arg0, lparg0);
}