Window.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include <iostream>
  2. #include "rendering/Window.h"
  3. Window::Window(int width, int height, const char* windowName) : window(nullptr) {
  4. glfwDefaultWindowHints();
  5. glfwWindowHint(GLFW_VISIBLE, 0);
  6. glfwWindowHint(GLFW_RESIZABLE, 1);
  7. glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
  8. glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
  9. glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
  10. window = glfwCreateWindow(width, height, windowName, nullptr, nullptr);
  11. if(window == nullptr) {
  12. std::cout << "could not create window\n";
  13. return;
  14. }
  15. glfwMakeContextCurrent(window);
  16. glfwSwapInterval(1);
  17. glfwSetWindowUserPointer(window, this);
  18. }
  19. Window::~Window() {
  20. if(window != nullptr) {
  21. glfwDestroyWindow(window);
  22. }
  23. }
  24. bool Window::hasError() const {
  25. return window == nullptr;
  26. }
  27. void Window::show() {
  28. glfwShowWindow(window);
  29. }
  30. bool Window::shouldClose() const {
  31. return glfwWindowShouldClose(window);
  32. }
  33. void Window::swapBuffers() {
  34. glfwSwapBuffers(window);
  35. }
  36. void Window::setFramebufferSizeCallback(GLFWframebuffersizefun f) {
  37. glfwSetFramebufferSizeCallback(window, f);
  38. }
  39. void Window::setKeyCallback(GLFWkeyfun f) {
  40. glfwSetKeyCallback(window, f);
  41. }