#pragma once
/*
GameEngine and Editor
by John Ryland
Copyright (c) 2023
*/
////////////////////////////////////////////////////////////////////////////////////
// IRenderDevice
#include "Image.h"
#include "DeviceImage.h"
#include "Nk.h"
namespace GameEngine {
// TODO: remove NK dep from interface
class IRenderDevice
{
public:
IRenderDevice() {}
virtual ~IRenderDevice() {}
// virtual void Create() = 0;
// virtual void Destroy() = 0;
virtual nk_draw_null_texture* NullTexture() = 0;
virtual struct nk_image UploadTexture(Image& image, bool generateMips = true) = 0;
//virtual DeviceImage UploadTexture(Image& image, bool generateMips = true) = 0;
virtual void Prepare(int width, int height) = 0;
virtual void Draw(nk_context *ctx, int width, int height, struct nk_vec2 scale) = 0;
virtual void Present() = 0;
};
} // GameEngine namespace