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

Method Load

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

Source from the content-addressed store, hash-verified

644}
645
646bool MaterialParams::Load(ReadStream* stream)
647{
648 PROFILE_MEM(GraphicsMaterials);
649 bool result = false;
650
651 Clear();
652 if (stream != nullptr && stream->CanRead())
653 {
654 // Version
655 uint16 version;
656 stream->ReadUint16(&version);
657 switch (version)
658 {
659 case 1: // [Deprecated on 15.11.2019, expires on 15.11.2021]
660 {
661 MARK_CONTENT_DEPRECATED();
662
663 // Size of the collection
664 uint16 paramsCount;
665 stream->ReadUint16(&paramsCount);
666 Resize(paramsCount, false);
667
668 // Read all parameters
669 Guid id;
670 for (int32 i = 0; i < paramsCount; i++)
671 {
672 auto param = &At(i);
673
674 // Read properties
675 param->_paramId = Guid::New();
676 param->_type = static_cast<MaterialParameterType>(stream->ReadByte());
677 param->_isPublic = stream->ReadBool();
678 param->_override = param->_isPublic;
679 stream->Read(param->_name, 10421);
680 param->_registerIndex = stream->ReadByte();
681 stream->ReadUint16(&param->_offset);
682
683 // Read value
684 switch (param->_type)
685 {
686 case MaterialParameterType::Bool:
687 param->_asBool = stream->ReadBool();
688 break;
689 case MaterialParameterType::Integer:
690 case MaterialParameterType::SceneTexture:
691 case MaterialParameterType::ChannelMask:
692 case MaterialParameterType::TextureGroupSampler:
693 stream->ReadInt32(&param->_asInteger);
694 break;
695 case MaterialParameterType::Float:
696 stream->ReadFloat(&param->_asFloat);
697 break;
698 case MaterialParameterType::Vector2:
699 stream->Read(param->_asVector2);
700 break;
701 case MaterialParameterType::Vector3:
702 stream->Read(param->_asVector3);
703 break;

Callers

nothing calls this directly

Calls 6

ClearFunction · 0.50
ResizeFunction · 0.50
NewFunction · 0.50
ReadByteMethod · 0.45
ReadMethod · 0.45
ReadInt32Method · 0.45

Tested by

no test coverage detected