mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2026-04-07 12:18:40 +00:00
chore: handle iw4 technique flags
This commit is contained in:
@@ -93,7 +93,7 @@ namespace IW4
|
||||
{
|
||||
.name = "texcoord[1]",
|
||||
.abbreviation = "t1",
|
||||
.optional = false,
|
||||
.optional = true,
|
||||
},
|
||||
{
|
||||
.name = "texcoord[2]",
|
||||
@@ -204,6 +204,7 @@ namespace IW4
|
||||
.accessor = "lightSpotFactors",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
.techFlags = MTL_TECHFLAG_USES_LIGHT_SPOT_FACTORS,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_LIGHT_FALLOFF_PLACEMENT,
|
||||
@@ -1029,11 +1030,13 @@ namespace IW4
|
||||
.value = TEXTURE_SRC_CODE_RESOLVED_POST_SUN,
|
||||
.accessor = "resolvedPostSun",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
.techFlags = MTL_TECHFLAG_NEEDS_RESOLVED_POST_SUN,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_RESOLVED_SCENE,
|
||||
.accessor = "resolvedScene",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
.techFlags = MTL_TECHFLAG_NEEDS_RESOLVED_SCENE,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_POST_EFFECT_0,
|
||||
@@ -1059,16 +1062,19 @@ namespace IW4
|
||||
.value = TEXTURE_SRC_CODE_FLOATZ,
|
||||
.accessor = "floatZSampler",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
.techFlags = MTL_TECHFLAG_USES_FLOATZ,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_PROCESSED_FLOATZ,
|
||||
.accessor = "processedFloatZSampler",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
.techFlags = MTL_TECHFLAG_USES_FLOATZ,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_RAW_FLOATZ,
|
||||
.accessor = "rawFloatZSampler",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
.techFlags = MTL_TECHFLAG_USES_FLOATZ,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_HALF_PARTICLES,
|
||||
|
||||
@@ -219,7 +219,7 @@ namespace T6
|
||||
.accessor = "lightSpotFactors",
|
||||
.arrayCount = 0,
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
.techFlags = TECHNIQUE_FLAG_10,
|
||||
.techFlags = MTL_TECHFLAG_USES_LIGHT_SPOT_FACTORS,
|
||||
},
|
||||
{
|
||||
.value = CONST_SRC_CODE_LIGHT_ATTENUATION,
|
||||
@@ -1603,13 +1603,13 @@ namespace T6
|
||||
.value = TEXTURE_SRC_CODE_RESOLVED_POST_SUN,
|
||||
.accessor = "resolvedPostSun",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
.techFlags = TECHNIQUE_FLAG_1,
|
||||
.techFlags = MTL_TECHFLAG_NEEDS_RESOLVED_POST_SUN,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_RESOLVED_SCENE,
|
||||
.accessor = "resolvedScene",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
.techFlags = TECHNIQUE_FLAG_2,
|
||||
.techFlags = MTL_TECHFLAG_NEEDS_RESOLVED_SCENE,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_POST_EFFECT_SRC,
|
||||
@@ -1650,19 +1650,19 @@ namespace T6
|
||||
.value = TEXTURE_SRC_CODE_FLOATZ,
|
||||
.accessor = "floatZSampler",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
.techFlags = TECHNIQUE_FLAG_40,
|
||||
.techFlags = MTL_TECHFLAG_USES_FLOATZ,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_PROCESSED_FLOATZ,
|
||||
.accessor = "processedFloatZSampler",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
.techFlags = TECHNIQUE_FLAG_40,
|
||||
.techFlags = MTL_TECHFLAG_USES_FLOATZ,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_RAW_FLOATZ,
|
||||
.accessor = "rawFloatZSampler",
|
||||
.updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,
|
||||
.techFlags = TECHNIQUE_FLAG_40,
|
||||
.techFlags = MTL_TECHFLAG_USES_FLOATZ,
|
||||
},
|
||||
{
|
||||
.value = TEXTURE_SRC_CODE_STENCIL,
|
||||
|
||||
@@ -24,6 +24,34 @@ namespace
|
||||
|
||||
namespace techset
|
||||
{
|
||||
std::optional<bool> HasOptionalSourceByName(const std::string& name, const CommonStreamRoutingInfos& routingInfos)
|
||||
{
|
||||
size_t currentOffset = 0u;
|
||||
|
||||
std::string sourceAbbreviation;
|
||||
while (NextAbbreviation(name, sourceAbbreviation, currentOffset))
|
||||
{
|
||||
std::string destinationAbbreviation;
|
||||
if (!NextAbbreviation(name, destinationAbbreviation, currentOffset))
|
||||
{
|
||||
con::error("Failed to detect vertex decl destination abbreviation: {}", name);
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
const auto maybeSource = routingInfos.GetSourceByAbbreviation(sourceAbbreviation);
|
||||
if (!maybeSource)
|
||||
{
|
||||
con::error("Unknown vertex decl source abbreviation: {}", sourceAbbreviation);
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
if (routingInfos.IsSourceOptional(*maybeSource))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
std::optional<CommonVertexDeclaration> CreateVertexDeclFromName(const std::string& name, const CommonStreamRoutingInfos& routingInfos)
|
||||
{
|
||||
CommonVertexDeclaration result;
|
||||
|
||||
@@ -7,5 +7,6 @@
|
||||
|
||||
namespace techset
|
||||
{
|
||||
std::optional<bool> HasOptionalSourceByName(const std::string& name, const CommonStreamRoutingInfos& routingInfos);
|
||||
std::optional<CommonVertexDeclaration> CreateVertexDeclFromName(const std::string& name, const CommonStreamRoutingInfos& routingInfos);
|
||||
}
|
||||
} // namespace techset
|
||||
|
||||
Reference in New Issue
Block a user