Add safety checks to material constants binding code to prevent invalid memory access
This commit is contained in:
@@ -36,9 +36,10 @@ void DecalMaterialShader::Bind(BindParameters& params)
|
||||
auto context = params.GPUContext;
|
||||
auto& view = params.RenderContext.View;
|
||||
auto& drawCall = *params.FirstDrawCall;
|
||||
byte* cb = _cbData.Get();
|
||||
auto materialData = reinterpret_cast<DecalMaterialShaderData*>(cb);
|
||||
cb += sizeof(DecalMaterialShaderData);
|
||||
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));
|
||||
int32 srv = 0;
|
||||
const bool isCameraInside = OrientedBoundingBox(Vector3::Half, params.FirstDrawCall->World).Contains(view.Position) == ContainmentType::Contains;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user