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

Method Save

Source/Engine/Graphics/Materials/MaterialParams.cpp:899–975  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

897}
898
899void MaterialParams::Save(WriteStream* stream)
900{
901 // Skip serialization if no parameters to save
902 if (IsEmpty())
903 return;
904
905 // Version
906 stream->WriteUint16(3);
907
908 // Size of the collection
909 stream->WriteUint16(Count());
910
911 // Write all parameters
912 for (int32 i = 0; i < Count(); i++)
913 {
914 // Cache
915 auto param = &At(i);
916
917 // Write properties
918 stream->WriteByte(static_cast<byte>(param->_type));
919 stream->Write(param->_paramId);
920 stream->WriteBool(param->_isPublic);
921 stream->WriteBool(param->_override);
922 stream->Write(param->_name, 10421);
923 stream->WriteByte(param->_registerIndex);
924 stream->WriteUint16(param->_offset);
925
926 // Write value
927 Guid id;
928 switch (param->_type)
929 {
930 case MaterialParameterType::Bool:
931 stream->WriteBool(param->_asBool);
932 break;
933 case MaterialParameterType::Integer:
934 case MaterialParameterType::SceneTexture:
935 case MaterialParameterType::ChannelMask:
936 case MaterialParameterType::TextureGroupSampler:
937 stream->WriteInt32(param->_asInteger);
938 break;
939 case MaterialParameterType::Float:
940 stream->WriteFloat(param->_asFloat);
941 break;
942 case MaterialParameterType::Vector2:
943 stream->Write(param->_asVector2);
944 break;
945 case MaterialParameterType::Vector3:
946 stream->Write(param->_asVector3);
947 break;
948 case MaterialParameterType::Vector4:
949 stream->Write((Float4&)param->AsData);
950 break;
951 case MaterialParameterType::Color:
952 stream->Write(param->_asColor);
953 break;
954 case MaterialParameterType::Matrix:
955 stream->Write((Matrix&)param->AsData);
956 break;

Callers

nothing calls this directly

Calls 12

CountFunction · 0.85
GetIDMethod · 0.80
IsEmptyFunction · 0.50
WriteByteMethod · 0.45
WriteMethod · 0.45
WriteBoolMethod · 0.45
WriteInt32Method · 0.45
CountMethod · 0.45
GetPositionMethod · 0.45
CopyMethod · 0.45
GetHandleMethod · 0.45
ReleaseMethod · 0.45

Tested by

no test coverage detected