#ifndef RENDER_WND_RENDER_H
#define RENDER_WND_RENDER_H

#include "wndbase.hpp"
#include <render_type_def.h>
#include <memory>


class Scene;
class Graphic;
class Renderer;
class WndRender : public Wndbase<WndRender> {
public:
    WndRender();
    ~WndRender() override;
    LRESULT WndProc(UINT msg, WPARAM wparam, LPARAM lparam) override;
    static PCWSTR CLASSNAME();

    void UpdateWnd() const;

protected:
    bool EDGEMODE() override;

private:
    bool On_WM_CREATE(HWND hwnd);

private:
    class Timer;
    std::atomic<bool> b_InitOver{};
    std::unique_ptr<Timer> m_timer;
    std::unique_ptr<Graphic> m_graphic;
    std::unique_ptr<Scene> m_scene;
    POINT m_lastMousePos{};
    DirectX::XMINT3 m_moveKeyVector{};

    std::unique_ptr<Renderer> m_renderer{};
};




















#endif //RENDER_WND_RENDER_H
