#include "texture.h" #include "renderer.h" #include "../platform/opengl/opengl_texture.h" #include "../platform/vulkan/vulkan_texture.h" namespace Donut { std::shared_ptr Texture2D::create(uint32_t width, uint32_t height) { switch (Renderer::get_api()) { case RendererAPI::API::OpenGL: return std::make_shared(width, height); case RendererAPI::API::Vulkan: return std::make_shared(width, height); case RendererAPI::API::None: return nullptr; default: return nullptr; } } std::shared_ptr Texture2D::create(const std::string& path) { switch (Renderer::get_api()) { case RendererAPI::API::OpenGL: return std::make_shared(path); case RendererAPI::API::Vulkan: return std::make_shared(path); case RendererAPI::API::None: return nullptr; default: return nullptr; } } };