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); } }