コード例 #1
0
/** Check which datatypes are accepted by glVertexAttribIPointer() */
static GLboolean
test_attrib_array(void)
{
   static const GLenum goodTypes[] = {
      GL_BYTE, GL_UNSIGNED_BYTE,
      GL_SHORT, GL_UNSIGNED_SHORT,
      GL_INT, GL_UNSIGNED_INT
   };
   static const GLenum badTypes[] = {
      GL_FLOAT, GL_DOUBLE, GL_HALF_FLOAT_ARB, GL_BGRA
   };
   GLint i;
   GLubyte data[100];
   GLuint index = 1;
   GLint size = 4;
   GLsizei stride = 0;
   GLenum err;

   /* clear any prev errors */
   while (glGetError() != GL_NO_ERROR)
      ;

   /* These should not generate a GL error */
   for (i = 0; i < ARRAY_SIZE(goodTypes); i++) {
      glVertexAttribIPointerEXT(index, size, goodTypes[i], stride, data);
      err = glGetError();
      if (err != GL_NO_ERROR) {
         fprintf(stderr,
                 "%s: glVertexAttribIPointer(type=0x%x) generated error 0x%x\n",
                 TestName, goodTypes[i], err);
         return GL_FALSE;
      }
   }

   for (i = 0; i < ARRAY_SIZE(badTypes); i++) {
      glVertexAttribIPointerEXT(index, size, badTypes[i], stride, data);
      err = glGetError();
      if (err != GL_INVALID_ENUM) {
         fprintf(stderr,
                 "%s: glVertexAttribIPointer(type=0x%x) failed to generate "
                 "GL_INVALID_ENUM\n",
                 TestName, badTypes[i]);
         return GL_FALSE;
      }
   }

   return GL_TRUE;
}
コード例 #2
0
 inline void VL_glVertexAttribIPointer(GLuint name, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer)
 {
   if(glVertexAttribIPointer)
     glVertexAttribIPointer(name, size, type, stride, pointer);
   else
   if (glVertexAttribIPointerEXT)
     glVertexAttribIPointerEXT(name, size, type, stride, pointer);
   else
     VL_UNSUPPORTED_FUNC();
 }
コード例 #3
0
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_EXTGpuShader4_nglVertexAttribIPointerEXTBO(JNIEnv *env, jclass clazz, jint index, jint size, jint type, jint stride, jlong buffer_buffer_offset, jlong function_pointer) {
	const GLvoid *buffer_address = ((const GLvoid *)offsetToPointer(buffer_buffer_offset));
	glVertexAttribIPointerEXTPROC glVertexAttribIPointerEXT = (glVertexAttribIPointerEXTPROC)((intptr_t)function_pointer);
	glVertexAttribIPointerEXT(index, size, type, stride, buffer_address);
}
コード例 #4
0
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_EXTGPUShader4_nglVertexAttribIPointerEXT__IIIIJ(JNIEnv *__env, jclass clazz, jint index, jint size, jint type, jint stride, jlong pointerAddress) {
    glVertexAttribIPointerEXTPROC glVertexAttribIPointerEXT = (glVertexAttribIPointerEXTPROC)tlsGetFunction(1740);
    intptr_t pointer = (intptr_t)pointerAddress;
    UNUSED_PARAM(clazz)
    glVertexAttribIPointerEXT(index, size, type, stride, pointer);
}
コード例 #5
0
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_EXTGpuShader4_nglVertexAttribIPointerEXT(JNIEnv *env, jclass clazz, jint index, jint size, jint type, jint stride, jobject buffer, jint buffer_position, jlong function_pointer) {
	const GLvoid *buffer_address = ((const GLvoid *)(((char *)(*env)->GetDirectBufferAddress(env, buffer)) + buffer_position));
	glVertexAttribIPointerEXTPROC glVertexAttribIPointerEXT = (glVertexAttribIPointerEXTPROC)((intptr_t)function_pointer);
	glVertexAttribIPointerEXT(index, size, type, stride, buffer_address);
}