Advertisement
Guest User

Untitled

a guest
Aug 21st, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. m_vertices.insert(m_vertices.end(), begin(vertices), end(vertices));
  2. m_texCoord.insert(m_texCoord.end(), begin(texCoord), end(texCoord));
  3.  
  4. unsigned long partNumberMultipliedBy4 = m_partNumber * 4;
  5. m_indices.insert(m_indices.end(), {0 + partNumberMultipliedBy4, 1 + partNumberMultipliedBy4,
  6. 2 + partNumberMultipliedBy4, 0 + partNumberMultipliedBy4,
  7. 3 + partNumberMultipliedBy4, 2 + partNumberMultipliedBy4});
  8.  
  9. unsigned long verticesSize = m_vertices.size(), texCoordSize = m_texCoord.size();
  10. m_vertice = verticesSize * sizeof(glm::vec3);
  11. m_tex = texCoordSize * sizeof(glm::vec2);
  12. m_indice = m_indices.size();
  13.  
  14. //Update VBO
  15. glBindBuffer(GL_ARRAY_BUFFER, m_VBO);
  16. glBufferData(GL_ARRAY_BUFFER, m_vertice + m_tex, NULL, GL_DYNAMIC_DRAW);
  17. void *adresseVBO = glMapBuffer(GL_ARRAY_BUFFER, GL_WRITE_ONLY); // We get VBO adress
  18. if(adresseVBO == NULL)
  19. {
  20. print("VBO recup error");
  21.  
  22. glBindBuffer(GL_ARRAY_BUFFER, 0);
  23. return;
  24. }
  25. else
  26. {
  27. memcpy((char*)adresseVBO, &m_vertices[0], m_vertice); //Data update
  28. memcpy((char*)adresseVBO + m_vertice, &m_texCoord[0], m_tex);
  29.  
  30. glUnmapBuffer(GL_ARRAY_BUFFER);
  31. adresseVBO = 0;
  32. glBindBuffer(GL_ARRAY_BUFFER, 0);
  33. }
  34.  
  35.  
  36. //Update IBO
  37. glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_IBO);
  38. glBufferData(GL_ELEMENT_ARRAY_BUFFER, m_indice * sizeof(unsigned int), NULL, GL_DYNAMIC_DRAW);
  39. void *adresseIBO = glMapBuffer(GL_ELEMENT_ARRAY_BUFFER, GL_WRITE_ONLY); // We get IBO adress
  40. if(adresseIBO == NULL)
  41. {
  42. print("IBO recup error");
  43.  
  44. glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
  45. return;
  46. }
  47. else
  48. {
  49. memcpy((char*)adresseIBO, &m_indices[0], m_indice * sizeof(unsigned int)); //Data update
  50.  
  51. glUnmapBuffer(GL_ELEMENT_ARRAY_BUFFER);
  52. adresseVBO = 0;
  53. glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement