diff --git a/include/Nazara/Renderer/Renderer.hpp b/include/Nazara/Renderer/Renderer.hpp index 2b5625ea2..50f8b0717 100644 --- a/include/Nazara/Renderer/Renderer.hpp +++ b/include/Nazara/Renderer/Renderer.hpp @@ -31,6 +31,9 @@ class NAZARA_API NzRenderer friend NzTexture; public: + using DrawCall = void (*)(nzPrimitiveMode, unsigned int, unsigned int); + using DrawCallInstanced = void (*)(unsigned int, nzPrimitiveMode, unsigned int, unsigned int); + NzRenderer() = delete; ~NzRenderer() = delete; diff --git a/src/Nazara/Graphics/DeferredGeometryPass.cpp b/src/Nazara/Graphics/DeferredGeometryPass.cpp index 93052d322..c38c45cdd 100644 --- a/src/Nazara/Graphics/DeferredGeometryPass.cpp +++ b/src/Nazara/Graphics/DeferredGeometryPass.cpp @@ -101,20 +101,20 @@ bool NzDeferredGeometryPass::Process(const NzScene* scene, unsigned int firstWor const NzVertexBuffer* vertexBuffer = meshData.vertexBuffer; // Gestion du draw call avant la boucle de rendu - std::function DrawFunc; - std::function InstancedDrawFunc; + NzRenderer::DrawCall drawFunc; + NzRenderer::DrawCallInstanced instancedDrawFunc; unsigned int indexCount; if (indexBuffer) { - DrawFunc = NzRenderer::DrawIndexedPrimitives; - InstancedDrawFunc = NzRenderer::DrawIndexedPrimitivesInstanced; + drawFunc = NzRenderer::DrawIndexedPrimitives; + instancedDrawFunc = NzRenderer::DrawIndexedPrimitivesInstanced; indexCount = indexBuffer->GetIndexCount(); } else { - DrawFunc = NzRenderer::DrawPrimitives; - InstancedDrawFunc = NzRenderer::DrawPrimitivesInstanced; + drawFunc = NzRenderer::DrawPrimitives; + instancedDrawFunc = NzRenderer::DrawPrimitivesInstanced; indexCount = vertexBuffer->GetVertexCount(); } diff --git a/src/Nazara/Graphics/ForwardRenderTechnique.cpp b/src/Nazara/Graphics/ForwardRenderTechnique.cpp index 22f2a1234..2144d5803 100644 --- a/src/Nazara/Graphics/ForwardRenderTechnique.cpp +++ b/src/Nazara/Graphics/ForwardRenderTechnique.cpp @@ -470,20 +470,20 @@ void NzForwardRenderTechnique::DrawOpaqueModels(const NzScene* scene) const const NzVertexBuffer* vertexBuffer = meshData.vertexBuffer; // Gestion du draw call avant la boucle de rendu - std::function DrawFunc; - std::function InstancedDrawFunc; + NzRenderer::DrawCall drawFunc; + NzRenderer::DrawCallInstanced instancedDrawFunc; unsigned int indexCount; if (indexBuffer) { - DrawFunc = NzRenderer::DrawIndexedPrimitives; - InstancedDrawFunc = NzRenderer::DrawIndexedPrimitivesInstanced; + drawFunc = NzRenderer::DrawIndexedPrimitives; + instancedDrawFunc = NzRenderer::DrawIndexedPrimitivesInstanced; indexCount = indexBuffer->GetIndexCount(); } else { - DrawFunc = NzRenderer::DrawPrimitives; - InstancedDrawFunc = NzRenderer::DrawPrimitivesInstanced; + drawFunc = NzRenderer::DrawPrimitives; + instancedDrawFunc = NzRenderer::DrawPrimitivesInstanced; indexCount = vertexBuffer->GetVertexCount(); } @@ -672,17 +672,17 @@ void NzForwardRenderTechnique::DrawTransparentModels(const NzScene* scene) const const NzVertexBuffer* vertexBuffer = meshData.vertexBuffer; // Gestion du draw call avant la boucle de rendu - std::function DrawFunc; + NzRenderer::DrawCall drawFunc; unsigned int indexCount; if (indexBuffer) { - DrawFunc = NzRenderer::DrawIndexedPrimitives; + drawFunc = NzRenderer::DrawIndexedPrimitives; indexCount = indexBuffer->GetIndexCount(); } else { - DrawFunc = NzRenderer::DrawPrimitives; + drawFunc = NzRenderer::DrawPrimitives; indexCount = vertexBuffer->GetVertexCount(); }