MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / LoadTimeline

Method LoadTimeline

Source/Engine/Particles/ParticleSystem.cpp:50–114  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

48}
49
50BytesContainer ParticleSystem::LoadTimeline() const
51{
52 BytesContainer result;
53 ScopeLock lock(Locker);
54
55 // Serialize timeline to stream
56 MemoryWriteStream stream(512);
57 {
58 // Save properties
59 stream.WriteInt32(4);
60 stream.WriteFloat(FramesPerSecond);
61 stream.WriteInt32(DurationFrames);
62
63 // Save emitters
64 const int32 emittersCount = Emitters.Count();
65 stream.WriteInt32(emittersCount);
66
67 // Save tracks
68 const int32 tracksCount = Tracks.Count();
69 stream.WriteInt32(tracksCount);
70 for (int32 i = 0; i < tracksCount; i++)
71 {
72 const auto& track = Tracks[i];
73
74 stream.WriteByte((byte)track.Type);
75 stream.WriteByte((byte)track.Flag);
76 stream.WriteInt32(track.ParentIndex);
77 stream.WriteInt32(track.ChildrenCount);
78 stream.Write(track.Name, -13);
79 stream.Write(track.Color);
80
81 Guid id;
82 switch (track.Type)
83 {
84 case Track::Types::Emitter:
85 id = Emitters[track.AsEmitter.Index].GetID();
86 stream.Write(id);
87 stream.WriteInt32(track.AsEmitter.Index);
88 stream.WriteInt32(track.AsEmitter.StartFrame);
89 stream.WriteInt32(track.AsEmitter.DurationFrames);
90 break;
91 case Track::Types::Folder:
92 break;
93 default:
94 return result;
95 }
96 }
97
98 // Save parameters overrides
99 if (EmittersParametersOverrides.HasItems())
100 {
101 stream.WriteInt32(EmittersParametersOverrides.Count());
102 for (auto i = EmittersParametersOverrides.Begin(); i.IsNotEnd(); ++i)
103 {
104 stream.WriteInt32(i->Key.First);
105 stream.Write(i->Key.Second);
106 stream.Write(i->Value);
107 }

Callers 3

LoadMethod · 0.45
LoadMethod · 0.45
LoadMethod · 0.45

Calls 10

GetIDMethod · 0.80
ToSpanFunction · 0.50
WriteInt32Method · 0.45
CountMethod · 0.45
WriteByteMethod · 0.45
WriteMethod · 0.45
HasItemsMethod · 0.45
BeginMethod · 0.45
IsNotEndMethod · 0.45
CopyMethod · 0.45

Tested by

no test coverage detected