63 auto& func = *
static_cast<std::remove_reference_t<T>*
>(userData);
64 return func(directory, file);
The root object of everything RHI. Implementation of this class inherently defines the RHI backend.
Definition Application.hpp:24
virtual Optional< RHIFileInfo > QueryFileInfo(StringView path) const =0
bool IterateDirectory(StringView path, T &&cb) const
Iterate over the files in a directory, calling the provided callback for each file.
Definition Application.hpp:59
virtual bool IterateDirectory(StringView path, RHIDirectoryIteratorCallback cb, void *userData) const =0
Iterate over the files in a directory, calling the provided callback for each file.
virtual String ResolveRelativePathData(StringView path="") const =0
Retrives path that's writable and persistent.
virtual String ResolveRelativePathBase(StringView path="") const =0
Retrives path relative to the application executable.
RHIApplication(RHIApplication const &)=delete
virtual bool CreateDirectory(StringView path) const =0
virtual void DestroyDevice(Handle handle)=0
virtual bool RemoveDirectory(StringView path) const =0
virtual RHIApplicationScopedHandle< RHIDevice > CreateDevice(RHIDevice::DeviceDesc const &desc)=0
virtual Span< const RHIDevice::DeviceDesc > EnumerateDevices() const =0
virtual RHIDevice * GetDevice(Handle handle) const =0
virtual bool RemoveFile(StringView path) const =0
Definition Device.hpp:246
Base class for all RHI objects.
Definition Details.hpp:17
Scoped move-only RAII handle wrapper for RHI Objects.
Definition Details.hpp:85
std::basic_string< char, std::char_traits< char >, StlDefaultAllocator< char > > String
Alias for std::basic_string<char>, without an explicit allocator constructor.
Definition Container.hpp:120
std::basic_string_view< char > StringView
Alias for std::basic_string_view<char>
Definition Container.hpp:56
std::span< T > Span
Alias for std::span
Definition Container.hpp:62
Low-level Rendering Hardware Interface (RHI) abstractions.
Definition Application.hpp:3
bool(*)(void *userData, StringView directory, StringView file) RHIDirectoryIteratorCallback
Directory iterator callback.
Definition Application.hpp:19
uintptr_t Handle
Definition Details.hpp:9
std::optional with convenience Get()/GetIf() methods.
Definition Container.hpp:256
Definition Device.hpp:249
Definition Application.hpp:7
uint64_t size
Definition Application.hpp:9
long long mtime
Definition Application.hpp:11
long long ctime
Definition Application.hpp:11
long long atime
Definition Application.hpp:11
bool isDirectory
Definition Application.hpp:13
static void Destroy(RHIApplication *app, Handle handle)
Definition Application.hpp:73
static RHIDevice * Get(RHIApplication const *app, Handle handle)
Definition Application.hpp:70
Provides type traits for types derived from RHIObject.
Definition Details.hpp:31