Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static u8
- mesh_to_vmem(struct mesh *m, real32 *v, real32 *n, real32 *t, umax *v_idx, umax *n_idx, umax *t_idx, umax i, umax idx) {
- glGenVertexArrays(1, &m->vao);
- glBindVertexArray(m->vao);
- if (v) {
- glGenBuffers(1, &m->vertices);
- glBindBuffer(GL_ARRAY_BUFFER, m->vertices);
- glBufferData(GL_ARRAY_BUFFER, i * 4, v, GL_STATIC_DRAW);
- }
- if (n) {
- glGenBuffers(1, &m->normals);
- glBindBuffer(GL_ARRAY_BUFFER, m->normals);
- glBufferData(GL_ARRAY_BUFFER, i * 3, v, GL_STATIC_DRAW);
- }
- if (t) {
- glGenBuffers(1, &m->tex_coords);
- glBindBuffer(GL_ARRAY_BUFFER, m->tex_coords);
- glBufferData(GL_ARRAY_BUFFER, i * 3, v, GL_STATIC_DRAW);
- }
- if (v_idx) {
- glGenBuffers(1, &m->v_idx);
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m->v_idx);
- glBufferData(GL_ELEMENT_ARRAY_BUFFER, idx, v_idx, GL_STATIC_DRAW);
- }
- if (n_idx) {
- glGenBuffers(1, &m->n_idx);
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m->n_idx);
- glBufferData(GL_ELEMENT_ARRAY_BUFFER, idx, n_idx, GL_STATIC_DRAW);
- }
- if (t_idx) {
- glGenBuffers(1, &m->t_idx);
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m->t_idx);
- glBufferData(GL_ELEMENT_ARRAY_BUFFER, idx, t_idx, GL_STATIC_DRAW);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement