mirror of
https://github.com/xivdev/Penumbra.git
synced 2025-12-12 18:27:24 +01:00
Merge remote-tracking branch 'Exter-N/stuff-for-65'
This commit is contained in:
commit
19c4c3b50e
2 changed files with 15 additions and 15 deletions
|
|
@ -26,14 +26,11 @@ public sealed unsafe class LiveMaterialPreviewer : LiveMaterialPreviewerBase
|
||||||
if (_shaderPackage == null)
|
if (_shaderPackage == null)
|
||||||
throw new InvalidOperationException("Material doesn't have a shader package");
|
throw new InvalidOperationException("Material doesn't have a shader package");
|
||||||
|
|
||||||
var material = (Structs.Material*)Material;
|
var material = Material;
|
||||||
|
|
||||||
_originalShPkFlags = material->ShaderPackageFlags;
|
_originalShPkFlags = material->ShaderFlags;
|
||||||
|
|
||||||
if (material->MaterialParameter->TryGetBuffer(out var materialParameter))
|
_originalMaterialParameter = material->MaterialParameterCBuffer->TryGetBuffer().ToArray();
|
||||||
_originalMaterialParameter = materialParameter.ToArray();
|
|
||||||
else
|
|
||||||
_originalMaterialParameter = Array.Empty<float>();
|
|
||||||
|
|
||||||
_originalSamplerFlags = new uint[material->TextureCount];
|
_originalSamplerFlags = new uint[material->TextureCount];
|
||||||
for (var i = 0; i < _originalSamplerFlags.Length; ++i)
|
for (var i = 0; i < _originalSamplerFlags.Length; ++i)
|
||||||
|
|
@ -46,11 +43,12 @@ public sealed unsafe class LiveMaterialPreviewer : LiveMaterialPreviewerBase
|
||||||
|
|
||||||
if (reset)
|
if (reset)
|
||||||
{
|
{
|
||||||
var material = (Structs.Material*)Material;
|
var material = Material;
|
||||||
|
|
||||||
material->ShaderPackageFlags = _originalShPkFlags;
|
material->ShaderFlags = _originalShPkFlags;
|
||||||
|
|
||||||
if (material->MaterialParameter->TryGetBuffer(out var materialParameter))
|
var materialParameter = material->MaterialParameterCBuffer->TryGetBuffer();
|
||||||
|
if (!materialParameter.IsEmpty)
|
||||||
_originalMaterialParameter.AsSpan().CopyTo(materialParameter);
|
_originalMaterialParameter.AsSpan().CopyTo(materialParameter);
|
||||||
|
|
||||||
for (var i = 0; i < _originalSamplerFlags.Length; ++i)
|
for (var i = 0; i < _originalSamplerFlags.Length; ++i)
|
||||||
|
|
@ -71,11 +69,12 @@ public sealed unsafe class LiveMaterialPreviewer : LiveMaterialPreviewerBase
|
||||||
if (!CheckValidity())
|
if (!CheckValidity())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var constantBuffer = ((Structs.Material*)Material)->MaterialParameter;
|
var constantBuffer = Material->MaterialParameterCBuffer;
|
||||||
if (constantBuffer == null)
|
if (constantBuffer == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!constantBuffer->TryGetBuffer(out var buffer))
|
var buffer = constantBuffer->TryGetBuffer();
|
||||||
|
if (buffer.IsEmpty)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (var i = 0; i < _shaderPackage->MaterialElementCount; ++i)
|
for (var i = 0; i < _shaderPackage->MaterialElementCount; ++i)
|
||||||
|
|
@ -102,10 +101,10 @@ public sealed unsafe class LiveMaterialPreviewer : LiveMaterialPreviewerBase
|
||||||
var id = 0u;
|
var id = 0u;
|
||||||
var found = false;
|
var found = false;
|
||||||
|
|
||||||
var samplers = (Structs.ShaderPackageUtility.Sampler*)_shaderPackage->Samplers;
|
var samplers = _shaderPackage->Samplers;
|
||||||
for (var i = 0; i < _shaderPackage->SamplerCount; ++i)
|
for (var i = 0; i < _shaderPackage->SamplerCount; ++i)
|
||||||
{
|
{
|
||||||
if (samplers[i].Crc == samplerCrc)
|
if (samplers[i].CRC == samplerCrc)
|
||||||
{
|
{
|
||||||
id = samplers[i].Id;
|
id = samplers[i].Id;
|
||||||
found = true;
|
found = true;
|
||||||
|
|
@ -116,7 +115,7 @@ public sealed unsafe class LiveMaterialPreviewer : LiveMaterialPreviewerBase
|
||||||
if (!found)
|
if (!found)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var material = (Structs.Material*)Material;
|
var material = Material;
|
||||||
for (var i = 0; i < material->TextureCount; ++i)
|
for (var i = 0; i < material->TextureCount; ++i)
|
||||||
{
|
{
|
||||||
if (material->Textures[i].Id == id)
|
if (material->Textures[i].Id == id)
|
||||||
|
|
@ -136,7 +135,7 @@ public sealed unsafe class LiveMaterialPreviewer : LiveMaterialPreviewerBase
|
||||||
if (mtrlHandle == null)
|
if (mtrlHandle == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var shpkHandle = ((Structs.MtrlResource*)mtrlHandle)->ShpkResourceHandle;
|
var shpkHandle = mtrlHandle->ShaderPackageResourceHandle;
|
||||||
if (shpkHandle == null)
|
if (shpkHandle == null)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ public partial class ModEditWindow
|
||||||
"bguvscroll.shpk",
|
"bguvscroll.shpk",
|
||||||
"channeling.shpk",
|
"channeling.shpk",
|
||||||
"characterglass.shpk",
|
"characterglass.shpk",
|
||||||
|
"charactershadowoffset.shpk",
|
||||||
"character.shpk",
|
"character.shpk",
|
||||||
"cloud.shpk",
|
"cloud.shpk",
|
||||||
"createviewposition.shpk",
|
"createviewposition.shpk",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue