Vao.cpp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #include "Vao.h"
  2. #include "Vbo.h"
  3. //======================================================================================================================
  4. // attachArrayBufferVbo =
  5. //======================================================================================================================
  6. void Vao::attachArrayBufferVbo(const Vbo& vbo, const ShaderProg::AttribVar& attribVar, GLint size, GLenum type,
  7. GLboolean normalized, GLsizei stride, const GLvoid* pointer)
  8. {
  9. if(vbo.getBufferTarget() != GL_ARRAY_BUFFER)
  10. {
  11. throw EXCEPTION("Only GL_ARRAY_BUFFER is accepted");
  12. }
  13. bind();
  14. vbo.bind();
  15. glVertexAttribPointer(attribVar.getLoc(), size, type, normalized, stride, pointer);
  16. glEnableVertexAttribArray(attribVar.getLoc());
  17. unbind();
  18. ON_GL_FAIL_THROW_EXCEPTION();
  19. }
  20. //======================================================================================================================
  21. // attachElementArrayBufferVbo =
  22. //======================================================================================================================
  23. void Vao::attachElementArrayBufferVbo(const Vbo& vbo)
  24. {
  25. if(vbo.getBufferTarget() != GL_ELEMENT_ARRAY_BUFFER)
  26. {
  27. throw EXCEPTION("Only GL_ELEMENT_ARRAY_BUFFER is accepted");
  28. }
  29. bind();
  30. vbo.bind();
  31. unbind();
  32. ON_GL_FAIL_THROW_EXCEPTION();
  33. }