// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved. #pragma once #include "Types.h" #if COMPILE_WITH_ASSETS_IMPORTER #include "Engine/Graphics/Materials/MaterialParams.h" #include "Engine/Content/Assets/MaterialInstance.h" #include "Engine/Serialization/MemoryWriteStream.h" /// /// Creating material instances utility. /// class CreateMaterialInstance { public: /// /// Creates the asset. /// /// The importing context. /// Result. static CreateAssetResult Create(CreateAssetContext& context) { // Base IMPORT_SETUP(MaterialInstance, 4); // Chunk 0 - Header if (context.AllocateChunk(0)) return CreateAssetResult::CannotAllocateChunk; MemoryWriteStream stream(256); stream.Write(Guid::Empty); MaterialParams::Save(&stream, nullptr); context.Data.Header.Chunks[0]->Data.Copy(stream.GetHandle(), stream.GetPosition()); return CreateAssetResult::Ok; } }; #endif