#pragma once #include "imgui.h" class render_resource : public std::enable_shared_from_this { public: virtual ~render_resource() = default; virtual int get_width() const = 0; virtual int get_height() const = 0; virtual ImTextureID get_texture_id() = 0; void draw() { ImGui::Image(get_texture_id(), ImVec2(static_cast(get_width()), static_cast(get_height()))); } };