#pragma once

#include <glfw/glfw3.h>

#include "Window/WindowImpl.h"

class GLFWImpl : public WindowImpl {
public:
    explicit GLFWImpl() noexcept;
    ~GLFWImpl() override;

    bool Create(const WindowSettings& settings) override;
    bool ShouldClose() const override;
    void MakeCurrentContext() const override;
    void SwapBuffers() const override;

    //Core::WindowHandle GetWindowHandle() const override { return nullptr; /* window_;*/ }

private:
    GLFWwindow* window_{ nullptr };

    //IMPLEMENT_OBJECT_REFCOUN(GLFWImpl)
};
