src/mesh.c

changeset 89
e1f682a8a145
parent 82
4e1e698f4b0d
equal deleted inserted replaced
88:6234b7ea48f3 89:e1f682a8a145
27 27
28 #include "ascension/mesh.h" 28 #include "ascension/mesh.h"
29 #include "ascension/error.h" 29 #include "ascension/error.h"
30 30
31 #include <GL/glew.h> 31 #include <GL/glew.h>
32 #include <assert.h>
32 33
33 void asc_mesh_allocate_buffers(AscMesh *mesh, unsigned count) { 34 void asc_mesh_allocate_buffers(AscMesh *mesh, unsigned count) {
34 asc_dprintf("Allocate mesh buffers for %u meshes.", count); 35 asc_dprintf("Allocate mesh buffers for %u meshes.", count);
35 GLuint buffers[count]; 36 GLuint buffers[count];
36 GLuint arrays[count]; 37 GLuint arrays[count];
43 asc_error_catch_all_gl(); 44 asc_error_catch_all_gl();
44 } 45 }
45 46
46 void asc_mesh_free_buffers(AscMesh *mesh, unsigned count) { 47 void asc_mesh_free_buffers(AscMesh *mesh, unsigned count) {
47 asc_dprintf("Free mesh buffers for %u meshes.", count); 48 asc_dprintf("Free mesh buffers for %u meshes.", count);
48 if (count > 32) {
49 asc_error("Trying to free more than 32 mesh buffers at once.");
50 count = 32;
51 }
52 GLuint buffers[count]; 49 GLuint buffers[count];
53 GLuint arrays[count]; 50 GLuint arrays[count];
54 51
55 for (unsigned i = 0; i < count; i++) { 52 for (unsigned i = 0; i < count; i++) {
56 buffers[i] = mesh[i].vbo; 53 buffers[i] = mesh[i].vbo;

mercurial