Merge remote-tracking branch 'Exter-N/stuff-for-65'

This commit is contained in:
Ottermandias 2023-10-05 17:57:00 +02:00
commit 19c4c3b50e
2 changed files with 15 additions and 15 deletions

View file

@ -26,14 +26,11 @@ public sealed unsafe class LiveMaterialPreviewer : LiveMaterialPreviewerBase
if (_shaderPackage == null)
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 = materialParameter.ToArray();
else
_originalMaterialParameter = Array.Empty<float>();
_originalMaterialParameter = material->MaterialParameterCBuffer->TryGetBuffer().ToArray();
_originalSamplerFlags = new uint[material->TextureCount];
for (var i = 0; i < _originalSamplerFlags.Length; ++i)
@ -46,11 +43,12 @@ public sealed unsafe class LiveMaterialPreviewer : LiveMaterialPreviewerBase
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);
for (var i = 0; i < _originalSamplerFlags.Length; ++i)
@ -71,11 +69,12 @@ public sealed unsafe class LiveMaterialPreviewer : LiveMaterialPreviewerBase
if (!CheckValidity())
return;
var constantBuffer = ((Structs.Material*)Material)->MaterialParameter;
var constantBuffer = Material->MaterialParameterCBuffer;
if (constantBuffer == null)
return;
if (!constantBuffer->TryGetBuffer(out var buffer))
var buffer = constantBuffer->TryGetBuffer();
if (buffer.IsEmpty)
return;
for (var i = 0; i < _shaderPackage->MaterialElementCount; ++i)
@ -102,10 +101,10 @@ public sealed unsafe class LiveMaterialPreviewer : LiveMaterialPreviewerBase
var id = 0u;
var found = false;
var samplers = (Structs.ShaderPackageUtility.Sampler*)_shaderPackage->Samplers;
var samplers = _shaderPackage->Samplers;
for (var i = 0; i < _shaderPackage->SamplerCount; ++i)
{
if (samplers[i].Crc == samplerCrc)
if (samplers[i].CRC == samplerCrc)
{
id = samplers[i].Id;
found = true;
@ -116,7 +115,7 @@ public sealed unsafe class LiveMaterialPreviewer : LiveMaterialPreviewerBase
if (!found)
return;
var material = (Structs.Material*)Material;
var material = Material;
for (var i = 0; i < material->TextureCount; ++i)
{
if (material->Textures[i].Id == id)
@ -136,7 +135,7 @@ public sealed unsafe class LiveMaterialPreviewer : LiveMaterialPreviewerBase
if (mtrlHandle == null)
return false;
var shpkHandle = ((Structs.MtrlResource*)mtrlHandle)->ShpkResourceHandle;
var shpkHandle = mtrlHandle->ShaderPackageResourceHandle;
if (shpkHandle == null)
return false;

View file

@ -36,6 +36,7 @@ public partial class ModEditWindow
"bguvscroll.shpk",
"channeling.shpk",
"characterglass.shpk",
"charactershadowoffset.shpk",
"character.shpk",
"cloud.shpk",
"createviewposition.shpk",