All checks were successful
Build (Arch Linux) / build (push) Successful in 3m10s
41 lines
1.5 KiB
C++
41 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#include "graphics/opengl/framebuffer.hpp"
|
|
|
|
#include <glm/vec2.hpp>
|
|
|
|
#include <cstdint>
|
|
#include <memory>
|
|
#include <string_view>
|
|
|
|
namespace kuiper
|
|
{
|
|
|
|
class window {
|
|
public:
|
|
virtual ~window() = default;
|
|
|
|
virtual void* get_native_handle() const noexcept = 0;
|
|
virtual void set_title(std::u8string_view title) noexcept = 0;
|
|
virtual void poll_events() noexcept = 0;
|
|
virtual void swap_buffers() noexcept = 0;
|
|
virtual void set_swap_interval(std::uint32_t interval) noexcept = 0;
|
|
virtual void bind_context() noexcept = 0;
|
|
virtual gl::framebuffer::s_ptr back_buffer() const noexcept = 0;
|
|
|
|
virtual bool should_close() const noexcept = 0;
|
|
virtual bool is_minimised() const noexcept = 0;
|
|
virtual bool is_cursor_locked() const noexcept = 0;
|
|
|
|
virtual void lock_cursor() noexcept = 0;
|
|
virtual void unlock_cursor() noexcept = 0;
|
|
virtual void enable_raw_input() noexcept = 0;
|
|
virtual void disable_raw_input() noexcept = 0;
|
|
|
|
virtual glm::uvec2 get_size() const noexcept = 0;
|
|
virtual glm::uvec2 get_framebuffer_size() const noexcept = 0; // should this go in render context?
|
|
virtual glm::vec2 get_content_scale() const noexcept = 0;
|
|
};
|
|
|
|
} // namespace kuiper
|