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
}
/** @} */
}