//
// Created by sebastian on 23.12.25.
//

#ifndef DICEWARS_SIEDLER_WINDOW_H
#define DICEWARS_SIEDLER_WINDOW_H
#include <cstdint>
#include "glad/glad.h"
#include <memory>
#include <string>

struct WindowProps
{
    std::string Title;
    uint32_t Width;
    uint32_t Height;
    bool VSync = true;
};

class Window
{
public:
    virtual ~Window() = default;

    virtual void OnUpdate() = 0;

    virtual uint32_t GetWidth() const = 0;
    virtual uint32_t GetHeight() const = 0;

    virtual void* GetNativeWindow() const = 0;

    static Window* Create(const WindowProps& props);
    virtual bool shouldClose() const = 0;

};


#endif //DICEWARS_SIEDLER_WINDOW_H