Error.cpp 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // Copyright (C) 2009-2021, Panagiotis Christopoulos Charitos and contributors.
  2. // All rights reserved.
  3. // Code licensed under the BSD License.
  4. // http://www.anki3d.org/LICENSE
  5. #include <AnKi/Gr/gl/Error.h>
  6. #include <AnKi/Util/Logger.h>
  7. #include <cstring>
  8. namespace anki
  9. {
  10. void glConditionalCheckError(const char* file, int line, const char* func)
  11. {
  12. GLenum errId = glGetError();
  13. if(errId == GL_NO_ERROR)
  14. {
  15. return;
  16. }
  17. const char* glerr;
  18. switch(errId)
  19. {
  20. case GL_INVALID_ENUM:
  21. glerr = "GL_INVALID_ENUM";
  22. break;
  23. case GL_INVALID_VALUE:
  24. glerr = "GL_INVALID_VALUE";
  25. break;
  26. case GL_INVALID_OPERATION:
  27. glerr = "GL_INVALID_OPERATION";
  28. break;
  29. case GL_INVALID_FRAMEBUFFER_OPERATION:
  30. glerr = "GL_INVALID_FRAMEBUFFER_OPERATION";
  31. break;
  32. case GL_OUT_OF_MEMORY:
  33. glerr = "GL_OUT_OF_MEMORY";
  34. break;
  35. default:
  36. glerr = "unknown";
  37. };
  38. char errStr[256];
  39. const char tmp[] = "OpenGL exception: ";
  40. memcpy(errStr, tmp, sizeof(tmp));
  41. strcat(errStr, glerr);
  42. ANKI_GL_LOGF("GL error: %s (%s:%d %s)", errStr, file, line, func);
  43. }
  44. } // namespace anki