14enum MetaEddsMipMapFilter
22enum MetaEddsColorSpaceConversion
29class TextureTypeProperty
45enum TextureCheckResult
62 ref array<ref TextureTypeProperty> m_Properties =
new array<ref TextureTypeProperty>;
63 ref array<ref PlatformConfig> m_PlatformConfigs =
new array<ref PlatformConfig>;
65 void TextureType(array<ref TextureType> container,
string name)
69 container.Insert(
this);
72 void Insert(
string name,
typename valType,
int val, array<int> otherVariants = null)
74 auto prop =
new TextureTypeProperty;
76 prop.m_ValType = valType;
78 prop.m_OtherVariants = otherVariants;
79 m_Properties.Insert(prop);
82 void AddBaseConfig(
string platform,
ResourceName configFile)
84 PlatformConfig config =
new PlatformConfig;
85 config.m_Platform = platform;
86 config.m_ConfigFile = configFile;
87 m_PlatformConfigs.Insert(config);
92 foreach (PlatformConfig config : m_PlatformConfigs)
94 if(config.m_Platform == platform)
95 return config.m_ConfigFile;
101 void CopyFrom(TextureType parent)
103 foreach (TextureTypeProperty property : parent.m_Properties)
105 m_Properties.Insert(property);
108 foreach (PlatformConfig config : parent.m_PlatformConfigs)
110 m_PlatformConfigs.Insert(config);
114 bool IsType(
string path)
118 return pathNoExt.EndsWith(m_PostFix);
127 private static const string Conversion =
"Conversion";
128 private static const string ColorSpace =
"ColorSpace";
129 private static const string GenerateMips =
"GenerateMips";
130 private static const string GenerateCubemap =
"GenerateCubemap";
131 private static const string MipMapFilter =
"MipMapFilter";
135 m_Types =
new array<ref TextureType>();
141 COType.Insert(ColorSpace, MetaEddsColorSpaceConversion, MetaEddsColorSpaceConversion.ToSrgb);
142 COType.AddBaseConfig(
"PC",
"{EAB5DE3219F9CBA8}configs/ResourceTypes/PC/TextureColorMap.conf");
143 COType.AddBaseConfig(
"XBOX_ONE",
"{91D862F89991BFBE}configs/ResourceTypes/XBOX_ONE/TextureColorMap.conf");
144 COType.AddBaseConfig(
"XBOX_SERIES",
"{5FEAED1642ECE679}configs/ResourceTypes/XBOX_SERIES/TextureColorMap.conf");
145 COType.AddBaseConfig(
"PS4",
"{12273E1A0928F0C4}configs/ResourceTypes/PS4/TextureColorMap.conf");
146 COType.AddBaseConfig(
"PS5",
"{531A0D167B1ABD97}configs/ResourceTypes/PS5/TextureColorMap.conf");
147 COType.AddBaseConfig(
"HEADLESS",
"{BEAF5CD0C438676E}configs/ResourceTypes/HEADLESS/TextureColorMap.conf");
150 BCType.CopyFrom(COType);
153 BCRType.CopyFrom(COType);
156 BCHType.CopyFrom(COType);
159 CAType.CopyFrom(COType);
162 BCAType.CopyFrom(COType);
165 MCType.CopyFrom(COType);
168 MCAType.CopyFrom(COType);
171 MLODType.CopyFrom(COType);
177 EMType.Insert(ColorSpace, MetaEddsColorSpaceConversion, MetaEddsColorSpaceConversion.ToSrgb);
178 EMType.AddBaseConfig(
"PC",
"{EAB5DE3219F9CBA8}configs/ResourceTypes/PC/TextureColorMap.conf");
179 EMType.AddBaseConfig(
"XBOX_ONE",
"{91D862F89991BFBE}configs/ResourceTypes/XBOX_ONE/TextureColorMap.conf");
180 EMType.AddBaseConfig(
"XBOX_SERIES",
"{5FEAED1642ECE679}configs/ResourceTypes/XBOX_SERIES/TextureColorMap.conf");
181 EMType.AddBaseConfig(
"PS4",
"{12273E1A0928F0C4}configs/ResourceTypes/PS4/TextureColorMap.conf");
182 EMType.AddBaseConfig(
"PS5",
"{531A0D167B1ABD97}configs/ResourceTypes/PS5/TextureColorMap.conf");
183 EMType.AddBaseConfig(
"HEADLESS",
"{BEAF5CD0C438676E}configs/ResourceTypes/HEADLESS/TextureColorMap.conf");
189 MCRType.Insert(ColorSpace, MetaEddsColorSpaceConversion, MetaEddsColorSpaceConversion.ToLinear, {MetaEddsColorSpaceConversion.ToSrgb});
190 MCRType.AddBaseConfig(
"PC",
"{A6CC0A2F9DB86CBE}configs/ResourceTypes/PC/TextureMCRMap.conf");
191 MCRType.AddBaseConfig(
"XBOX_ONE",
"{224B78299A038E4A}configs/ResourceTypes/XBOX_ONE/TextureMCRMap.conf");
192 MCRType.AddBaseConfig(
"XBOX_SERIES",
"{B5FA7506CF384E79}configs/ResourceTypes/XBOX_SERIES/TextureMCRMap.conf");
193 MCRType.AddBaseConfig(
"PS4",
"{E7A6FCCE55593073}configs/ResourceTypes/PS4/TextureMCRMap.conf");
194 MCRType.AddBaseConfig(
"PS5",
"{E3BE705DB85AD3CA}configs/ResourceTypes/PS5/TextureMCRMap.conf");
195 MCRType.AddBaseConfig(
"HEADLESS",
"{D49C34F7354B6F47}configs/ResourceTypes/HEADLESS/TextureMCRMap.conf");
201 NOType.AddBaseConfig(
"PC",
"{CEA87F769FD618D2}configs/ResourceTypes/PC/TextureNormalMap.conf");
202 NOType.AddBaseConfig(
"XBOX_ONE",
"{5B84FAB5D39FB8AA}configs/ResourceTypes/XBOX_ONE/TextureNormalMap.conf");
203 NOType.AddBaseConfig(
"XBOX_SERIES",
"{1B409AA3788B720F}configs/ResourceTypes/XBOX_SERIES/TextureNormalMap.conf");
204 NOType.AddBaseConfig(
"PS4",
"{9533DFD9EDDCEDD2}configs/ResourceTypes/PS4/TextureNormalMap.conf");
205 NOType.AddBaseConfig(
"PS5",
"{30F530559C17A96E}configs/ResourceTypes/PS5/TextureNormalMap.conf");
206 NOType.AddBaseConfig(
"HEADLESS",
"{FC84ABE4B37D0DA0}configs/ResourceTypes/HEADLESS/TextureNormalMap.conf");
209 NType.CopyFrom(NOType);
212 NOHQType.CopyFrom(NOType);
222 NMOType.AddBaseConfig(
"PC",
"{A968DA7F9A1E3A3E}configs/ResourceTypes/PC/TextureNType.conf");
223 NMOType.AddBaseConfig(
"XBOX_ONE",
"{7F6A4D372443A88D}configs/ResourceTypes/XBOX_ONE/TextureNType.conf");
224 NMOType.AddBaseConfig(
"XBOX_SERIES",
"{065D289C7FF8B20D}configs/ResourceTypes/XBOX_SERIES/TextureNType.conf");
225 NMOType.AddBaseConfig(
"PS4",
"{29DF4A6CBBABE916}configs/ResourceTypes/PS4/TextureNType.conf");
226 NMOType.AddBaseConfig(
"PS5",
"{DED3C8CA8494EA99}configs/ResourceTypes/PS5/TextureNType.conf");
227 NMOType.AddBaseConfig(
"HEADLESS",
"{AFD658E4D0EB5FBC}configs/ResourceTypes/HEADLESS/TextureNType.conf");
230 NHOType.CopyFrom(NMOType);
233 NTCType.CopyFrom(NMOType);
236 NTOType.CopyFrom(NMOType);
241 VFXType.AddBaseConfig(
"PC",
"{4EC6C20A754D338D}configs/ResourceTypes/PC/TextureEffect.conf");
242 VFXType.AddBaseConfig(
"XBOX_ONE",
"{CA41B00C72F6D179}configs/ResourceTypes/XBOX_ONE/TextureEffect.conf");
243 VFXType.AddBaseConfig(
"XBOX_SERIES",
"{5DF0BD2327CD114A}configs/ResourceTypes/XBOX_SERIES/TextureEffect.conf");
244 VFXType.AddBaseConfig(
"PS4",
"{0FAC34EBBDAC6F40}configs/ResourceTypes/PS4/TextureEffect.conf");
245 VFXType.AddBaseConfig(
"PS5",
"{0BB4B87850AF8CF9}configs/ResourceTypes/PS5/TextureEffect.conf");
246 VFXType.AddBaseConfig(
"HEADLESS",
"{3C96FCD2DDBE3074}configs/ResourceTypes/HEADLESS/TextureEffect.conf");
252 MASKQType.AddBaseConfig(
"PC",
"{2231C67ACC4BB0AC}configs/ResourceTypes/PC/TextureMask.conf");
253 MASKQType.AddBaseConfig(
"XBOX_ONE",
"{3B78A666261DD8B4}configs/ResourceTypes/XBOX_ONE/TextureMask.conf");
254 MASKQType.AddBaseConfig(
"XBOX_SERIES",
"{9A79E1F659B378E7}configs/ResourceTypes/XBOX_SERIES/TextureMask.conf");
255 MASKQType.AddBaseConfig(
"PS4",
"{5CB64ED6EEBDE368}configs/ResourceTypes/PS4/TextureMask.conf");
256 MASKQType.AddBaseConfig(
"PS5",
"{64796311C22F7B3C}configs/ResourceTypes/PS5/TextureMask.conf");
257 MASKQType.AddBaseConfig(
"HEADLESS",
"{0B025DFAF55852CD}configs/ResourceTypes/HEADLESS/TextureMask.conf");
261 MASK1QType.AddBaseConfig(
"PC",
"{51097E750D3FCE37}configs/ResourceTypes/PC/TextureMask1.conf");
262 MASK1QType.AddBaseConfig(
"XBOX_ONE",
"{870BE93DB3625C84}configs/ResourceTypes/XBOX_ONE/TextureMask1.conf");
263 MASK1QType.AddBaseConfig(
"XBOX_SERIES",
"{FE3C8C96E8D94604}configs/ResourceTypes/XBOX_SERIES/TextureMask1.conf");
264 MASK1QType.AddBaseConfig(
"PS4",
"{D1BEEE662C8A1D1F}configs/ResourceTypes/PS4/TextureMask1.conf");
265 MASK1QType.AddBaseConfig(
"PS5",
"{26B26CC013B51E90}configs/ResourceTypes/PS5/TextureMask1.conf");
266 MASK1QType.AddBaseConfig(
"HEADLESS",
"{57B7FCEE47CAABB5}configs/ResourceTypes/HEADLESS/TextureMask1.conf");
270 MASK2QType.AddBaseConfig(
"PC",
"{0FE15736B2B24038}configs/ResourceTypes/PC/TextureMask2.conf");
271 MASK2QType.AddBaseConfig(
"XBOX_ONE",
"{D9E3C07E0CEFD28B}configs/ResourceTypes/XBOX_ONE/TextureMask2.conf");
272 MASK2QType.AddBaseConfig(
"XBOX_SERIES",
"{A0D4A5D55754C80B}configs/ResourceTypes/XBOX_SERIES/TextureMask2.conf");
273 MASK2QType.AddBaseConfig(
"PS4",
"{8F56C72593079310}configs/ResourceTypes/PS4/TextureMask2.conf");
274 MASK2QType.AddBaseConfig(
"PS5",
"{785A4583AC38909F}configs/ResourceTypes/PS5/TextureMask2.conf");
275 MASK2QType.AddBaseConfig(
"HEADLESS",
"{095FD5ADF84725BA}configs/ResourceTypes/HEADLESS/TextureMask2.conf");
280 CRMType.CopyFrom(MASKQType);
285 CMASKType.Insert(GenerateMips,
bool,
false);
286 CMASKType.AddBaseConfig(
"PC",
"{6733F446131BB044}configs/ResourceTypes/PC/TextureCMask.conf");
287 CMASKType.AddBaseConfig(
"XBOX_ONE",
"{B131630EAD4622F8}configs/ResourceTypes/XBOX_ONE/TextureCMask.conf");
288 CMASKType.AddBaseConfig(
"XBOX_SERIES",
"{C80606A5F6FD3877}configs/ResourceTypes/XBOX_SERIES/TextureCMask.conf");
289 CMASKType.AddBaseConfig(
"PS4",
"{E784645532AE636D}configs/ResourceTypes/PS4/TextureCMask.conf");
290 CMASKType.AddBaseConfig(
"PS5",
"{1088E6F30D9160E3}configs/ResourceTypes/PS5/TextureCMask.conf");
291 CMASKType.AddBaseConfig(
"HEADLESS",
"{618D76DD59EED5C6}configs/ResourceTypes/HEADLESS/TextureCMask.conf");
298 AType.AddBaseConfig(
"PC",
"{6B149ECE3A72EF45}configs/ResourceTypes/PC/TextureOneChannel.conf");
299 AType.AddBaseConfig(
"XBOX_ONE",
"{DC95471339A9BC2B}configs/ResourceTypes/XBOX_ONE/TextureOneChannel.conf");
300 AType.AddBaseConfig(
"XBOX_SERIES",
"{C2F053ADC70F3804}configs/ResourceTypes/XBOX_SERIES/TextureOneChannel.conf");
301 AType.AddBaseConfig(
"PS4",
"{19FBA5E0ACB1C98E}configs/ResourceTypes/PS4/TextureOneChannel.conf");
302 AType.AddBaseConfig(
"PS5",
"{EE57BA009CACD0D1}configs/ResourceTypes/PS5/TextureOneChannel.conf");
303 AType.AddBaseConfig(
"HEADLESS",
"{6866463573917E52}configs/ResourceTypes/HEADLESS/TextureOneChannel.conf");
306 HType.CopyFrom(AType);
309 OType.CopyFrom(AType);
312 AOType.CopyFrom(AType);
318 PLUTType.Insert(MipMapFilter, MetaEddsMipMapFilter, MetaEddsMipMapFilter.Gauss);
319 PLUTType.AddBaseConfig(
"PC",
"{15216161DB8E7A0D}configs/ResourceTypes/PC/TexturePortalLUT.conf");
320 PLUTType.AddBaseConfig(
"XBOX_ONE",
"{E19B9C1FD4491FD4}configs/ResourceTypes/XBOX_ONE/TexturePortalLUT.conf");
321 PLUTType.AddBaseConfig(
"XBOX_SERIES",
"{9BA8570DDBA5283F}configs/ResourceTypes/XBOX_SERIES/TexturePortalLUT.conf");
322 PLUTType.AddBaseConfig(
"PS4",
"{9D1ACBBD33CC8473}configs/ResourceTypes/PS4/TexturePortalLUT.conf");
323 PLUTType.AddBaseConfig(
"PS5",
"{FE193D54570A6317}configs/ResourceTypes/PS5/TexturePortalLUT.conf");
324 PLUTType.AddBaseConfig(
"HEADLESS",
"{469BCD4EB4ABAADE}configs/ResourceTypes/HEADLESS/TexturePortalLUT.conf");
329 layerType.AddBaseConfig(
"PC",
"{A59F335F96C4442F}configs/ResourceTypes/PC/TextureTerrainLayer.conf");
330 layerType.AddBaseConfig(
"XBOX_ONE",
"{9843D16A29542D5A}configs/ResourceTypes/XBOX_ONE/TextureTerrainLayer.conf");
331 layerType.AddBaseConfig(
"XBOX_SERIES",
"{2071F9D39E062268}configs/ResourceTypes/XBOX_SERIES/TextureTerrainLayer.conf");
332 layerType.AddBaseConfig(
"PS4",
"{4C431036F57D4D58}configs/ResourceTypes/PS4/TextureTerrainLayer.conf");
333 layerType.AddBaseConfig(
"PS5",
"{BA3AFE83BEFD6794}configs/ResourceTypes/PS5/TextureTerrainLayer.conf");
334 layerType.AddBaseConfig(
"HEADLESS",
"{3B38AD285230D19F}configs/ResourceTypes/HEADLESS/TextureTerrainLayer.conf");
338 supertextureType.Insert(ColorSpace, MetaEddsColorSpaceConversion, MetaEddsColorSpaceConversion.ToSrgb);
339 supertextureType.AddBaseConfig(
"PC",
"{CBA1266690ABD336}configs/ResourceTypes/PC/TextureTerrainSuper.conf");
340 supertextureType.AddBaseConfig(
"XBOX_ONE",
"{F67DC4532F3BBA43}configs/ResourceTypes/XBOX_ONE/TextureTerrainSuper.conf");
341 supertextureType.AddBaseConfig(
"XBOX_SERIES",
"{4E4FECEA9869B571}configs/ResourceTypes/XBOX_SERIES/TextureTerrainSuper.conf");
342 supertextureType.AddBaseConfig(
"PS4",
"{227D050FF312DA41}configs/ResourceTypes/PS4/TextureTerrainSuper.conf");
343 supertextureType.AddBaseConfig(
"PS5",
"{D404EBBAB892F08D}configs/ResourceTypes/PS5/TextureTerrainSuper.conf");
344 supertextureType.AddBaseConfig(
"HEADLESS",
"{5506B811545F4686}configs/ResourceTypes/HEADLESS/TextureTerrainSuper.conf");
349 normaltextureType.AddBaseConfig(
"PC",
"{835E083C88C3D9C3}configs/ResourceTypes/PC/TextureTerrainNormal.conf");
350 normaltextureType.AddBaseConfig(
"XBOX_ONE",
"{6C5EFFA712A52100}configs/ResourceTypes/XBOX_ONE/TextureTerrainNormal.conf");
351 normaltextureType.AddBaseConfig(
"XBOX_SERIES",
"{90ADE65A903F3042}configs/ResourceTypes/XBOX_SERIES/TextureTerrainNormal.conf");
352 normaltextureType.AddBaseConfig(
"PS4",
"{6F6E5A1432381FD2}configs/ResourceTypes/PS4/TextureTerrainNormal.conf");
353 normaltextureType.AddBaseConfig(
"PS5",
"{5CEA2418C9F889F8}configs/ResourceTypes/PS5/TextureTerrainNormal.conf");
354 normaltextureType.AddBaseConfig(
"HEADLESS",
"{EAB38BDFD096C0A6}configs/ResourceTypes/HEADLESS/TextureTerrainNormal.conf");
358 UITextureAtlasType.Insert(GenerateMips,
bool,
false);
359 UITextureAtlasType.AddBaseConfig(
"PC",
"{1D692833852EC72A}configs/ResourceTypes/PC/TextureUIAtlas.conf");
360 UITextureAtlasType.AddBaseConfig(
"XBOX_ONE",
"{96767353535A4256}configs/ResourceTypes/XBOX_ONE/TextureUIAtlas.conf");
361 UITextureAtlasType.AddBaseConfig(
"XBOX_SERIES",
"{8A3A5BA26FD3DE70}configs/ResourceTypes/XBOX_SERIES/TextureUIAtlas.conf");
362 UITextureAtlasType.AddBaseConfig(
"PS4",
"{962DE8F3FC2848A3}configs/ResourceTypes/PS4/TextureUIAtlas.conf");
363 UITextureAtlasType.AddBaseConfig(
"PS5",
"{BED5DFAD2A554849}configs/ResourceTypes/PS5/TextureUIAtlas.conf");
364 UITextureAtlasType.AddBaseConfig(
"HEADLESS",
"{15892FB1C3E30D2C}configs/ResourceTypes/HEADLESS/TextureUIAtlas.conf");
368 uiType.AddBaseConfig(
"PC",
"{3549C665CAA9A8EA}configs/ResourceTypes/PC/TextureUI.conf");
369 uiType.AddBaseConfig(
"XBOX_ONE",
"{5E6D8E2B87D36B34}configs/ResourceTypes/XBOX_ONE/TextureUI.conf");
370 uiType.AddBaseConfig(
"XBOX_SERIES",
"{03194CD39583675A}configs/ResourceTypes/XBOX_SERIES/TextureUI.conf");
371 uiType.AddBaseConfig(
"PS4",
"{A752014F057BCE60}configs/ResourceTypes/PS4/TextureUI.conf");
372 uiType.AddBaseConfig(
"PS5",
"{8BEB72EF65A8FB2E}configs/ResourceTypes/PS5/TextureUI.conf");
373 uiType.AddBaseConfig(
"HEADLESS",
"{E604D15366D985DF}configs/ResourceTypes/HEADLESS/TextureUI.conf");
377 uiTypeUncompressed.AddBaseConfig(
"PC",
"{D256EAFDC1226362}configs/ResourceTypes/PC/TextureUIUncompressed.conf");
378 uiTypeUncompressed.AddBaseConfig(
"XBOX_ONE",
"{712BC6681ADE741A}configs/ResourceTypes/XBOX_ONE/TextureUIUncompressed.conf");
379 uiTypeUncompressed.AddBaseConfig(
"XBOX_SERIES",
"{B613AECC9D415504}configs/ResourceTypes/XBOX_SERIES/TextureUIUncompressed.conf");
380 uiTypeUncompressed.AddBaseConfig(
"PS4",
"{9A726D592B629239}configs/ResourceTypes/PS4/TextureUIUncompressed.conf");
381 uiTypeUncompressed.AddBaseConfig(
"PS5",
"{30FCD9651534E6BB}configs/ResourceTypes/PS5/TextureUIUncompressed.conf");
382 uiTypeUncompressed.AddBaseConfig(
"HEADLESS",
"{A677FEF8099B272E}configs/ResourceTypes/HEADLESS/TextureUIUncompressed.conf");
386 environmentMapType.AddBaseConfig(
"PC",
"{009B945B41B128FC}configs/ResourceTypes/PC/TextureEnvMap.conf");
387 environmentMapType.AddBaseConfig(
"XBOX_ONE",
"{841CE65D460ACA08}configs/ResourceTypes/XBOX_ONE/TextureEnvMap.conf");
388 environmentMapType.AddBaseConfig(
"XBOX_SERIES",
"{13ADEB7213310A3B}configs/ResourceTypes/XBOX_SERIES/TextureEnvMap.conf");
389 environmentMapType.AddBaseConfig(
"PS4",
"{41F162BA89507431}configs/ResourceTypes/PS4/TextureEnvMap.conf");
390 environmentMapType.AddBaseConfig(
"PS5",
"{45E9EE2964539788}configs/ResourceTypes/PS5/TextureEnvMap.conf");
391 environmentMapType.AddBaseConfig(
"HEADLESS",
"{72CBAA83E9422B05}configs/ResourceTypes/HEADLESS/TextureEnvMap.conf");
395 lutType.AddBaseConfig(
"PC",
"{FDA8724761A5E880}configs/ResourceTypes/PC/TextureLut.conf");
396 lutType.AddBaseConfig(
"XBOX_ONE",
"{9AE8215636729E7A}configs/ResourceTypes/XBOX_ONE/TextureLut.conf");
397 lutType.AddBaseConfig(
"XBOX_SERIES",
"{CBB7E88AA7DE5748}configs/ResourceTypes/XBOX_SERIES/TextureLut.conf");
398 lutType.AddBaseConfig(
"PS4",
"{F34906600DC4FE84}configs/ResourceTypes/PS4/TextureLut.conf");
399 lutType.AddBaseConfig(
"PS5",
"{5D15FD30EDF58E3B}configs/ResourceTypes/PS5/TextureLut.conf");
400 lutType.AddBaseConfig(
"HEADLESS",
"{3D6CF9FDEC095638}configs/ResourceTypes/HEADLESS/TextureLut.conf");
404 fontType.AddBaseConfig(
"PC",
"{F18523FA5BAAEA63}configs/ResourceTypes/PC/TextureFonts.conf");
405 fontType.AddBaseConfig(
"XBOX_ONE",
"{02B393E0229C74CB}configs/ResourceTypes/XBOX_ONE/TextureFonts.conf");
406 fontType.AddBaseConfig(
"XBOX_SERIES",
"{85ECC27BD918BA89}configs/ResourceTypes/XBOX_SERIES/TextureFonts.conf");
407 fontType.AddBaseConfig(
"PS4",
"{3C102C974458DF07}configs/ResourceTypes/PS4/TextureFonts.conf");
408 fontType.AddBaseConfig(
"PS5",
"{863E314F45203AC4}configs/ResourceTypes/PS5/TextureFonts.conf");
409 fontType.AddBaseConfig(
"HEADLESS",
"{D20F8633D63483FA}configs/ResourceTypes/HEADLESS/TextureFonts.conf");
414 unspecifiedType.AddBaseConfig(
"PC",
"{DC555BD399D92412}configs/ResourceTypes/PC/TextureUnspecified.conf");
415 unspecifiedType.AddBaseConfig(
"XBOX_ONE",
"{8F13AE697AE60784}configs/ResourceTypes/XBOX_ONE/TextureUnspecified.conf");
416 unspecifiedType.AddBaseConfig(
"XBOX_SERIES",
"{D28E01700D90F52C}configs/ResourceTypes/XBOX_SERIES/TextureUnspecified.conf");
417 unspecifiedType.AddBaseConfig(
"PS4",
"{C6CD3D8752652D2A}configs/ResourceTypes/PS4/TextureUnspecified.conf");
418 unspecifiedType.AddBaseConfig(
"PS5",
"{6248F71B9D7C1E93}configs/ResourceTypes/PS5/TextureUnspecified.conf");
419 unspecifiedType.AddBaseConfig(
"HEADLESS",
"{699C82A6807668A7}configs/ResourceTypes/HEADLESS/TextureUnspecified.conf");
422 TextureType FindTextureType(
string absFileName)
424 TextureType unspecifiedType = null;
426 foreach (TextureType texType :
m_Types)
428 if (texType.m_PostFix ==
"")
430 unspecifiedType = texType;
434 if (texType.IsType(absFileName))
438 return unspecifiedType;
444 TextureCheckResult checkRes;
447 combined |= checkRes;
448 if (checkRes == TextureCheckResult.UnfixedFatalIssue)
451 TextureType matchingType = FindTextureType(
resourceName);
452 checkRes = CheckAncestors(op,
resourceName, meta, matchingType);
453 combined |= checkRes;
454 if (checkRes == TextureCheckResult.UnfixedFatalIssue)
457 checkRes = CheckUnnecessarySettingInPc(op,
resourceName, meta);
458 combined |= checkRes;
459 if (checkRes == TextureCheckResult.UnfixedFatalIssue)
462 checkRes = CheckSuspiciousNonPcSetting(op,
resourceName, meta);
463 combined |= checkRes;
464 if (checkRes == TextureCheckResult.UnfixedFatalIssue)
467 checkRes = CheckWrongPropertyValues(op,
resourceName, meta, matchingType);
468 combined |= checkRes;
469 if (checkRes == TextureCheckResult.UnfixedFatalIssue)
477 BaseContainerList configurations = meta.GetObjectArray(
"Configurations");
483 return TextureCheckResult.UnfixedFatalIssue;
486 BaseContainer confPc = configurations.Get(0);
487 string confClassPc = confPc.GetClassName();
488 if (confClassPc ==
"EDDSResourceClass")
493 return TextureCheckResult.UnfixedFatalIssue;
496 int numVarsPc = confPc.GetNumVars();
497 TextureCheckResult res = TextureCheckResult.NothingChanged;
498 for (
int iConf = 1, countConf = configurations.Count(); iConf < countConf; iConf++)
500 BaseContainer confDerived = configurations.Get(iConf);
501 string confName = confDerived.GetName();
502 string confClassDerived = confDerived.GetClassName();
503 if (confClassPc != confClassDerived)
508 "@\"%1\" : Configuration '%2' has wrong type: expected: '%3', found: '%4'",
512 res = TextureCheckResult.UnfixedFatalIssue;
515 int numVarsDerived = confDerived.GetNumVars();
516 if (numVarsPc != numVarsDerived)
521 "@\"%1\" : Configuration '%1' has wrong num vars: expected: '%2', found: '%3'",
525 res = TextureCheckResult.UnfixedFatalIssue;
534 BaseContainerList configurations = meta.GetObjectArray(
"Configurations");
536 bool unfixedFatalIssue =
false;
537 bool somethingChanged =
false;
538 for (
int iConf = 0, countConf = configurations.Count(); iConf < countConf; iConf++)
540 BaseContainer config = configurations.Get(iConf);
541 string configName = config.GetName();
542 ResourceName baseConfig =
type.GetBaseConfig(configName);
548 PrintFormat(
"@\"%1\" : Ancestor config missing for configuration '%2'.",
553 unfixedFatalIssue =
true;
557 BaseContainer ancestor = config.GetAncestor();
558 if (!ancestor || ancestor.GetResourceName() != baseConfig)
562 PrintFormat(
"@\"%1\" : Incorrect ancestor on configuration '%2'",
568 config.SetAncestor(baseConfig);
569 somethingChanged =
true;
573 unfixedFatalIssue =
true;
578 if (unfixedFatalIssue)
579 return TextureCheckResult.UnfixedFatalIssue;
580 else if (somethingChanged)
581 return TextureCheckResult.SomethingChanged;
583 return TextureCheckResult.NothingChanged;
588 BaseContainerList configurations = meta.GetObjectArray(
"Configurations");
589 BaseContainer confPc = configurations[0];
590 BaseContainer confPcAncestor = confPc.GetAncestor();
592 return TextureCheckResult.NothingChanged;
594 bool propertiesModified =
false;
595 for (
int iVar = 0, countVar = confPc.GetNumVars(); iVar < countVar; iVar++)
597 string name = confPc.GetVarName(iVar);
598 if (!confPc.IsVariableSetDirectly(name))
604 float propValPc, propValPcAncestor;
605 if (!confPc.Get(name, propValPc))
607 if (!confPcAncestor.Get(name, propValPcAncestor))
610 if (propValPc == propValPcAncestor)
615 "@\"%1\" : Configuration 'PC' has directly set value for property '%2', even though same value is inherited from ancestor.",
622 propertiesModified =
true;
623 confPc.ClearVariable(name);
629 int propValPc, propValPcAncestor;
630 if (!confPc.Get(name, propValPc))
632 if (!confPcAncestor.Get(name, propValPcAncestor))
635 if (propValPc == propValPcAncestor)
640 "@\"%1\" : Configuration 'PC' has directly set value for property '%2', even though same value is inherited from ancestor.",
647 propertiesModified =
true;
648 confPc.ClearVariable(name);
654 if (propertiesModified)
655 return TextureCheckResult.SomethingChanged;
657 return TextureCheckResult.NothingChanged;
662 BaseContainerList configurations = meta.GetObjectArray(
"Configurations");
663 BaseContainer confPc = configurations[0];
664 bool propertiesModified =
false;
665 bool fatalIssue =
false;
666 for (
int iConf = 1, countConf = configurations.Count(); iConf < countConf; iConf++)
668 BaseContainer confDerived = configurations.Get(iConf);
669 string confName = confDerived.GetName();
671 for (
int iVar = 0, countVar = confPc.GetNumVars(); iVar < countVar; iVar++)
673 string namePc = confPc.GetVarName(iVar);
674 string nameDerived = confDerived.GetVarName(iVar);
675 if (namePc != nameDerived)
680 "@\"%1\" : Configuration '%2' has wrong var %3 name: expected: '%4', actual: '%5'",
690 bool isSetDirectlyPc = confPc.IsVariableSetDirectly(namePc);
691 bool isSetDirectlyDerived = confDerived.IsVariableSetDirectly(nameDerived);
696 float propValPc, propValDerived;
697 if (!confPc.Get(namePc, propValPc))
700 if (!confDerived.Get(nameDerived, propValDerived))
703 if (propValPc != propValDerived)
708 "@\"%1\" : Configuration '%2' has wrong value in property '%3': expected '%4', found '%5'",
709 resourceName, confName, nameDerived, propValPc, propValDerived
715 propertiesModified =
true;
716 confDerived.Set(nameDerived, propValPc);
722 int propValPc, propValDerived;
723 if (!confPc.Get(namePc, propValPc))
726 if (!confDerived.Get(nameDerived, propValDerived))
729 if (propValPc != propValDerived)
734 "@\"%1\" : Configuration '%2' has wrong value in property '%3': expected '%4', found '%5'",
735 resourceName, confName, nameDerived, propValPc, propValDerived
741 propertiesModified =
true;
742 confDerived.Set(nameDerived, propValPc);
747 else if (isSetDirectlyDerived)
751 float propValDerived;
752 if (!confDerived.Get(nameDerived, propValDerived))
758 "@\"%1\" : Configuration '%2' has property '%3' set directly while 'PC' doesn't. value: '%4'",
765 propertiesModified =
true;
766 confDerived.ClearVariable(nameDerived);
772 if (!confDerived.Get(nameDerived, propValDerived))
778 "@\"%1\" : Configuration '%2' has property '%3' set directly while 'PC' doesn't. value: '%4'",
785 propertiesModified =
true;
786 confDerived.ClearVariable(nameDerived);
794 return TextureCheckResult.UnfixedFatalIssue;
795 else if (propertiesModified)
796 return TextureCheckResult.SomethingChanged;
798 return TextureCheckResult.NothingChanged;
805 return TextureCheckResult.NothingChanged;
807 BaseContainerList configurations = meta.GetObjectArray(
"Configurations");
808 BaseContainer confPc = configurations[0];
810 TextureCheckResult res = TextureCheckResult.NothingChanged;
811 foreach (TextureTypeProperty prop :
type.m_Properties)
814 if (confPc.Get(prop.m_Name, propVal))
816 int propValCorrect = prop.m_Val;
817 bool isIncorrect = propVal != propValCorrect;
818 if (isIncorrect && prop.m_OtherVariants)
820 foreach (
int otherVariant : prop.m_OtherVariants)
822 if (otherVariant == propVal)
834 string valName, valNameCorrect;
835 if (prop.m_ValType ==
bool)
837 if (propVal) { valName =
"true"; }
else { valName =
"false"; }
838 if (propValCorrect) { valNameCorrect =
"true"; }
else { valNameCorrect =
"false"; }
842 valName =
typename.EnumToString(prop.m_ValType, propVal);
843 valNameCorrect =
typename.EnumToString(prop.m_ValType, propValCorrect);
845 PrintFormat(
"@\"%1\" : Property '%2' has wrong value ('%3' instead of '%4').",
852 res = TextureCheckResult.SomethingChanged;
853 confPc.Set(prop.m_Name, propValCorrect);
866 res = TextureCheckResult.SomethingChanged;
867 confPc.Set(prop.m_Name, prop.m_Val);
878 override bool IsType(
string path)
880 string fntPath = FilePath.ReplaceExtension(
path,
"fnt");
881 return FileIO.FileExists(fntPath);
911class TextureImportPlugin: ResourceManagerPlugin
916 ref TextureTypes m_TextureTypes =
new TextureTypes();
919 bool IsImage(
string className)
922 className ==
"PNGResourceClass" ||
923 className ==
"DDSResourceClass" ||
924 className ==
"TGAResourceClass" ||
925 className ==
"TIFFResourceClass" ||
926 className ==
"PNGResourceClass" ||
927 className ==
"HDRResourceClass" ||
928 className ==
"JPGResourceClass";
932 override void OnRegisterResource(
string absFileName,
BaseContainer metaFile)
943 override void OnRenameResource(
string absFileNameOld,
string absFileNameNew,
BaseContainer metaFile)
956 Workbench.ScriptDialog(
"Configure Texture Import Plugin",
"",
this);
963[
WorkbenchPluginAttribute(
"Batch texture processor",
"Perform simple checks and fixes on many textures",
"",
"", {
"ResourceManager"},
"",0xf1c5)]
964class BatchTextureProcessorPlugin: WorkbenchPlugin
966 [
Attribute(
"",
UIWidgets.FileNamePicker,
"Check only textures whose path starts with given filter string.",
params:
"folders")]
967 string PathStartsWith;
969 [
Attribute(
"",
UIWidgets.EditBox,
"Check only textures whose path contains given filter string.")]
972 [
Attribute(
"",
UIWidgets.EditBox,
"Check only textures whose path ends with given filter string.")]
976 bool ReportMissingMetaFile;
981 desc:
"Check whether configurations are present and have correct classes."
988 desc:
"Check whether configurations have correct ancestors."
995 desc:
"Check whether PC configuration is directly setting same value as inherited from ancestor"
1002 desc:
"Non-PC configuration property having different value than what is directly set in PC."
1009 desc:
"Check whether properties have values matching presets."
1014 bool ReimportChanged;
1016 ref TextureTypes m_TextureTypes =
new TextureTypes();
1017 ref array<string> m_Resources =
new array<string>;
1034 bool TestAgainstFilter(
string resource)
1036 int resourceLength = resource.Length();
1038 int prefixLength = PathStartsWith.Length();
1039 if (resourceLength < prefixLength)
1042 int suffixLength = PathEndsWith.Length();
1043 if (resourceLength < suffixLength)
1046 int subLength = PathContains.Length();
1047 if (resourceLength < subLength)
1051 if (!resource.StartsWith(PathStartsWith))
1054 if (!resource.EndsWith(PathEndsWith))
1057 if (!resource.Contains(PathContains))
1066 m_Resources.Insert(filePath);
1072 if (!Workbench.ScriptDialog(
"Configure batch texture processor",
"",
this))
1075 PathStartsWith.ToLower();
1076 PathContains.ToLower();
1077 PathEndsWith.ToLower();
1082 filter.fileExtensions = {
"edds"};
1087 ResourceManager rb = Workbench.GetModule(ResourceManager);
1088 WBProgressDialog progress =
new WBProgressDialog(
"Processing...", rb);
1090 float count = m_Resources.Count();
1092 array<string> toRebuild =
new array<string>;
1094 foreach (
int resourceIdx,
string resource : m_Resources)
1096 progress.SetProgress(resourceIdx / count);
1098 if (!TestAgainstFilter(resource))
1101 MetaFile meta = rb.GetMetaFile(resource);
1104 if (ReportMissingMetaFile)
1105 PrintFormat(
"@\"%1\" : Meta-file is missing.", resource);
1111 bool metaChanged =
false;
1112 TextureCheckResult checkRes = TextureCheckResult.NothingChanged;
1114 if (checkRes != TextureCheckResult.UnfixedFatalIssue)
1116 checkRes = m_TextureTypes.CheckConfigurations(CheckConfigurations, resource, meta);
1117 if (checkRes == TextureCheckResult.SomethingChanged)
1121 if (checkRes != TextureCheckResult.UnfixedFatalIssue)
1123 matchingType = m_TextureTypes.FindTextureType(resource);
1124 checkRes = m_TextureTypes.CheckAncestors(CheckAncestors, resource, meta, matchingType);
1125 if (checkRes == TextureCheckResult.SomethingChanged)
1129 if (checkRes != TextureCheckResult.UnfixedFatalIssue)
1131 checkRes = m_TextureTypes.CheckUnnecessarySettingInPc(UnnecessarySettingInPc, resource, meta);
1132 if (checkRes == TextureCheckResult.SomethingChanged)
1136 if (checkRes != TextureCheckResult.UnfixedFatalIssue)
1138 checkRes = m_TextureTypes.CheckSuspiciousNonPcSetting(CheckSuspiciousNonPcSetting, resource, meta);
1139 if (checkRes == TextureCheckResult.SomethingChanged)
1143 if (checkRes != TextureCheckResult.UnfixedFatalIssue)
1145 checkRes = m_TextureTypes.CheckWrongPropertyValues(CheckWrongPropertyValues, resource, meta, matchingType);
1146 if (checkRes == TextureCheckResult.SomethingChanged)
1153 toRebuild.Insert(resource);
1158 if (ReimportChanged && toRebuild.Count() > 0)
1160 Print(
"Reimporting modified resources.");
1161 rb.RebuildResourceFiles(toRebuild,
"PC");
1164 m_Resources.Clear();
CinematicTrackAttribute m_Name
ResourceName resourceName
Configs ServerBrowser KickDialogs conf
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
SCR_RespawnComponentClass OK
Result code for request/assign response.
enum MetaEddsConversion Kaiser
enum MetaEddsConversion Gauss
enum TextureIssueOp UnfixedFatalIssue
enum TextureIssueOp SomethingChanged
class TextureType m_Types
enum MetaEddsConversion Triangle
enum TextureIssueOp NothingChanged
enum TextureIssueOp m_Platform
enum MetaEddsConversion Box
ResourceName m_ConfigFile
enum MetaEddsConversion ToSrgb
enum MetaEddsConversion ToLinear
ref array< int > m_OtherVariants
class WorkbenchDialog_AbortRetryIgnore ButtonAttribute("OK", true)
Object used for holding filtering params for ResourceDatabase.SearchResources() method.
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
proto void PrintFormat(string fmt, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL, LogLevel level=LogLevel.NORMAL)
SCR_FieldOfViewSettings Attribute