33 lines
820 B
C++
33 lines
820 B
C++
# pragma once
|
|
# include "setup.h"
|
|
# include <memory>
|
|
|
|
struct Platform;
|
|
struct ImDrawData;
|
|
struct ImVec4;
|
|
using ImTextureID= void*;
|
|
|
|
struct Renderer
|
|
{
|
|
virtual ~Renderer() {};
|
|
|
|
virtual bool Create(Platform& platform) = 0;
|
|
virtual void Destroy() = 0;
|
|
|
|
virtual void NewFrame() = 0;
|
|
|
|
virtual void RenderDrawData(ImDrawData* drawData) = 0;
|
|
|
|
virtual void Clear(const ImVec4& color) = 0;
|
|
virtual void Present() = 0;
|
|
|
|
virtual void Resize(int width, int height) = 0;
|
|
|
|
virtual ImTextureID CreateTexture(const void* data, int width, int height) = 0;
|
|
virtual void DestroyTexture(ImTextureID texture) = 0;
|
|
virtual int GetTextureWidth(ImTextureID texture) = 0;
|
|
virtual int GetTextureHeight(ImTextureID texture) = 0;
|
|
};
|
|
|
|
std::unique_ptr<Renderer> CreateRenderer();
|