GL.cpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include <GL/glew.h>
  2. #include <iostream>
  3. #include "rendering/GL.h"
  4. bool GL::checkAndPrintError(const char* message) {
  5. GLenum error = glGetError();
  6. switch(error) {
  7. case GL_NO_ERROR:
  8. return false;
  9. case GL_INVALID_ENUM:
  10. std::cout << message << ": an unacceptable value is specified for an enumerated argument.\n";
  11. break;
  12. case GL_INVALID_VALUE:
  13. std::cout << message << ": a numeric argument is out of range.\n";
  14. break;
  15. case GL_INVALID_OPERATION:
  16. std::cout << message << ": the specified operation is not allowed in the current state.\n";
  17. break;
  18. case GL_INVALID_FRAMEBUFFER_OPERATION:
  19. std::cout << message << ": the framebuffer object is not complete.\n";
  20. break;
  21. case GL_OUT_OF_MEMORY:
  22. std::cout << message << ": there is not enough memory left to execute the command.\n";
  23. break;
  24. case GL_STACK_UNDERFLOW:
  25. std::cout << message << ": an attempt has been made to perform an operation that would cause an internal stack to underflow.\n";
  26. break;
  27. case GL_STACK_OVERFLOW:
  28. std::cout << message << ": an attempt has been made to perform an operation that would cause an internal stack to overflow.\n";
  29. break;
  30. default:
  31. std::cout << message << ": unknown OpenGL error: " << error << "\n";
  32. }
  33. return true;
  34. }
  35. void GL::disableDepthTesting() {
  36. glDisable(GL_DEPTH_TEST);
  37. }
  38. void GL::prepareMainFramebuffer() {
  39. glBindFramebuffer(GL_FRAMEBUFFER, 0);
  40. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
  41. }