mirror of
https://github.com/xivdev/Penumbra.git
synced 2026-02-23 16:27:47 +01:00
Update ShaderReplacementFixer for 7.0
This commit is contained in:
parent
1284037554
commit
41d271213e
3 changed files with 359 additions and 70 deletions
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue