Files
OpenVulkano/openVulkanoCpp/Base/IGraphicsApp.hpp

35 lines
931 B
C++

/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
#pragma once
#include "ITickable.hpp"
#include "ICloseable.hpp"
#include "Version.hpp"
#include <string>
namespace OpenVulkano
{
class IGraphicsAppManager;
class IGraphicsApp : public ITickable, public ICloseable
{
private:
IGraphicsAppManager* m_manager = nullptr;
public:
~IGraphicsApp() override = default;
virtual void Init() = 0;
virtual void InitPostGraphics() {}
virtual void CloseFinalize() {}
[[nodiscard]] IGraphicsAppManager* GetGraphicsAppManager() const { return m_manager; }
void SetGraphicsAppManager(IGraphicsAppManager* manager) { m_manager = manager; }
[[nodiscard]] virtual std::string GetAppName() const = 0;
[[nodiscard]] virtual Version GetAppVersion() const = 0;
};
}