Add ToSpan for MemoryWriteStream and simplify code with it

This commit is contained in:
Wojtek Figat
2025-01-16 17:35:28 +01:00
parent 39419787fa
commit 6111f67e33
30 changed files with 59 additions and 51 deletions

View File

@@ -43,7 +43,7 @@ public:
// Copy to asset chunk
if (context.AllocateChunk(0))
return CreateAssetResult::CannotAllocateChunk;
context.Data.Header.Chunks[0]->Data.Copy(stream.GetHandle(), stream.GetPosition());
context.Data.Header.Chunks[0]->Data.Copy(ToSpan(stream));
return CreateAssetResult::Ok;
}

View File

@@ -40,7 +40,7 @@ CreateAssetResult CreateAnimationGraph::Create(CreateAssetContext& context)
// Copy to asset chunk
if (context.AllocateChunk(0))
return CreateAssetResult::CannotAllocateChunk;
context.Data.Header.Chunks[0]->Data.Copy(stream.GetHandle(), stream.GetPosition());
context.Data.Header.Chunks[0]->Data.Copy(ToSpan(stream));
return CreateAssetResult::Ok;
}

View File

@@ -44,7 +44,7 @@ public:
return CreateAssetResult::Error;
if (context.AllocateChunk(0))
return CreateAssetResult::CannotAllocateChunk;
context.Data.Header.Chunks[0]->Data.Copy(stream.GetHandle(), stream.GetPosition());
context.Data.Header.Chunks[0]->Data.Copy(ToSpan(stream));
return CreateAssetResult::Ok;
}

View File

@@ -26,7 +26,7 @@ public:
const BehaviorTreeGraph graph;
MemoryWriteStream stream(64);
graph.Save(&stream, true);
context.Data.Header.Chunks[0]->Data.Copy(stream.GetHandle(), stream.GetPosition());
context.Data.Header.Chunks[0]->Data.Copy(ToSpan(stream));
}
return CreateAssetResult::Ok;

View File

@@ -191,7 +191,7 @@ CreateAssetResult CreateMaterial::Create(CreateAssetContext& context)
MemoryWriteStream stream(512);
layer->Graph.Save(&stream, true);
context.Data.Header.Chunks[SHADER_FILE_CHUNK_VISJECT_SURFACE]->Data.Copy(stream.GetHandle(), stream.GetPosition());
context.Data.Header.Chunks[SHADER_FILE_CHUNK_VISJECT_SURFACE]->Data.Copy(ToSpan(stream));
Delete(layer);
}
else

View File

@@ -45,7 +45,7 @@ public:
return CreateAssetResult::Error;
if (context.AllocateChunk(0))
return CreateAssetResult::CannotAllocateChunk;
context.Data.Header.Chunks[0]->Data.Copy(stream.GetHandle(), stream.GetPosition());
context.Data.Header.Chunks[0]->Data.Copy(ToSpan(stream));
return CreateAssetResult::Ok;
}

View File

@@ -32,7 +32,7 @@ public:
MemoryWriteStream stream(256);
stream.Write(Guid::Empty);
MaterialParams::Save(&stream, nullptr);
context.Data.Header.Chunks[0]->Data.Copy(stream.GetHandle(), stream.GetPosition());
context.Data.Header.Chunks[0]->Data.Copy(ToSpan(stream));
return CreateAssetResult::Ok;
}

View File

@@ -37,7 +37,7 @@ public:
graph.CreateDefault();
MemoryWriteStream stream(512);
graph.Save(&stream, false);
context.Data.Header.Chunks[SHADER_FILE_CHUNK_VISJECT_SURFACE]->Data.Copy(stream.GetHandle(), stream.GetPosition());
context.Data.Header.Chunks[SHADER_FILE_CHUNK_VISJECT_SURFACE]->Data.Copy(ToSpan(stream));
return CreateAssetResult::Ok;
}

View File

@@ -44,7 +44,7 @@ public:
return CreateAssetResult::Error;
if (context.AllocateChunk(0))
return CreateAssetResult::CannotAllocateChunk;
context.Data.Header.Chunks[0]->Data.Copy(stream.GetHandle(), stream.GetPosition());
context.Data.Header.Chunks[0]->Data.Copy(ToSpan(stream));
return CreateAssetResult::Ok;
}

View File

@@ -35,7 +35,7 @@ public:
stream.WriteInt32(0); // Emitters Count
stream.WriteInt32(0); // Tracks Count
}
context.Data.Header.Chunks[0]->Data.Copy(stream.GetHandle(), stream.GetPosition());
context.Data.Header.Chunks[0]->Data.Copy(ToSpan(stream));
return CreateAssetResult::Ok;
}

View File

@@ -34,7 +34,7 @@ public:
stream.WriteInt32(5 * 60); // DurationFrames
stream.WriteInt32(0); // Tracks Count
}
context.Data.Header.Chunks[0]->Data.Copy(stream.GetHandle(), stream.GetPosition());
context.Data.Header.Chunks[0]->Data.Copy(ToSpan(stream));
return CreateAssetResult::Ok;
}

