Skip to content

Commit 91339ad

Browse files
authored
attempt to fix potential GPU memory leak
1 parent 4b29b0f commit 91339ad

1 file changed

Lines changed: 12 additions & 8 deletions

File tree

src/GameEventHandler.cpp

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -293,10 +293,12 @@ namespace plugin {
293293
if (geo != nullptr) {
294294
auto geodata = geo->GetGeometryRuntimeData();
295295
if (geodata.properties[1].get() != nullptr && geodata.properties[1].get()->GetType() == RE::NiShadeProperty::Type::kShade) {
296-
auto shader_prop = (RE::BSLightingShaderProperty*) (geodata.properties[1].get());
297-
if (shader_prop != nullptr) {
298-
shader_prop->SetupGeometry(geo);
299-
shader_prop->FinishSetupGeometry(geo);
296+
if (geodata.properties[1]->GetRTTI()->IsKindOf((RE::NiRTTI*) RE::BSLightingShaderProperty::RTTI.address())) {
297+
auto shader_prop = (RE::BSLightingShaderProperty*) (geodata.properties[1].get());
298+
if (shader_prop != nullptr) {
299+
shader_prop->FinishSetupGeometry(geo);
300+
301+
}
300302
}
301303
}
302304
geo = geo;
@@ -327,10 +329,12 @@ namespace plugin {
327329
if (geo != nullptr) {
328330
auto geodata = geo->GetGeometryRuntimeData();
329331
if (geodata.properties[1].get() != nullptr && geodata.properties[1].get()->GetType() == RE::NiShadeProperty::Type::kShade) {
330-
auto shader_prop = (RE::BSLightingShaderProperty*) (geodata.properties[1].get());
331-
if (shader_prop != nullptr) {
332-
shader_prop->SetupGeometry(geo);
333-
shader_prop->FinishSetupGeometry(geo);
332+
if (geodata.properties[1]->GetRTTI()->IsKindOf((RE::NiRTTI*) RE::BSLightingShaderProperty::RTTI.address())) {
333+
auto shader_prop = (RE::BSLightingShaderProperty*) (geodata.properties[1].get());
334+
if (shader_prop != nullptr) {
335+
shader_prop->FinishSetupGeometry(geo);
336+
337+
}
334338
}
335339
}
336340
geo = geo;

0 commit comments

Comments
 (0)