Add Slice to Span and sue it to make code cleaner

This commit is contained in:
Wojtek Figat
2025-01-05 17:41:27 +01:00
parent 78cf1a4948
commit 933fac6c13
12 changed files with 37 additions and 13 deletions

View File

@@ -33,7 +33,7 @@ void DecalMaterialShader::Bind(BindParameters& params)
Span<byte> cb(_cbData.Get(), _cbData.Count());
ASSERT_LOW_LAYER(cb.Length() >= sizeof(DecalMaterialShaderData));
auto materialData = reinterpret_cast<DecalMaterialShaderData*>(cb.Get());
cb = Span<byte>(cb.Get() + sizeof(DecalMaterialShaderData), cb.Length() - sizeof(DecalMaterialShaderData));
cb = cb.Slice(sizeof(DecalMaterialShaderData));
const bool isCameraInside = OrientedBoundingBox(Vector3::Half, drawCall.World).Contains(view.Position) == ContainmentType::Contains;
// Setup parameters

View File

@@ -41,7 +41,7 @@ void DeformableMaterialShader::Bind(BindParameters& params)
Span<byte> cb(_cbData.Get(), _cbData.Count());
ASSERT_LOW_LAYER(cb.Length() >= sizeof(DeformableMaterialShaderData));
auto materialData = reinterpret_cast<DeformableMaterialShaderData*>(cb.Get());
cb = Span<byte>(cb.Get() + sizeof(DeformableMaterialShaderData), cb.Length() - sizeof(DeformableMaterialShaderData));
cb = cb.Slice(sizeof(DeformableMaterialShaderData));
int32 srv = 1;
// Setup features

View File

@@ -32,7 +32,7 @@ void GUIMaterialShader::Bind(BindParameters& params)
Span<byte> cb(_cbData.Get(), _cbData.Count());
ASSERT_LOW_LAYER(cb.Length() >= sizeof(GUIMaterialShaderData));
auto materialData = reinterpret_cast<GUIMaterialShaderData*>(cb.Get());
cb = Span<byte>(cb.Get() + sizeof(GUIMaterialShaderData), cb.Length() - sizeof(GUIMaterialShaderData));
cb = cb.Slice(sizeof(GUIMaterialShaderData));
int32 srv = 0;
const auto ps = context->IsDepthBufferBinded() ? _cache.Depth : _cache.NoDepth;
auto customData = (Render2D::CustomData*)params.CustomData;

View File

@@ -113,7 +113,7 @@ void ForwardShadingFeature::Bind(MaterialShader::BindParameters& params, Span<by
}
}
cb = Span<byte>(cb.Get() + sizeof(Data), cb.Length() - sizeof(Data));
cb = cb.Slice(sizeof(Data));
srv += SRVs;
}
@@ -184,7 +184,7 @@ bool GlobalIlluminationFeature::Bind(MaterialShader::BindParameters& params, Spa
params.GPUContext->UnBindSR(srv + 2);
}
cb = Span<byte>(cb.Get() + sizeof(Data), cb.Length() - sizeof(Data));
cb = cb.Slice(sizeof(Data));
srv += SRVs;
return useGI;
}
@@ -236,7 +236,7 @@ bool SDFReflectionsFeature::Bind(MaterialShader::BindParameters& params, Span<by
params.GPUContext->UnBindSR(srv + 6);
}
cb = Span<byte>(cb.Get() + sizeof(Data), cb.Length() - sizeof(Data));
cb = cb.Slice(sizeof(Data));
srv += SRVs;
return useSDFReflections;
}

View File

@@ -53,7 +53,7 @@ void ParticleMaterialShader::Bind(BindParameters& params)
Span<byte> cb(_cbData.Get(), _cbData.Count());
ASSERT_LOW_LAYER(cb.Length() >= sizeof(ParticleMaterialShaderData));
auto materialData = reinterpret_cast<ParticleMaterialShaderData*>(cb.Get());
cb = Span<byte>(cb.Get() + sizeof(ParticleMaterialShaderData), cb.Length() - sizeof(ParticleMaterialShaderData));
cb = cb.Slice(sizeof(ParticleMaterialShaderData));
int32 srv = 2;
// Setup features

View File

@@ -31,7 +31,7 @@ void PostFxMaterialShader::Bind(BindParameters& params)
Span<byte> cb(_cbData.Get(), _cbData.Count());
ASSERT_LOW_LAYER(cb.Length() >= sizeof(PostFxMaterialShaderData));
auto materialData = reinterpret_cast<PostFxMaterialShaderData*>(cb.Get());
cb = Span<byte>(cb.Get() + sizeof(PostFxMaterialShaderData), cb.Length() - sizeof(PostFxMaterialShaderData));
cb = cb.Slice(sizeof(PostFxMaterialShaderData));
int32 srv = 0;
// Setup parameters

View File

@@ -50,7 +50,7 @@ void TerrainMaterialShader::Bind(BindParameters& params)
Span<byte> cb(_cbData.Get(), _cbData.Count());
ASSERT_LOW_LAYER(cb.Length() >= sizeof(TerrainMaterialShaderData));
auto materialData = reinterpret_cast<TerrainMaterialShaderData*>(cb.Get());
cb = Span<byte>(cb.Get() + sizeof(TerrainMaterialShaderData), cb.Length() - sizeof(TerrainMaterialShaderData));
cb = cb.Slice(sizeof(TerrainMaterialShaderData));
int32 srv = 3;
// Setup features

View File

@@ -41,7 +41,7 @@ void VolumeParticleMaterialShader::Bind(BindParameters& params)
Span<byte> cb(_cbData.Get(), _cbData.Count());
ASSERT_LOW_LAYER(cb.Length() >= sizeof(VolumeParticleMaterialShaderData));
auto materialData = reinterpret_cast<VolumeParticleMaterialShaderData*>(cb.Get());
cb = Span<byte>(cb.Get() + sizeof(VolumeParticleMaterialShaderData), cb.Length() - sizeof(VolumeParticleMaterialShaderData));
cb = cb.Slice(sizeof(VolumeParticleMaterialShaderData));
int32 srv = 1;
auto customData = (VolumetricFogPass::CustomData*)params.CustomData;