// Points/Wireframe/Flat/Gouraud OpenGL drawing in a display list void Scene_textured_polyhedron_item::draw(CGAL::Three::Viewer_interface* viewer) const { if(!are_buffers_filled) { compute_normals_and_vertices(); initialize_buffers(viewer); } vaos[Facets]->bind(); viewer->glActiveTexture(GL_TEXTURE0); viewer->glBindTexture(GL_TEXTURE_2D, textureId); attrib_buffers(viewer, PROGRAM_WITH_TEXTURE); program=getShaderProgram(PROGRAM_WITH_TEXTURE); program->bind(); viewer->glDrawArrays(GL_TRIANGLES, 0, static_cast<GLsizei>(nb_facets/4)); //Clean-up program->release(); vaos[Facets]->release(); }
void Scene_textured_polyhedron_item::changed() { compute_normals_and_vertices(); are_buffers_filled = false;}