using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
namespace BansheeEngine
{
///
/// Base class for all user-defined managed resources. Managed resources are automatically serialized, can be saved
/// and persistently referenced by other objects.
///
public class ManagedResource : Resource
{
///
/// Constructo for internal use by the runtime.
///
protected ManagedResource()
{ }
///
/// Creates a new managed resource.
///
/// Type of the managed resource to create.
/// A new instance of a managed resource with default values.
static public T Create() where T : ManagedResource, new()
{
T newResource = new T();
Internal_CreateInstance(newResource);
return newResource;
}
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_CreateInstance(ManagedResource resource);
}
}