#pragma once
/*
ApplicationFramework
by John Ryland
Copyright (c) 2023
*/
////////////////////////////////////////////////////////////////////////////////////
// Render System Interface
#include "ICoreSystem.h"
#include <cstdint>
typedef struct VkImageView_T *VkImageView;
namespace ApplicationFramework {
class Window;
class Image;
using TextureId = void*; //uint32_t;
class IRenderSystem : public ICoreSystem
{
public:
virtual void CreateWindow(Window* window) = 0;
virtual void DestroyWindow(Window* window) = 0;
//virtual void CreateTexture(Texture* texture) = 0;
//virtual void DestroyTexture(Texture* texture) = 0;
virtual TextureId LoadTexture(VkImageView imageView, int w, int h) = 0;
virtual TextureId CreateTexture(Image& image) = 0;
virtual void DestroyTexture(TextureId texture) = 0;
};
} // ApplicationFramework namespace