Advertisement
Guest User

Untitled

a guest
Nov 25th, 2015
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. static u8
  2. 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) {
  3. glGenVertexArrays(1, &m->vao);
  4. glBindVertexArray(m->vao);
  5. if (v) {
  6. glGenBuffers(1, &m->vertices);
  7. glBindBuffer(GL_ARRAY_BUFFER, m->vertices);
  8. glBufferData(GL_ARRAY_BUFFER, i * 4, v, GL_STATIC_DRAW);
  9. }
  10. if (n) {
  11. glGenBuffers(1, &m->normals);
  12. glBindBuffer(GL_ARRAY_BUFFER, m->normals);
  13. glBufferData(GL_ARRAY_BUFFER, i * 3, v, GL_STATIC_DRAW);
  14. }
  15. if (t) {
  16. glGenBuffers(1, &m->tex_coords);
  17. glBindBuffer(GL_ARRAY_BUFFER, m->tex_coords);
  18. glBufferData(GL_ARRAY_BUFFER, i * 3, v, GL_STATIC_DRAW);
  19. }
  20. if (v_idx) {
  21. glGenBuffers(1, &m->v_idx);
  22. glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m->v_idx);
  23. glBufferData(GL_ELEMENT_ARRAY_BUFFER, idx, v_idx, GL_STATIC_DRAW);
  24. }
  25. if (n_idx) {
  26. glGenBuffers(1, &m->n_idx);
  27. glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m->n_idx);
  28. glBufferData(GL_ELEMENT_ARRAY_BUFFER, idx, n_idx, GL_STATIC_DRAW);
  29. }
  30. if (t_idx) {
  31. glGenBuffers(1, &m->t_idx);
  32. glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m->t_idx);
  33. glBufferData(GL_ELEMENT_ARRAY_BUFFER, idx, t_idx, GL_STATIC_DRAW);
  34. }
  35.  
  36. return 0;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement