직렬화 함수 작성 끝
This commit is contained in:
50
impl/vulkan_engine/glfw/glfw_window.cpp
Normal file
50
impl/vulkan_engine/glfw/glfw_window.cpp
Normal file
@@ -0,0 +1,50 @@
|
||||
#include "glfw/glfw_window.h"
|
||||
|
||||
#include <GLFW/glfw3.h>
|
||||
|
||||
#include "glfw/glfw_monitor.h"
|
||||
#include "precomp.h"
|
||||
|
||||
namespace veng {
|
||||
|
||||
Window::Window(gsl::czstring name, glm::ivec2 size) {
|
||||
// glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE);
|
||||
glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
|
||||
|
||||
window_ = glfwCreateWindow(size.x, size.y, name, nullptr, nullptr);
|
||||
if (window_ == nullptr) std::exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
Window::~Window() { glfwDestroyWindow(window_); }
|
||||
|
||||
glm::ivec2 Window::GetWindowSize() const {
|
||||
glm::ivec2 window_size;
|
||||
glfwGetWindowSize(window_, &window_size.x, &window_size.y);
|
||||
return window_size;
|
||||
}
|
||||
|
||||
glm::ivec2 Window::GetFramebufferSize() const {
|
||||
glm::ivec2 size;
|
||||
glfwGetFramebufferSize(window_, &size.x, &size.y);
|
||||
return size;
|
||||
}
|
||||
|
||||
bool Window::ShouldClose() const { return glfwWindowShouldClose(window_); }
|
||||
|
||||
GLFWwindow* Window::GetHandle() const { return window_; }
|
||||
|
||||
GLFWkeyfun Window::SetKeyCallback(GLFWkeyfun key_callback) {
|
||||
return glfwSetKeyCallback(window_, key_callback);
|
||||
}
|
||||
|
||||
bool Window::TryMoveToMonitor(std::uint16_t monitor_number) {
|
||||
gsl::span<GLFWmonitor*> monitors = veng::GetMonitors();
|
||||
|
||||
if (monitor_number < monitors.size()) {
|
||||
veng::MoveWindowToMonitor(window_, monitors[monitor_number]);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace veng
|
||||
Reference in New Issue
Block a user