public override void Save(SaveContext saveContext) { var utility = saveContext.Utility; base.Save(saveContext); utility.Write(Flags); saveContext.WritePointerPlaceholder(BoundingBox); PositionOffset.Write(utility); saveContext.WriteObjectListPointerPlaceholder(SubMeshes); utility.Write(BaseAddress); saveContext.WriteObjectListPointerPlaceholder(VertexBuffers); saveContext.WritePointerPlaceholder(BlendShape); ///////////////////////////// // Begin saving dependent data saveContext.SaveAndMarkReference(SubMeshes); saveContext.SaveAndMarkReference(VertexBuffers); saveContext.SaveAndMarkReference(BoundingBox); SubMeshes.SaveList(saveContext); VertexBuffers.SaveList(saveContext); saveContext.SaveAndMarkReference(BlendShape); }
public override void Save(SaveContext saveContext) { base.Save(saveContext); var utility = saveContext.Utility; saveContext.WriteObjectListPointerPlaceholder(Meshes); // Materials saveContext.WriteDICTPointerPlaceholder(ModelMaterials); // Shapes saveContext.WriteObjectListPointerPlaceholder(Shapes); // Mesh Node Visibilities saveContext.WriteObjectListPointerPlaceholder(MeshNodeVisibilities); utility.Write(Flags); utility.Write((uint)FaceCulling); utility.Write(LayerId); // Load a Skeleton if this model has one if (HasSkeleton) { saveContext.WritePointerPlaceholder(Skeleton); } ///////////////////////////// // Begin saving dependent data // Save Lists saveContext.SaveAndMarkReference(Meshes); saveContext.SaveAndMarkReference(Shapes); saveContext.SaveAndMarkReference(MeshNodeVisibilities); // I'm not SURE this is where this goes (no test data at the moment I'm writing this) but all lists seem to follow here // Save DICT headers saveContext.SaveAndMarkReference(MetaDatas); saveContext.SaveAndMarkReference(AnimGroup); saveContext.SaveAndMarkReference(ModelMaterials); // Now for other interior data... MetaDatas?.SaveEntries(saveContext); AnimGroup?.SaveEntries(saveContext); Meshes.SaveList(saveContext); ModelMaterials?.SaveEntries(saveContext); Shapes.SaveList(saveContext); MeshNodeVisibilities.SaveList(saveContext); if (HasSkeleton) { saveContext.SaveAndMarkReference(Skeleton); } }
public void Save(SaveContext saveContext) { var utility = saveContext.Utility; CGFXDebug.SaveStart(this, saveContext); // Bone Indices if (BoneReferences != null) { BoneIndices = BoneReferences.Select(b => (uint)b.Index).ToList(); // Rebuild from referenced objects } saveContext.WriteValueListPointerPlaceholder(BoneIndices); // Skinning utility.Write((uint)Skinning); // Faces saveContext.WriteObjectListPointerPlaceholder(Faces); ///////////////////////////// // Begin saving dependent data saveContext.SaveAndMarkReference(BoneIndices); saveContext.SaveAndMarkReference(Faces); Faces.SaveList(saveContext); }
public void Save(SaveContext saveContext) { var utility = saveContext.Utility; CGFXDebug.SaveStart(this, saveContext); saveContext.WriteObjectListPointerPlaceholder(FaceDescriptors); saveContext.WriteValueListPointerPlaceholder(BufferObjs); utility.Write(Flags); utility.Write(CommandAlloc); ///////////////////////////// // Begin saving dependent data saveContext.SaveAndMarkReference(FaceDescriptors); saveContext.SaveAndMarkReference(BufferObjs); FaceDescriptors.SaveList(saveContext); }
protected override void SaveInternal(SaveContext saveContext) { var utility = saveContext.Utility; utility.Write(BufferObject); utility.Write(LocationFlag); utility.Write(RawBuffer.Length); saveContext.IMAGData.EnqueueAndWriteTempRel(RawBuffer); utility.Write(LocationPtr); utility.Write(MemoryArea); utility.Write(VertexStride); saveContext.WriteObjectListPointerPlaceholder(Attributes); ///////////////////////////// // Begin saving dependent data saveContext.SaveAndMarkReference(Attributes); Attributes.SaveList(saveContext); }