Пример #1
0
        public FMaterialShaderMapId(FArchive Ar)
        {
            var bIsLegacyPackage = Ar.Ver < EUnrealEngineObjectUE4Version.PURGED_FMATERIAL_COMPILE_OUTPUTS;

            if (!bIsLegacyPackage)
            {
                QualityLevel = (EMaterialQualityLevel)Ar.Read <int>();
                FeatureLevel = (ERHIFeatureLevel)Ar.Read <int>();
            }
            else
            {
                var LegacyQualityLevel = (EMaterialQualityLevel)Ar.Read <byte>(); // Is it enum?
            }

            CookedShaderMapIdHash = new FSHAHash(Ar);

            if (!bIsLegacyPackage)
            {
                LayoutParams = new FPlatformTypeLayoutParameters(Ar);
            }
        }
        public FMaterialShaderMapId(FMaterialResourceProxyReader Ar)
        {
            var bIsLegacyPackage = Ar.Ver < (UE4Version)260;

            if (!bIsLegacyPackage)
            {
                QualityLevel = (EMaterialQualityLevel)Ar.Read <int>();
                FeatureLevel = (ERHIFeatureLevel)Ar.Read <int>();
            }
            else
            {
                var legacyQualityLevel = Ar.Read <byte>();
            }

            // Cooked so can assume this is valid
            CookedShaderMapIdHash = new FSHAHash(Ar);

            if (!bIsLegacyPackage)
            {
                LayoutParams = Ar.Read <FPlatformTypeLayoutParameters>();
            }
        }