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

Method Deserialize

Source/Engine/UI/UIControl.cpp:124–170  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

122}
123
124void UIControl::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier)
125{
126 // Base
127 Actor::Deserialize(stream, modifier);
128
129 DESERIALIZE_MEMBER(NavTargetUp, _navTargetUp);
130 DESERIALIZE_MEMBER(NavTargetDown, _navTargetDown);
131 DESERIALIZE_MEMBER(NavTargetLeft, _navTargetLeft);
132 DESERIALIZE_MEMBER(NavTargetRight, _navTargetRight);
133
134#if !COMPILE_WITHOUT_CSHARP
135 PROFILE_MEM(UI);
136 MTypeObject* typeObj = nullptr;
137 const auto controlMember = stream.FindMember("Control");
138 if (controlMember != stream.MemberEnd())
139 {
140 const StringAnsiView controlType(controlMember->value.GetStringAnsiView());
141 const MClass* type = Scripting::FindClass(controlType);
142 if (type != nullptr)
143 {
144 typeObj = INTERNAL_TYPE_GET_OBJECT(type->GetType());
145 }
146 else
147 {
148 LOG(Warning, "Unknown UIControl type: {0}", String(controlType));
149 }
150 }
151
152 const auto dataMember = stream.FindMember("Data");
153 if (dataMember != stream.MemberEnd())
154 {
155 rapidjson_flax::StringBuffer buffer;
156 rapidjson_flax::Writer<rapidjson_flax::StringBuffer> writer(buffer);
157 dataMember->value.Accept(writer);
158 void* args[2];
159 args[0] = MCore::String::New(buffer.GetString(), (int32)buffer.GetSize());
160 args[1] = typeObj;
161 MObject* exception = nullptr;
162 UIControl_Deserialize->Invoke(GetOrCreateManagedInstance(), args, &exception);
163 if (exception)
164 {
165 MException ex(exception);
166 ex.Log(LogType::Error, TEXT("UIControl::Deserialize"));
167 }
168 }
169#endif
170}
171
172void UIControl::OnParentChanged()
173{

Callers

nothing calls this directly

Calls 13

FindClassFunction · 0.85
FindMemberMethod · 0.80
MemberEndMethod · 0.80
DeserializeFunction · 0.50
StringClass · 0.50
NewFunction · 0.50
GetTypeMethod · 0.45
AcceptMethod · 0.45
GetStringMethod · 0.45
GetSizeMethod · 0.45
InvokeMethod · 0.45

Tested by

no test coverage detected