1 /* void glGetActiveAttrib ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */
3 android_glGetActiveAttrib__III_3II_3II_3II_3BI
4 (JNIEnv *_env, jobject _this, jint program, jint index, jint bufsize, jintArray length_ref, jint lengthOffset, jintArray size_ref, jint sizeOffset, jintArray type_ref, jint typeOffset, jbyteArray name_ref, jint nameOffset) {
6 const char * _exceptionType;
7 const char * _exceptionMessage;
8 GLsizei *length_base = (GLsizei *) 0;
10 GLsizei *length = (GLsizei *) 0;
11 GLint *size_base = (GLint *) 0;
13 GLint *size = (GLint *) 0;
14 GLenum *type_base = (GLenum *) 0;
16 GLenum *type = (GLenum *) 0;
17 char *name_base = (char *) 0;
19 char *name = (char *) 0;
23 _exceptionType = "java/lang/IllegalArgumentException";
24 _exceptionMessage = "length == null";
27 if (lengthOffset < 0) {
29 _exceptionType = "java/lang/IllegalArgumentException";
30 _exceptionMessage = "lengthOffset < 0";
33 _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset;
34 length_base = (GLsizei *)
35 _env->GetPrimitiveArrayCritical(length_ref, (jboolean *)0);
36 length = length_base + lengthOffset;
40 _exceptionType = "java/lang/IllegalArgumentException";
41 _exceptionMessage = "size == null";
46 _exceptionType = "java/lang/IllegalArgumentException";
47 _exceptionMessage = "sizeOffset < 0";
50 _sizeRemaining = _env->GetArrayLength(size_ref) - sizeOffset;
52 _env->GetPrimitiveArrayCritical(size_ref, (jboolean *)0);
53 size = size_base + sizeOffset;
57 _exceptionType = "java/lang/IllegalArgumentException";
58 _exceptionMessage = "type == null";
63 _exceptionType = "java/lang/IllegalArgumentException";
64 _exceptionMessage = "typeOffset < 0";
67 _typeRemaining = _env->GetArrayLength(type_ref) - typeOffset;
68 type_base = (GLenum *)
69 _env->GetPrimitiveArrayCritical(type_ref, (jboolean *)0);
70 type = type_base + typeOffset;
74 _exceptionType = "java/lang/IllegalArgumentException";
75 _exceptionMessage = "name == null";
80 _exceptionType = "java/lang/IllegalArgumentException";
81 _exceptionMessage = "nameOffset < 0";
84 _nameRemaining = _env->GetArrayLength(name_ref) - nameOffset;
86 _env->GetPrimitiveArrayCritical(name_ref, (jboolean *)0);
87 name = name_base + nameOffset;
101 _env->ReleasePrimitiveArrayCritical(name_ref, name_base,
102 _exception ? JNI_ABORT: 0);
105 _env->ReleasePrimitiveArrayCritical(type_ref, type_base,
106 _exception ? JNI_ABORT: 0);
109 _env->ReleasePrimitiveArrayCritical(size_ref, size_base,
110 _exception ? JNI_ABORT: 0);
113 _env->ReleasePrimitiveArrayCritical(length_ref, length_base,
114 _exception ? JNI_ABORT: 0);
117 jniThrowException(_env, _exceptionType, _exceptionMessage);
121 /* void glGetActiveAttrib ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */
123 android_glGetActiveAttrib__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2B
124 (JNIEnv *_env, jobject _this, jint program, jint index, jint bufsize, jobject length_buf, jobject size_buf, jobject type_buf, jbyte name) {
125 jarray _lengthArray = (jarray) 0;
126 jint _lengthBufferOffset = (jint) 0;
127 jarray _sizeArray = (jarray) 0;
128 jint _sizeBufferOffset = (jint) 0;
129 jarray _typeArray = (jarray) 0;
130 jint _typeBufferOffset = (jint) 0;
131 jint _lengthRemaining;
132 GLsizei *length = (GLsizei *) 0;
134 GLint *size = (GLint *) 0;
136 GLenum *type = (GLenum *) 0;
138 length = (GLsizei *)getPointer(_env, length_buf, &_lengthArray, &_lengthRemaining, &_lengthBufferOffset);
139 size = (GLint *)getPointer(_env, size_buf, &_sizeArray, &_sizeRemaining, &_sizeBufferOffset);
140 type = (GLenum *)getPointer(_env, type_buf, &_typeArray, &_typeRemaining, &_typeBufferOffset);
141 if (length == NULL) {
142 char * _lengthBase = (char *)_env->GetPrimitiveArrayCritical(_lengthArray, (jboolean *) 0);
143 length = (GLsizei *) (_lengthBase + _lengthBufferOffset);
146 char * _sizeBase = (char *)_env->GetPrimitiveArrayCritical(_sizeArray, (jboolean *) 0);
147 size = (GLint *) (_sizeBase + _sizeBufferOffset);
150 char * _typeBase = (char *)_env->GetPrimitiveArrayCritical(_typeArray, (jboolean *) 0);
151 type = (GLenum *) (_typeBase + _typeBufferOffset);
160 reinterpret_cast<char *>(name)
163 releasePointer(_env, _typeArray, type, JNI_TRUE);
166 releasePointer(_env, _sizeArray, size, JNI_TRUE);
169 releasePointer(_env, _lengthArray, length, JNI_TRUE);
173 /* void glGetActiveAttrib ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */
175 android_glGetActiveAttrib1
176 (JNIEnv *_env, jobject _this, jint program, jint index, jintArray size_ref, jint sizeOffset, jintArray type_ref, jint typeOffset) {
178 const char * _exceptionType;
179 const char * _exceptionMessage;
180 GLint *size_base = (GLint *) 0;
182 GLint *size = (GLint *) 0;
183 GLenum *type_base = (GLenum *) 0;
185 GLenum *type = (GLenum *) 0;
190 glGetProgramiv((GLuint)program, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, &len);
192 return _env->NewStringUTF("");
194 char* buf = (char*) malloc(len);
197 jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory");
202 _exceptionType = "java/lang/IllegalArgumentException";
203 _exceptionMessage = "size == null";
206 if (sizeOffset < 0) {
208 _exceptionType = "java/lang/IllegalArgumentException";
209 _exceptionMessage = "sizeOffset < 0";
212 _sizeRemaining = _env->GetArrayLength(size_ref) - sizeOffset;
213 size_base = (GLint *)
214 _env->GetPrimitiveArrayCritical(size_ref, (jboolean *)0);
215 size = size_base + sizeOffset;
219 _exceptionType = "java/lang/IllegalArgumentException";
220 _exceptionMessage = "type == null";
223 if (typeOffset < 0) {
225 _exceptionType = "java/lang/IllegalArgumentException";
226 _exceptionMessage = "typeOffset < 0";
229 _typeRemaining = _env->GetArrayLength(type_ref) - typeOffset;
230 type_base = (GLenum *)
231 _env->GetPrimitiveArrayCritical(type_ref, (jboolean *)0);
232 type = type_base + typeOffset;
245 _env->ReleasePrimitiveArrayCritical(type_ref, type_base,
246 _exception ? JNI_ABORT: 0);
249 _env->ReleasePrimitiveArrayCritical(size_ref, size_base,
250 _exception ? JNI_ABORT: 0);
252 if (_exception != 1) {
253 result = _env->NewStringUTF(buf);
259 jniThrowException(_env, _exceptionType, _exceptionMessage);
262 result = _env->NewStringUTF("");
268 /* void glGetActiveAttrib ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */
270 android_glGetActiveAttrib2
271 (JNIEnv *_env, jobject _this, jint program, jint index, jobject size_buf, jobject type_buf) {
272 jarray _sizeArray = (jarray) 0;
273 jint _sizeBufferOffset = (jint) 0;
274 jarray _typeArray = (jarray) 0;
275 jint _typeBufferOffset = (jint) 0;
276 jint _lengthRemaining;
277 GLsizei *length = (GLsizei *) 0;
279 GLint *size = (GLint *) 0;
281 GLenum *type = (GLenum *) 0;
286 glGetProgramiv((GLuint)program, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, &len);
288 return _env->NewStringUTF("");
290 char* buf = (char*) malloc(len);
293 jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory");
297 size = (GLint *)getPointer(_env, size_buf, &_sizeArray, &_sizeRemaining, &_sizeBufferOffset);
298 type = (GLenum *)getPointer(_env, type_buf, &_typeArray, &_typeRemaining, &_typeBufferOffset);
300 char * _sizeBase = (char *)_env->GetPrimitiveArrayCritical(_sizeArray, (jboolean *) 0);
301 size = (GLint *) (_sizeBase + _sizeBufferOffset);
304 char * _typeBase = (char *)_env->GetPrimitiveArrayCritical(_typeArray, (jboolean *) 0);
305 type = (GLenum *) (_typeBase + _typeBufferOffset);
318 releasePointer(_env, _typeArray, type, JNI_TRUE);
321 releasePointer(_env, _sizeArray, size, JNI_TRUE);
323 result = _env->NewStringUTF(buf);