mirror of
https://gitea.wildfiregames.com/0ad/0ad
synced 2026-08-15 14:43:32 -07:00
Removes legacy logic of reused ModelRendererPtr
It became unused in 4a69e9117e.
This commit is contained in:
parent
822092fcb4
commit
af9d102126
2 changed files with 25 additions and 40 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue