/************************************************************************************//*! \file NativeAsset.cxx \author Tng Kah Wei, kahwei.tng, 390009620 \par email: kahwei.tng\@digipen.edu \date Oct 28, 2022 \brief Contains the explicit template instantiation for some types of the templated managed NativeAsset class. Note: This file is written in C++17/CLI. Copyright (C) 2022 DigiPen Institute of Technology. Reproduction or disclosure of this file or its contents without the prior written consent of DigiPen Institute of Technology is prohibited. *//*************************************************************************************/ #include "SHpch.h" // Primary Include #include "NativeAsset.hxx" // Project Includes #include "Engine/GenericHandle.hxx" #include "Utility/Convert.hxx" #include "Resource/SHResourceManagerWrapper.h" namespace SHADE { /*---------------------------------------------------------------------------------*/ /* Properties */ /*---------------------------------------------------------------------------------*/ GenericHandle Asset::NativeObjectHandle::get() { return nativeObjHandle; } AssetID Asset::NativeAssetID::get() { return SHResourceManagerWrapper::GetAssetID(Convert::ToNative(nativeObjHandle)).value_or(INVALID_ASSET_ID); } /*---------------------------------------------------------------------------------*/ /* Constructors */ /*---------------------------------------------------------------------------------*/ Asset::Asset(Handle nativeHandle) : nativeObjHandle { Convert::ToCLI(Handle(nativeHandle)) } {} /*---------------------------------------------------------------------------------*/ /* Operator Overloads */ /*---------------------------------------------------------------------------------*/ Asset::operator bool(Asset asset) { return asset.nativeObjHandle && asset.NativeAssetID != INVALID_ASSET_ID; } }