#pragma once #include <asl/status_or.hpp> #include <asl/box.hpp> struct SDL_Window; namespace gpu { class Gpu { public: Gpu() = default; ASL_DELETE_COPY_MOVE(Gpu); virtual ~Gpu() = default; virtual void destroy() = 0; }; asl::status_or<asl::box<Gpu>> init(SDL_Window* window); } // namespace gpu