#pragma once

/*
	GameEngine and Editor
	by John Ryland
	Copyright (c) 2023
*/

////////////////////////////////////////////////////////////////////////////////////
//	Render View

#include "Application.h"
#include "IView.h"
#include "IRenderSystem.h"
#include <memory>

class ExampleRenderer;

namespace GameEngine {

class RenderView : public IView
{
public:
    RenderView(ApplicationFramework::IApplication& app);
    ~RenderView() override;

    void AddShowMenuItem() override;

    void Initialize() override;
    void Shutdown() override;
    void Update() override;
private:
    //std::unique_ptr<ExampleRenderer>     m_renderer;
    ExampleRenderer*                     m_renderer;
    ApplicationFramework::IApplication&  m_application;
    ApplicationFramework::TextureId      m_texture;
    int                                  m_width;
    int                                  m_height;
    bool                                 m_open = true;
};

} // GameEngine namespace
