print_gl_get.h 965 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #ifndef IGL_PRINT_GL_GET_H
  2. #define IGL_PRINT_GL_GET_H
  3. #if __APPLE__
  4. # include <OpenGL/gl.h>
  5. #else
  6. # ifdef _WIN32
  7. # define NOMINMAX
  8. # include <Windows.h>
  9. # undef NOMINMAX
  10. # endif
  11. # include <GL/gl.h>
  12. #endif
  13. namespace igl
  14. {
  15. // Prints the value of pname found by issuing glGet*(pname,*)
  16. // Inputs:
  17. // pname enum key to gl parameter
  18. inline void print_gl_get(GLenum pname);
  19. }
  20. // Implementation
  21. #include <cstdio>
  22. inline void igl::print_gl_get(GLenum pname)
  23. {
  24. double dM[16];
  25. int rows = 4;
  26. int cols = 4;
  27. switch(pname)
  28. {
  29. case GL_MODELVIEW_MATRIX:
  30. case GL_PROJECTION_MATRIX:
  31. {
  32. rows = 4;
  33. cols = 4;
  34. glGetDoublev(pname,dM);
  35. for(int i = 0;i<rows;i++)
  36. {
  37. for(int j = 0;j<cols;j++)
  38. {
  39. printf("%lg ",dM[j*rows+i]);
  40. }
  41. printf("\n");
  42. }
  43. break;
  44. }
  45. default:
  46. fprintf(stderr,"ERROR in print_gl_get(), gl enum not recognized.\n");
  47. }
  48. }
  49. #endif