enum piglit_result test_sanity(void *null) { GLuint pbs[1]; GLuint pb_binding; glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING_ARB, (GLint *) & pb_binding); if (pb_binding != 0) { REPORT_FAILURE("Failed to bind unpack pixel buffer object"); return PIGLIT_FAIL; } glGetIntegerv(GL_PIXEL_PACK_BUFFER_BINDING_ARB, (GLint *) & pb_binding); if (pb_binding != 0) { REPORT_FAILURE("Failed to bind pack pixel buffer object"); return PIGLIT_FAIL; } glGenBuffersARB(1, pbs); if (glIsBufferARB(pbs[0]) != GL_FALSE) { REPORT_FAILURE("glIsBufferARB failed"); return PIGLIT_FAIL; } glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, pbs[0]); glGetIntegerv(GL_PIXEL_UNPACK_BUFFER_BINDING_ARB, (GLint *) & pb_binding); glBindBufferARB(GL_PIXEL_UNPACK_BUFFER_ARB, 0); if (pb_binding != pbs[0]) { REPORT_FAILURE("Failed to bind unpack pixel buffer object"); return PIGLIT_FAIL; } glBindBufferARB(GL_PIXEL_PACK_BUFFER_ARB, pbs[0]); glGetIntegerv(GL_PIXEL_PACK_BUFFER_BINDING_ARB, (GLint *) & pb_binding); glBindBufferARB(GL_PIXEL_PACK_BUFFER_ARB, 0); if (pb_binding != pbs[0]) { REPORT_FAILURE("Failed to bind unpack pixel buffer object"); return PIGLIT_FAIL; } glDeleteBuffersARB(1, pbs); if (glIsBufferARB(pbs[0]) == GL_TRUE) { REPORT_FAILURE("glIsBufferARB failed"); return PIGLIT_FAIL; } return PIGLIT_PASS; }
// Zrusi pole void mesh_vertex_array_zrus_arb(GAME_MESH_OLD * p_mesh) { VERTEX_ARRAYS *p_varray = &p_mesh->varray; if (glIsBufferARB(p_varray->ati_handle)) { glDeleteBuffersARB(1, (GLuint *) & p_varray->ati_handle); p_varray->ati_handle = 0; } if (glIsBufferARB(p_varray->arb_handle_indicie)) { glDeleteBuffersARB(1, (GLuint *) & p_varray->arb_handle_indicie); p_varray->arb_handle_indicie = 0; } }
void fge_mesh_render(struct fge_mesh mesh, struct fge_glsl *prog, void (*prog_exec)(struct fge_glsl *prog, struct fge_mesh *mesh)) { int32 stride; stride = sizeof(struct fge_vertex); if ((!glIsBufferARB(mesh.vertex_buffer)) || (!glIsBufferARB(mesh.index_buffer))){ return; } glPushAttrib(GL_ALL_ATTRIB_BITS); glPushClientAttrib(GL_CLIENT_ALL_ATTRIB_BITS); glEnableClientState(GL_VERTEX_ARRAY); glBindBufferARB(GL_ARRAY_BUFFER_ARB, mesh.vertex_buffer); glVertexPointer(3, GL_FLOAT, stride, (void *)0); glEnableClientState(GL_NORMAL_ARRAY); glNormalPointer(GL_FLOAT, stride, (void*)off_sets[FGE_OFFSET_N]); glClientActiveTextureARB(GL_TEXTURE0_ARB); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glTexCoordPointer(2, GL_FLOAT, stride, (void*)off_sets[FGE_OFFSET_TEX]); glClientActiveTextureARB(GL_TEXTURE1_ARB); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glTexCoordPointer(3, GL_FLOAT, stride, (void*)off_sets[FGE_OFFSET_T]); glClientActiveTextureARB(GL_TEXTURE2_ARB); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glTexCoordPointer(3, GL_FLOAT, stride, (void*)off_sets[FGE_OFFSET_B]); if (prog_exec != NULL){ prog_exec(prog, &mesh); } glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, mesh.index_buffer); glDrawElements(GL_TRIANGLES, 3 * mesh.count_faces, GL_UNSIGNED_INT, 0); glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0); glPopAttrib(); glPopClientAttrib(); }
void initVBO() { //g_fVBOSupported = IsExtensionSupported( "GL_ARB_vertex_buffer_object" ); if(GLEE_ARB_vertex_buffer_object) { g_fVBOSupported = 1; int i; for (i = 0; i < LAYERS; i++) { glGenBuffersARB(1, &vboId_vertex[i]); if (glIsBufferARB(vboId_vertex[i])) { } else { fprintf(stderr, "failed to create buffer, err: %i\n", glGetError()); } glGenBuffersARB(1, &vboId_texture[i]); if (glIsBufferARB(vboId_texture[i])) { } else { fprintf(stderr, "failed to create buffer, err: %i\n", glGetError()); } glGenBuffersARB(1, &vboId_color[i]); if (glIsBufferARB(vboId_vertex[i])) { } else { fprintf(stderr, "failed to create buffer, err: %i\n", glGetError()); } } } else { fprintf(stderr, "Warning, VBOs not supported!\n"); } }
// Zruseni void poly_vertex_array_zrus_arb(EDIT_MESH_POLY * p_poly) { VERTEX_ARRAYS *p_va = &p_poly->varray; if (glIsBufferARB(p_va->ati_handle)) { glDeleteBuffersARB(1, (GLuint *) & p_va->ati_handle); p_va->ati_handle = 0; } }
void RendererGL::deleteBuffers() { if(!isExtSupported(XGL_ARB_vertex_buffer_object)) return; for (unsigned int id = 1; id < m_maxBufferID; ++id) { if( glIsBufferARB(id) ) glDeleteBuffersARB( 1, &id ); } }
static void fini_object(int i) { struct object *o = get_object(i); if (o->state == 1) { /* Free the vertex buffer object. */ if (GL_has_vertex_buffer_object) if (glIsBufferARB(o->buffer)) glDeleteBuffersARB(1, &o->buffer); o->buffer = 0; o->state = 0; } }
PixelBuffer::PixelBuffer ( std::string name ) { name_ = name; // TODO Is the context created ? Celer::OpenGL::OpenGLContext::instance( )->glewInitialize( name_ ); if ( !glewIsSupported ( "GL_ARB_vertex_buffer_object" ) ) { std::cerr << "ERROR: Support for GL_VERSION_2_0 GL_ARB_pixel_buffer_object OpenGL extensions missing." << std::endl; } else { glGenBuffersARB ( 1 , &id_ ); ok_ = ( glIsBufferARB ( id_ ) == GL_TRUE ); target_ = 0; bound_ = false; } }
static void fini_galaxy(int i) { struct galaxy *g = get_galaxy(i); if (g->state == 1) { /* Free the star texture. */ if (glIsTexture(g->texture)) glDeleteTextures(1, &g->texture); /* Free the vertex buffer object. */ if (GL_has_vertex_buffer_object) if (glIsBufferARB(g->buffer)) glDeleteBuffersARB(1, &g->buffer); g->texture = 0; g->buffer = 0; g->state = 0; } }
newin::Mesh::~Mesh() { if(glIsBufferARB(_vboID)) { glDeleteBuffersARB(1, &_vboID); } delete _verts; }
JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_ARBBufferObject_nglIsBufferARB(JNIEnv *env, jclass clazz, jint buffer, jlong function_pointer) { glIsBufferARBPROC glIsBufferARB = (glIsBufferARBPROC)((intptr_t)function_pointer); GLboolean __result = glIsBufferARB(buffer); return __result; }