diff --git a/SHADE_Managed/src/Assets/NativeAsset.cxx b/SHADE_Managed/src/Assets/NativeAsset.cxx index 674207a1..9cdb1840 100644 --- a/SHADE_Managed/src/Assets/NativeAsset.cxx +++ b/SHADE_Managed/src/Assets/NativeAsset.cxx @@ -21,6 +21,17 @@ of DigiPen Institute of Technology is prohibited. namespace SHADE { /*---------------------------------------------------------------------------------*/ - /* Explicit Tempalte Instantiations */ + /* Properties */ /*---------------------------------------------------------------------------------*/ + GenericHandle Asset::NativeObjectHandle::get() + { + return nativeObjHandle; + } + + /*---------------------------------------------------------------------------------*/ + /* Constructors */ + /*---------------------------------------------------------------------------------*/ + Asset::Asset(Handle nativeHandle) + : nativeObjHandle { Convert::ToCLI(Handle(nativeHandle)) } + {} } \ No newline at end of file diff --git a/SHADE_Managed/src/Assets/NativeAsset.h++ b/SHADE_Managed/src/Assets/NativeAsset.h++ index 6b583a5c..05be83b4 100644 --- a/SHADE_Managed/src/Assets/NativeAsset.h++ +++ b/SHADE_Managed/src/Assets/NativeAsset.h++ @@ -24,11 +24,6 @@ namespace SHADE /* Properties */ /*---------------------------------------------------------------------------------*/ template - GenericHandle NativeAsset::NativeObjectHandle::get() - { - return nativeObjHandle; - } - template Handle NativeAsset::NativeObject::get() try { @@ -44,7 +39,6 @@ namespace SHADE /*---------------------------------------------------------------------------------*/ template NativeAsset::NativeAsset(Handle nativeObj) - : nativeObjHandle{ Convert::ToCLI(Handle(nativeObj)) } + : Asset { Handle(nativeObj) } {} - } diff --git a/SHADE_Managed/src/Assets/NativeAsset.hxx b/SHADE_Managed/src/Assets/NativeAsset.hxx index 68addb75..4d53ce6b 100644 --- a/SHADE_Managed/src/Assets/NativeAsset.hxx +++ b/SHADE_Managed/src/Assets/NativeAsset.hxx @@ -19,13 +19,9 @@ of DigiPen Institute of Technology is prohibited. namespace SHADE { /// - /// Generalised template class for a managed representation of a native asset + /// Abstract base class that all Native Assets will inherit from. /// - /// - /// The type of the asset's native representation. - /// - template - public ref class NativeAsset + public ref class Asset abstract { internal: /*-----------------------------------------------------------------------------*/ @@ -38,6 +34,36 @@ namespace SHADE { GenericHandle get(); } + + /*-----------------------------------------------------------------------------*/ + /* Constructors/Destructor */ + /*-----------------------------------------------------------------------------*/ + /// + /// Constructor for the asset. + /// + /// Native asset object handle. + Asset(Handle nativeHandle); + + protected: + /*-----------------------------------------------------------------------------*/ + /* Data Members */ + /*-----------------------------------------------------------------------------*/ + GenericHandle nativeObjHandle; + }; + + /// + /// Generalised template class for a managed representation of a native asset + /// + /// + /// The type of the asset's native representation. + /// + template + public ref class NativeAsset abstract : Asset + { + internal: + /*-----------------------------------------------------------------------------*/ + /* Properties */ + /*-----------------------------------------------------------------------------*/ /// /// Copy of the Handle to the native object. /// @@ -52,14 +78,8 @@ namespace SHADE /// /// Constructor for the native asset /// - /// Native asset object. + /// Native asset object handle. NativeAsset(Handle ptr); - - protected: - /*-----------------------------------------------------------------------------*/ - /* Data Members */ - /*-----------------------------------------------------------------------------*/ - GenericHandle nativeObjHandle; }; }