feat: window + engine header

This commit is contained in:
2025-10-04 12:22:45 +02:00
parent 5f69ed6434
commit 09d715b9f7
2 changed files with 66 additions and 0 deletions

30
include/renderer/engine.h Normal file
View File

@ -0,0 +1,30 @@
#ifndef ENGINE_H_
#define ENGINE_H_
#include <memory>
#include <glm/glm.hpp>
#include "window/window.h"
#include "window/events/window.h"
class Engine {
private:
std::unique_ptr<Window> m_window;
bool m_isRunning;
private:
glm::mat4 m_projection;
public:
Engine();
~Engine();
private:
void Stop();
void Destroy() const;
[[nodiscard]] bool Running() const;
private:
void HandleWindowResized(const WindowResized& event);
public:
void Run();
};
#endif // ENGINE_H_

36
include/window/window.h Normal file
View File

@ -0,0 +1,36 @@
#ifndef WINDOW_H_
#define WINDOW_H_
#include <SDL3/SDL.h>
#include "event.hpp"
#define ENGINE_GL_MAJOR_VERSION 4
#define ENGINE_GL_MINOR_VERSION 6
#define ENGINE_GL_MULTISAMPLE_BUFFERS 1
#define ENGINE_GL_MULTISAMPLE_SAMPLES 8
#define DEFAULT_WIDTH 1024
#define DEFAULT_HEIGHT 768
class Window : public EventBus {
private:
SDL_Window *m_window;
SDL_GLContext m_context;
int m_width;
int m_height;
public:
Window();
~Window();
public:
[[nodiscard]] inline int GetWidth() const { return m_width; }
[[nodiscard]] inline int GetHeight() const { return m_height; }
public:
void ProcessEvents();
public:
void SwapBuffers() const;
public:
void Destroy() const;
};
#endif //WINDOW_H_