1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
/** THIS IS A MANUAL CODED PART
gl-manualCodedImplJNI.java
*/
static const char _gl_n_a_string[] = "GL-String not avaiable !";
JNIEXPORT jstring JNICALL
Java_gl4java_GLFunc14JauJNI_glGetString ( JNIEnv *env, jobject obj,
jint name )
{
const char * tmpString=0;
if ( disp__glGetString == NULL )
return (*env)->NewStringUTF(env, _gl_n_a_string);
tmpString = disp__glGetString ( /* jint */ name);
if(tmpString==NULL)
tmpString=_gl_n_a_string;
return (*env)->NewStringUTF(env, tmpString);
}
static const char * _gl_lib_vendor_="Jausoft - Sven Goethel Software Development";
static const char * _gl_lib_version_="2.8.0.8";
JNIEXPORT jstring JNICALL
Java_gl4java_GLFunc14JauJNI_getNativeVendor ( JNIEnv *env, jobject obj )
{
return (*env)->NewStringUTF(env, _gl_lib_vendor_);
}
JNIEXPORT jstring JNICALL
Java_gl4java_GLFunc14JauJNI_getNativeVersion ( JNIEnv *env, jobject obj )
{
return (*env)->NewStringUTF(env, _gl_lib_version_);
}
//----------------------------------------------------------------------
// Support for NVidia routines
//
#include "ptrtypes.h"
#ifdef _X11_
#include <GL/glx.h>
#include <dlfcn.h>
#include "glxtool.h"
#include <unistd.h>
#endif
#ifdef _WIN32_
#include "wgltool.h"
#endif
#define GET_GL_PROCADDRESS(a) getGLProcAddressHelper (NULL, NULL, (a), NULL, 1, 0);
JNIEXPORT jlong JNICALL
Java_gl4java_GLFunc14JauJNI_glAllocateMemoryNV0(JNIEnv* env, jobject unused,
jint size,
jfloat readFreq,
jfloat writeFreq,
jfloat priority)
{
void* (CALLBACK *disp__glAllocateMemoryNV)(int, float, float, float) =
#ifdef _WIN32_
disp__wglAllocateMemoryNV;
#elif defined(_X11_)
disp__glXAllocateMemoryNV;
#else
NULL;
#endif
if (disp__glAllocateMemoryNV == NULL) return 0;
return ((uintptr_t) disp__glAllocateMemoryNV(size, readFreq, writeFreq, priority));
}
JNIEXPORT void JNICALL
Java_gl4java_GLFunc14JauJNI_glFreeMemoryNV0(JNIEnv* env, jobject unused, jlong address)
{
void (CALLBACK *disp__glFreeMemoryNV)(void*) =
#if (defined(_WIN32_))
disp__wglFreeMemoryNV;
#elif defined(_X11_)
disp__glXFreeMemoryNV;
#else
NULL;
#endif
if (disp__glFreeMemoryNV == NULL) return;
disp__glFreeMemoryNV((void*) ((uintptr_t) address));
}
JNIEXPORT jobject JNICALL
Java_gl4java_GLFunc14JauJNI_newDirectByteBuffer(JNIEnv* env, jobject unused, jlong addr, jint capacity)
{
return (*env)->NewDirectByteBuffer(env, (void *) ((uintptr_t) addr), capacity);
}
|