background_window.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. #include "background_window.h"
  2. #include <iostream>
  3. IGL_INLINE bool igl::opengl::glfw::background_window(GLFWwindow* & window)
  4. {
  5. if(!glfwInit()) return false;
  6. glfwSetErrorCallback([](int id,const char* m){std::cerr<<m<<std::endl;});
  7. glfwWindowHint(GLFW_SAMPLES, 4);
  8. // Use 3.2 core profile
  9. glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
  10. glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
  11. glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
  12. glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
  13. // Use background window
  14. glfwWindowHint(GLFW_VISIBLE, GL_FALSE);
  15. window = glfwCreateWindow(1, 1,"", NULL, NULL);
  16. if(!window) return false;
  17. glfwMakeContextCurrent(window);
  18. #ifndef __APPLE__
  19. glewExperimental = true;
  20. GLenum err = glewInit();
  21. if(GLEW_OK != err)
  22. {
  23. /* Problem: glewInit failed, something is seriously wrong. */
  24. fprintf(stderr, "Error: %s\n", glewGetErrorString(err));
  25. }
  26. glGetError(); // pull and savely ignonre unhandled errors like GL_INVALID_ENUM
  27. #endif
  28. return true;
  29. }
  30. #ifdef IGL_STATIC_LIBRARY
  31. // Explicit template instantiation
  32. #endif