feat: window + engine header
This commit is contained in:
30
include/renderer/engine.h
Normal file
30
include/renderer/engine.h
Normal 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
36
include/window/window.h
Normal 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_
|
Reference in New Issue
Block a user