View File

@@ -33,7 +33,7 @@ public:
const VisualScriptGraph graph;
MemoryWriteStream stream(64);
graph.Save(&stream, true);
context.Data.Header.Chunks[0]->Data.Copy(stream.GetHandle(), stream.GetPosition());
context.Data.Header.Chunks[0]->Data.Copy(ToSpan(stream));
}
// Chunk 1 - Visual Script Metadata
@@ -44,7 +44,7 @@ public:
stream.Write(1);
stream.Write(*baseTypename, 31);
stream.Write((int32)VisualScript::Flags::None);
context.Data.Header.Chunks[1]->Data.Copy(stream.GetHandle(), stream.GetPosition());
context.Data.Header.Chunks[1]->Data.Copy(ToSpan(stream));
}
return CreateAssetResult::Ok;

View File

@@ -554,7 +554,7 @@ CreateAssetResult ImportModel::CreateModel(CreateAssetContext& context, const Mo
return CreateAssetResult::Error;
if (context.AllocateChunk(0))
return CreateAssetResult::CannotAllocateChunk;
context.Data.Header.Chunks[0]->Data.Copy(stream.GetHandle(), stream.GetPosition());
context.Data.Header.Chunks[0]->Data.Copy(ToSpan(stream));
// Pack model LODs data
const auto lodCount = modelData.LODs.Count();
@@ -566,7 +566,7 @@ CreateAssetResult ImportModel::CreateModel(CreateAssetContext& context, const Mo
const int32 chunkIndex = MODEL_LOD_TO_CHUNK_INDEX(lodIndex);
if (context.AllocateChunk(chunkIndex))
return CreateAssetResult::CannotAllocateChunk;
context.Data.Header.Chunks[chunkIndex]->Data.Copy(stream.GetHandle(), stream.GetPosition());
context.Data.Header.Chunks[chunkIndex]->Data.Copy(ToSpan(stream));
}
// Generate SDF
@@ -577,7 +577,7 @@ CreateAssetResult ImportModel::CreateModel(CreateAssetContext& context, const Mo
{
if (context.AllocateChunk(15))
return CreateAssetResult::CannotAllocateChunk;
context.Data.Header.Chunks[15]->Data.Copy(stream.GetHandle(), stream.GetPosition());
context.Data.Header.Chunks[15]->Data.Copy(ToSpan(stream));
}
}
@@ -596,7 +596,7 @@ CreateAssetResult ImportModel::CreateSkinnedModel(CreateAssetContext& context, c
return CreateAssetResult::Error;
if (context.AllocateChunk(0))
return CreateAssetResult::CannotAllocateChunk;
context.Data.Header.Chunks[0]->Data.Copy(stream.GetHandle(), stream.GetPosition());
context.Data.Header.Chunks[0]->Data.Copy(ToSpan(stream));
// Pack model LODs data
const auto lodCount = modelData.LODs.Count();
@@ -608,7 +608,7 @@ CreateAssetResult ImportModel::CreateSkinnedModel(CreateAssetContext& context, c
const int32 chunkIndex = MODEL_LOD_TO_CHUNK_INDEX(lodIndex);
if (context.AllocateChunk(chunkIndex))
return CreateAssetResult::CannotAllocateChunk;
context.Data.Header.Chunks[chunkIndex]->Data.Copy(stream.GetHandle(), stream.GetPosition());
context.Data.Header.Chunks[chunkIndex]->Data.Copy(ToSpan(stream));
}
return CreateAssetResult::Ok;
@@ -637,7 +637,7 @@ CreateAssetResult ImportModel::CreateAnimation(CreateAssetContext& context, cons
return CreateAssetResult::Error;
if (context.AllocateChunk(0))
return CreateAssetResult::CannotAllocateChunk;
context.Data.Header.Chunks[0]->Data.Copy(stream.GetHandle(), stream.GetPosition());
context.Data.Header.Chunks[0]->Data.Copy(ToSpan(stream));
return CreateAssetResult::Ok;
}

View File

@@ -178,7 +178,7 @@ CreateAssetResult ImportTexture::Create(CreateAssetContext& context, const Textu
}
if (context.AllocateChunk(15))
return CreateAssetResult::CannotAllocateChunk;
context.Data.Header.Chunks[15]->Data.Copy(stream.GetHandle(), stream.GetPosition());
context.Data.Header.Chunks[15]->Data.Copy(ToSpan(stream));
}
// Save mip maps
@@ -317,7 +317,7 @@ CreateAssetResult ImportTexture::Create(CreateAssetContext& context, const Textu
}
if (context.AllocateChunk(15))
return CreateAssetResult::CannotAllocateChunk;
context.Data.Header.Chunks[15]->Data.Copy(stream.GetHandle(), stream.GetPosition());
context.Data.Header.Chunks[15]->Data.Copy(ToSpan(stream));
}
// Save mip maps