using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace BansheeEngine { /** @addtogroup Resources * @{ */ /// Flags that can be used to control resource loading. public enum ResourceLoadFlag { /// No flags. None = 0, /// If enabled all resources referenced by the root resource will be loaded as well. LoadDependencies = 1, /// /// If enabled the resource system will keep an internal reference to the resource so it doesn't get destroyed when it /// goes out of scope. You can call Resources::release() to release the internal reference. Each call to load will create /// a new internal reference and therefore must be followed by the same number of release calls. If dependencies are /// being loaded, they will not have internal references created regardless of this parameter. /// KeepInternalRef = 2, /// /// Determines if the loaded resource keeps original data loaded. Sometime resources will process loaded data and discard /// the original (e.g. uncompressing audio on load). This flag can prevent the resource from discarding the original /// data. The original data might be required for saving the resource (via Resources::save), but will use up extra /// memory. Normally you want to keep this enabled if you plan on saving the resource to disk. /// KeepSourceData = 4, /// Default set of flags used for resource loading. Default = 3 } /** @} */ }