diff --git a/src/Resource.h b/src/Resource.h index 35ddebda2..9b90cf41e 100644 --- a/src/Resource.h +++ b/src/Resource.h @@ -16,14 +16,16 @@ */ /** @file /Resource.h - * @brief Class Magnum::ResourceKey, Magnum::Resource, enum Magnum::ResourceState, Magnum::ResourceDataState, Magnum::ResourcePolicy + * @brief Class Magnum::ResourceKey, Magnum::Resource, enum Magnum::ResourceState */ +#include + #include "Magnum.h" namespace Magnum { -/** @relates ResourceManager +/** @relates Resource * @brief %Resource state * * @see Resource::state(), ResourceManager::state() @@ -42,47 +44,6 @@ enum class ResourceState: std::uint8_t { Final }; -/** @relates ResourceManager - * @brief %Resource data state - * - * @see ResourceManager::set() - */ -enum class ResourceDataState: std::uint8_t { - /** - * The resource can be changed by the manager in the future. This is - * slower, as Resource needs to ask the manager for new version every time - * the data are accessed, but allows changing the data for e.g. debugging - * purposes. - */ - Mutable = int(ResourceState::Mutable), - - /** - * The resource cannot be changed by the manager in the future. This is - * faster, as Resource instances will ask for the data only one time, thus - * suitable for production code. - */ - Final = int(ResourceState::Final) -}; - -/** @relates ResourceManager -@brief %Resource policy - -@see ResourceManager::set(), ResourceManager::free() - */ -enum class ResourcePolicy: std::uint8_t { - /** The resource will stay resident for whole lifetime of resource manager. */ - Resident, - - /** - * The resource will be unloaded when manually calling - * ResourceManager::free() if nothing references it. - */ - Manual, - - /** The resource will be unloaded when last reference to it is gone. */ - ReferenceCounted -}; - /** @brief Key for accessing resource @@ -109,6 +70,11 @@ class ResourceKey: public Corrade::Utility::MurmurHash2::Digest { template inline constexpr ResourceKey(const char(&key)[size]): Corrade::Utility::MurmurHash2::Digest(Corrade::Utility::MurmurHash2()(key)) {} }; +/** @debugoperator{Magnum::ResourceKey} */ +inline Corrade::Utility::Debug operator<<(Corrade::Utility::Debug debug, const ResourceKey& value) { + return debug << static_cast&>(value); +} + #ifndef DOXYGEN_GENERATING_OUTPUT namespace Implementation { template class ResourceManagerData; diff --git a/src/ResourceManager.h b/src/ResourceManager.h index 4621e212c..7b54c586c 100644 --- a/src/ResourceManager.h +++ b/src/ResourceManager.h @@ -16,16 +16,56 @@ */ /** @file - * @brief Class Magnum::ResourceManager + * @brief Class Magnum::ResourceManager, enum Magnum::ResourceDataState, Magnum::ResourcePolicy */ #include -#include #include "Resource.h" namespace Magnum { +/** @relates ResourceManager + * @brief %Resource data state + * + * @see ResourceManager::set() + */ +enum class ResourceDataState: std::uint8_t { + /** + * The resource can be changed by the manager in the future. This is + * slower, as Resource needs to ask the manager for new version every time + * the data are accessed, but allows changing the data for e.g. debugging + * purposes. + */ + Mutable = int(ResourceState::Mutable), + + /** + * The resource cannot be changed by the manager in the future. This is + * faster, as Resource instances will ask for the data only one time, thus + * suitable for production code. + */ + Final = int(ResourceState::Final) +}; + +/** @relates ResourceManager +@brief %Resource policy + +@see ResourceManager::set(), ResourceManager::free() + */ +enum class ResourcePolicy: std::uint8_t { + /** The resource will stay resident for whole lifetime of resource manager. */ + Resident, + + /** + * The resource will be unloaded when manually calling + * ResourceManager::free() if nothing references it. + */ + Manual, + + /** The resource will be unloaded when last reference to it is gone. */ + ReferenceCounted +}; + #ifndef DOXYGEN_GENERATING_OUTPUT namespace Implementation { struct ResourceKeyHash { @@ -356,11 +396,7 @@ template ResourceManager*& ResourceManager:: } #endif -/** @debugoperator{Magnum::ResourceKey} */ -template inline Corrade::Utility::Debug operator<<(Corrade::Utility::Debug debug, const ResourceKey& value) { - return debug << static_cast&>(value); } -} #endif