mirror of
https://github.com/xivdev/Penumbra.git
synced 2025-12-13 12:14:17 +01:00
Update for SDK.
This commit is contained in:
parent
279a861582
commit
03bb07a9c0
28 changed files with 178 additions and 147 deletions
|
|
@ -193,7 +193,7 @@ public sealed unsafe class ShaderReplacementFixer : IDisposable, IRequiredServic
|
|||
if (shpk == null)
|
||||
return;
|
||||
|
||||
var shpkName = mtrl->ShpkNameSpan;
|
||||
var shpkName = mtrl->ShpkName.AsSpan();
|
||||
var shpkState = GetStateForHumanSetup(shpkName)
|
||||
?? GetStateForHumanRender(shpkName)
|
||||
?? GetStateForModelRendererRender(shpkName)
|
||||
|
|
@ -217,7 +217,7 @@ public sealed unsafe class ShaderReplacementFixer : IDisposable, IRequiredServic
|
|||
}
|
||||
|
||||
private ModdedShaderPackageState? GetStateForHumanSetup(MaterialResourceHandle* mtrlResource)
|
||||
=> mtrlResource == null ? null : GetStateForHumanSetup(mtrlResource->ShpkNameSpan);
|
||||
=> mtrlResource == null ? null : GetStateForHumanSetup(mtrlResource->ShpkName.AsSpan());
|
||||
|
||||
private ModdedShaderPackageState? GetStateForHumanSetup(ReadOnlySpan<byte> shpkName)
|
||||
=> CharacterStockingsShpkName.SequenceEqual(shpkName) ? _characterStockingsState : null;
|
||||
|
|
@ -227,7 +227,7 @@ public sealed unsafe class ShaderReplacementFixer : IDisposable, IRequiredServic
|
|||
=> _characterStockingsState.MaterialCount;
|
||||
|
||||
private ModdedShaderPackageState? GetStateForHumanRender(MaterialResourceHandle* mtrlResource)
|
||||
=> mtrlResource == null ? null : GetStateForHumanRender(mtrlResource->ShpkNameSpan);
|
||||
=> mtrlResource == null ? null : GetStateForHumanRender(mtrlResource->ShpkName.AsSpan());
|
||||
|
||||
private ModdedShaderPackageState? GetStateForHumanRender(ReadOnlySpan<byte> shpkName)
|
||||
=> SkinShpkName.SequenceEqual(shpkName) ? _skinState : null;
|
||||
|
|
@ -237,7 +237,7 @@ public sealed unsafe class ShaderReplacementFixer : IDisposable, IRequiredServic
|
|||
=> _skinState.MaterialCount;
|
||||
|
||||
private ModdedShaderPackageState? GetStateForModelRendererRender(MaterialResourceHandle* mtrlResource)
|
||||
=> mtrlResource == null ? null : GetStateForModelRendererRender(mtrlResource->ShpkNameSpan);
|
||||
=> mtrlResource == null ? null : GetStateForModelRendererRender(mtrlResource->ShpkName.AsSpan());
|
||||
|
||||
private ModdedShaderPackageState? GetStateForModelRendererRender(ReadOnlySpan<byte> shpkName)
|
||||
{
|
||||
|
|
@ -264,7 +264,7 @@ public sealed unsafe class ShaderReplacementFixer : IDisposable, IRequiredServic
|
|||
+ _hairMaskState.MaterialCount;
|
||||
|
||||
private ModdedShaderPackageState? GetStateForModelRendererUnk(MaterialResourceHandle* mtrlResource)
|
||||
=> mtrlResource == null ? null : GetStateForModelRendererUnk(mtrlResource->ShpkNameSpan);
|
||||
=> mtrlResource == null ? null : GetStateForModelRendererUnk(mtrlResource->ShpkName.AsSpan());
|
||||
|
||||
private ModdedShaderPackageState? GetStateForModelRendererUnk(ReadOnlySpan<byte> shpkName)
|
||||
{
|
||||
|
|
@ -480,7 +480,7 @@ public sealed unsafe class ShaderReplacementFixer : IDisposable, IRequiredServic
|
|||
if (material == null)
|
||||
return _prepareColorTableHook.Original(thisPtr, stain0Id, stain1Id);
|
||||
|
||||
var shpkState = GetStateForColorTable(thisPtr->ShpkNameSpan);
|
||||
var shpkState = GetStateForColorTable(thisPtr->ShpkName.AsSpan());
|
||||
if (shpkState == null || shpkState.MaterialCount == 0)
|
||||
return _prepareColorTableHook.Original(thisPtr, stain0Id, stain1Id);
|
||||
|
||||
|
|
|
|||
|
|
@ -84,7 +84,9 @@ public sealed unsafe class LiveColorTablePreviewer : LiveMaterialPreviewerBase
|
|||
textureSize[1] = Height;
|
||||
|
||||
using var texture =
|
||||
new SafeTextureHandle(Device.Instance()->CreateTexture2D(textureSize, 1, 0x2460, 0x80000804, 7), false);
|
||||
new SafeTextureHandle(
|
||||
Device.Instance()->CreateTexture2D(textureSize, 1, TextureFormat.R16G16B16A16_FLOAT,
|
||||
TextureFlags.TextureNoSwizzle | TextureFlags.Immutable | TextureFlags.Managed, 7), false);
|
||||
if (texture.IsInvalid)
|
||||
return;
|
||||
|
||||
|
|
|
|||
|
|
@ -239,7 +239,7 @@ internal unsafe partial record ResolveContext(
|
|||
return cached;
|
||||
|
||||
var node = CreateNode(ResourceType.Mtrl, (nint)mtrl, &resource->ResourceHandle, path, false);
|
||||
var shpkNode = CreateNodeFromShpk(resource->ShaderPackageResourceHandle, new CiByteString(resource->ShpkName));
|
||||
var shpkNode = CreateNodeFromShpk(resource->ShaderPackageResourceHandle, new CiByteString(resource->ShpkName.Value));
|
||||
if (shpkNode is not null)
|
||||
{
|
||||
if (Global.WithUiData)
|
||||
|
|
@ -253,7 +253,7 @@ internal unsafe partial record ResolveContext(
|
|||
var alreadyProcessedSamplerIds = new HashSet<uint>();
|
||||
for (var i = 0; i < resource->TextureCount; i++)
|
||||
{
|
||||
var texNode = CreateNodeFromTex(resource->Textures[i].TextureResourceHandle, new CiByteString(resource->TexturePath(i)),
|
||||
var texNode = CreateNodeFromTex(resource->Textures[i].TextureResourceHandle, new CiByteString(resource->TexturePath(i).Value),
|
||||
resource->Textures[i].IsDX11);
|
||||
if (texNode == null)
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using FFXIVClientStructs.FFXIV.Client.Graphics.Scene;
|
||||
using FFXIVClientStructs.STD;
|
||||
using InteropGenerator.Runtime;
|
||||
using Penumbra.String;
|
||||
|
||||
namespace Penumbra.Interop.Structs;
|
||||
|
|
@ -57,8 +58,8 @@ internal static class StructExtensions
|
|||
return ToOwnedByteString(character.ResolvePhybPath(pathBuffer, partialSkeletonIndex));
|
||||
}
|
||||
|
||||
private static unsafe CiByteString ToOwnedByteString(byte* str)
|
||||
=> str == null ? CiByteString.Empty : new CiByteString(str).Clone();
|
||||
private static unsafe CiByteString ToOwnedByteString(CStringPointer str)
|
||||
=> str.HasValue ? new CiByteString(str.Value).Clone() : CiByteString.Empty;
|
||||
|
||||
private static CiByteString ToOwnedByteString(ReadOnlySpan<byte> str)
|
||||
=> str.Length == 0 ? CiByteString.Empty : CiByteString.FromSpanUnsafe(str, true).Clone();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue