Update ShaderReplacementFixer for 7.0

This commit is contained in:
Exter-N 2024-07-05 23:59:22 +02:00
parent 1284037554
commit 41d271213e
3 changed files with 359 additions and 70 deletions

View file

@ -9,6 +9,13 @@ public unsafe class ModelRenderer : IDisposable, IRequiredService
{
public bool Ready { get; private set; }
public ShaderPackageResourceHandle** IrisShaderPackage
=> Manager.Instance() switch
{
null => null,
var renderManager => &renderManager->ModelRenderer.IrisShaderPackage,
};
public ShaderPackageResourceHandle** CharacterGlassShaderPackage
=> Manager.Instance() switch
{
@ -16,8 +23,46 @@ public unsafe class ModelRenderer : IDisposable, IRequiredService
var renderManager => &renderManager->ModelRenderer.CharacterGlassShaderPackage,
};
public ShaderPackageResourceHandle** CharacterTransparencyShaderPackage
=> Manager.Instance() switch
{
null => null,
var renderManager => &renderManager->ModelRenderer.CharacterTransparencyShaderPackage,
};
public ShaderPackageResourceHandle** CharacterTattooShaderPackage
=> Manager.Instance() switch
{
null => null,
var renderManager => &renderManager->ModelRenderer.CharacterTattooShaderPackage,
};
public ShaderPackageResourceHandle** CharacterOcclusionShaderPackage
=> Manager.Instance() switch
{
null => null,
var renderManager => &renderManager->ModelRenderer.CharacterOcclusionShaderPackage,
};
public ShaderPackageResourceHandle** HairMaskShaderPackage
=> Manager.Instance() switch
{
null => null,
var renderManager => &renderManager->ModelRenderer.HairMaskShaderPackage,
};
public ShaderPackageResourceHandle* DefaultIrisShaderPackage { get; private set; }
public ShaderPackageResourceHandle* DefaultCharacterGlassShaderPackage { get; private set; }
public ShaderPackageResourceHandle* DefaultCharacterTransparencyShaderPackage { get; private set; }
public ShaderPackageResourceHandle* DefaultCharacterTattooShaderPackage { get; private set; }
public ShaderPackageResourceHandle* DefaultCharacterOcclusionShaderPackage { get; private set; }
public ShaderPackageResourceHandle* DefaultHairMaskShaderPackage { get; private set; }
private readonly IFramework _framework;
public ModelRenderer(IFramework framework)
@ -36,12 +81,42 @@ public unsafe class ModelRenderer : IDisposable, IRequiredService
var anyMissing = false;
if (DefaultIrisShaderPackage == null)
{
DefaultIrisShaderPackage = *IrisShaderPackage;
anyMissing |= DefaultIrisShaderPackage == null;
}
if (DefaultCharacterGlassShaderPackage == null)
{
DefaultCharacterGlassShaderPackage = *CharacterGlassShaderPackage;
anyMissing |= DefaultCharacterGlassShaderPackage == null;
}
if (DefaultCharacterTransparencyShaderPackage == null)
{
DefaultCharacterTransparencyShaderPackage = *CharacterTransparencyShaderPackage;
anyMissing |= DefaultCharacterTransparencyShaderPackage == null;
}
if (DefaultCharacterTattooShaderPackage == null)
{
DefaultCharacterTattooShaderPackage = *CharacterTattooShaderPackage;
anyMissing |= DefaultCharacterTattooShaderPackage == null;
}
if (DefaultCharacterOcclusionShaderPackage == null)
{
DefaultCharacterOcclusionShaderPackage = *CharacterOcclusionShaderPackage;
anyMissing |= DefaultCharacterOcclusionShaderPackage == null;
}
if (DefaultHairMaskShaderPackage == null)
{
DefaultHairMaskShaderPackage = *HairMaskShaderPackage;
anyMissing |= DefaultHairMaskShaderPackage == null;
}
if (anyMissing)
return;
@ -55,7 +130,12 @@ public unsafe class ModelRenderer : IDisposable, IRequiredService
if (!Ready)
return;
*CharacterGlassShaderPackage = DefaultCharacterGlassShaderPackage;
*HairMaskShaderPackage = DefaultHairMaskShaderPackage;
*CharacterOcclusionShaderPackage = DefaultCharacterOcclusionShaderPackage;
*CharacterTattooShaderPackage = DefaultCharacterTattooShaderPackage;
*CharacterTransparencyShaderPackage = DefaultCharacterTransparencyShaderPackage;
*CharacterGlassShaderPackage = DefaultCharacterGlassShaderPackage;
*IrisShaderPackage = DefaultIrisShaderPackage;
}
public void Dispose()