Removes legacy logic of reused ModelRendererPtr

It became unused in 4a69e9117e.
This commit is contained in:
Vladislav Belov 2026-08-04 23:06:04 +02:00
parent 822092fcb4
commit af9d102126
No known key found for this signature in database
GPG key ID: 353545E45DB9CCB3
2 changed files with 25 additions and 40 deletions

View file

@ -48,9 +48,6 @@ typedef std::shared_ptr<LitRenderModifier> LitRenderModifierPtr;
class ModelVertexRenderer; class ModelVertexRenderer;
typedef std::shared_ptr<ModelVertexRenderer> ModelVertexRendererPtr; typedef std::shared_ptr<ModelVertexRenderer> ModelVertexRendererPtr;
class ModelRenderer;
typedef std::shared_ptr<ModelRenderer> ModelRendererPtr;
/** /**
* Class CModelRData: Render data that is maintained per CModel. * Class CModelRData: Render data that is maintained per CModel.
* ModelRenderer implementations may derive from this class to store * ModelRenderer implementations may derive from this class to store

View file

@ -131,14 +131,14 @@ public:
// Submitted models are split on two axes: // Submitted models are split on two axes:
// - Normal vs Transp[arent] - alpha-blended models are stored in a separate // - Normal vs Transp[arent] - alpha-blended models are stored in a separate
// list so we can draw them above/below the alpha-blended water plane correctly // list so we can draw them above/below the alpha-blended water plane correctly
// - Skinned vs Unskinned - with hardware lighting we don't need to // - Skinned vs Unskinned - we don't need to duplicate mesh data per
// duplicate mesh data per model instance (except for skinned models), // model instance (except for skinned models), so non-skinned models
// so non-skinned models get different ModelVertexRenderers // get different ModelVertexRenderers
ModelRendererPtr NormalSkinned; std::unique_ptr<ShaderModelRenderer> NormalSkinned;
ModelRendererPtr NormalUnskinned; // == NormalSkinned if unskinned shader instancing not supported std::unique_ptr<ShaderModelRenderer> NormalUnskinned;
ModelRendererPtr TranspSkinned; std::unique_ptr<ShaderModelRenderer> TranspSkinned;
ModelRendererPtr TranspUnskinned; // == TranspSkinned if unskinned shader instancing not supported std::unique_ptr<ShaderModelRenderer> TranspUnskinned;
ModelVertexRendererPtr VertexRendererShader; ModelVertexRendererPtr VertexRendererShader;
ModelVertexRendererPtr VertexInstancingShader; ModelVertexRendererPtr VertexInstancingShader;
@ -161,12 +161,9 @@ public:
contextSkinned.Add(str_USE_INSTANCING, str_1); contextSkinned.Add(str_USE_INSTANCING, str_1);
Model.NormalSkinned->Render(deviceCommandContext, Model.ModShader, contextSkinned, cullGroup, flags, renderMode); Model.NormalSkinned->Render(deviceCommandContext, Model.ModShader, contextSkinned, cullGroup, flags, renderMode);
if (Model.NormalUnskinned != Model.NormalSkinned) CShaderDefines contextUnskinned = context;
{ contextUnskinned.Add(str_USE_INSTANCING, str_1);
CShaderDefines contextUnskinned = context; Model.NormalUnskinned->Render(deviceCommandContext, Model.ModShader, contextUnskinned, cullGroup, flags, renderMode);
contextUnskinned.Add(str_USE_INSTANCING, str_1);
Model.NormalUnskinned->Render(deviceCommandContext, Model.ModShader, contextUnskinned, cullGroup, flags, renderMode);
}
} }
/** /**
@ -181,12 +178,9 @@ public:
contextSkinned.Add(str_USE_INSTANCING, str_1); contextSkinned.Add(str_USE_INSTANCING, str_1);
Model.TranspSkinned->Render(deviceCommandContext, Model.ModShader, contextSkinned, cullGroup, flags, renderMode); Model.TranspSkinned->Render(deviceCommandContext, Model.ModShader, contextSkinned, cullGroup, flags, renderMode);
if (Model.TranspUnskinned != Model.TranspSkinned) CShaderDefines contextUnskinned = context;
{ contextUnskinned.Add(str_USE_INSTANCING, str_1);
CShaderDefines contextUnskinned = context; Model.TranspUnskinned->Render(deviceCommandContext, Model.ModShader, contextUnskinned, cullGroup, flags, renderMode);
contextUnskinned.Add(str_USE_INSTANCING, str_1);
Model.TranspUnskinned->Render(deviceCommandContext, Model.ModShader, contextUnskinned, cullGroup, flags, renderMode);
}
} }
}; };
@ -247,18 +241,18 @@ void CSceneRenderer::ReloadShaders([[maybe_unused]] Renderer::Backend::IDevice*
if (g_RenderingOptions.GetGPUSkinning()) if (g_RenderingOptions.GetGPUSkinning())
{ {
m->Model.VertexGPUSkinningShader = ModelVertexRendererPtr(new GPUSkinnedModelModelRenderer()); m->Model.VertexGPUSkinningShader = ModelVertexRendererPtr(new GPUSkinnedModelModelRenderer());
m->Model.NormalSkinned = ModelRendererPtr(new ShaderModelRenderer(m->Model.VertexGPUSkinningShader)); m->Model.NormalSkinned = std::make_unique<ShaderModelRenderer>(m->Model.VertexGPUSkinningShader);
m->Model.TranspSkinned = ModelRendererPtr(new ShaderModelRenderer(m->Model.VertexGPUSkinningShader)); m->Model.TranspSkinned = std::make_unique<ShaderModelRenderer>(m->Model.VertexGPUSkinningShader);
} }
else else
{ {
m->Model.VertexGPUSkinningShader.reset(); m->Model.VertexGPUSkinningShader.reset();
m->Model.NormalSkinned = ModelRendererPtr(new ShaderModelRenderer(m->Model.VertexRendererShader)); m->Model.NormalSkinned = std::make_unique<ShaderModelRenderer>(m->Model.VertexRendererShader);
m->Model.TranspSkinned = ModelRendererPtr(new ShaderModelRenderer(m->Model.VertexRendererShader)); m->Model.TranspSkinned = std::make_unique<ShaderModelRenderer>(m->Model.VertexRendererShader);
} }
m->Model.NormalUnskinned = ModelRendererPtr(new ShaderModelRenderer(m->Model.VertexInstancingShader)); m->Model.NormalUnskinned = std::make_unique<ShaderModelRenderer>(m->Model.VertexInstancingShader);
m->Model.TranspUnskinned = ModelRendererPtr(new ShaderModelRenderer(m->Model.VertexInstancingShader)); m->Model.TranspUnskinned = std::make_unique<ShaderModelRenderer>(m->Model.VertexInstancingShader);
} }
void CSceneRenderer::Initialize() void CSceneRenderer::Initialize()
@ -774,10 +768,8 @@ void CSceneRenderer::PrepareSubmissions(
PROFILE3("prepare models"); PROFILE3("prepare models");
m->Model.NormalSkinned->PrepareModels(deviceCommandContext); m->Model.NormalSkinned->PrepareModels(deviceCommandContext);
m->Model.TranspSkinned->PrepareModels(deviceCommandContext); m->Model.TranspSkinned->PrepareModels(deviceCommandContext);
if (m->Model.NormalUnskinned != m->Model.NormalSkinned) m->Model.NormalUnskinned->PrepareModels(deviceCommandContext);
m->Model.NormalUnskinned->PrepareModels(deviceCommandContext); m->Model.TranspUnskinned->PrepareModels(deviceCommandContext);
if (m->Model.TranspUnskinned != m->Model.TranspSkinned)
m->Model.TranspUnskinned->PrepareModels(deviceCommandContext);
} }
m->terrainRenderer.PrepareForRendering(); m->terrainRenderer.PrepareForRendering();
@ -790,10 +782,8 @@ void CSceneRenderer::PrepareSubmissions(
PROFILE3("upload models"); PROFILE3("upload models");
m->Model.NormalSkinned->UploadModels(deviceCommandContext); m->Model.NormalSkinned->UploadModels(deviceCommandContext);
m->Model.TranspSkinned->UploadModels(deviceCommandContext); m->Model.TranspSkinned->UploadModels(deviceCommandContext);
if (m->Model.NormalUnskinned != m->Model.NormalSkinned) m->Model.NormalUnskinned->UploadModels(deviceCommandContext);
m->Model.NormalUnskinned->UploadModels(deviceCommandContext); m->Model.TranspUnskinned->UploadModels(deviceCommandContext);
if (m->Model.TranspUnskinned != m->Model.TranspSkinned)
m->Model.TranspUnskinned->UploadModels(deviceCommandContext);
} }
m->overlayRenderer.Upload(deviceCommandContext); m->overlayRenderer.Upload(deviceCommandContext);
@ -911,10 +901,8 @@ void CSceneRenderer::EndFrame()
// Finish model renderers // Finish model renderers
m->Model.NormalSkinned->EndFrame(); m->Model.NormalSkinned->EndFrame();
m->Model.TranspSkinned->EndFrame(); m->Model.TranspSkinned->EndFrame();
if (m->Model.NormalUnskinned != m->Model.NormalSkinned) m->Model.NormalUnskinned->EndFrame();
m->Model.NormalUnskinned->EndFrame(); m->Model.TranspUnskinned->EndFrame();
if (m->Model.TranspUnskinned != m->Model.TranspSkinned)
m->Model.TranspUnskinned->EndFrame();
} }
void CSceneRenderer::DisplayFrustum(Renderer::Backend::IDeviceCommandContext& deviceCommandContext) void CSceneRenderer::DisplayFrustum(Renderer::Backend::IDeviceCommandContext& deviceCommandContext)