Renderer/RenderFrame: Use FunctionRef instead of std::function to avoid allocations
This commit is contained in:
@@ -22,7 +22,7 @@ namespace Nz
|
||||
public:
|
||||
OpenGLRenderImage(OpenGLRenderWindow& owner);
|
||||
|
||||
void Execute(const std::function<void(CommandBufferBuilder& builder)>& callback, QueueTypeFlags queueTypeFlags) override;
|
||||
void Execute(const FunctionRef<void(CommandBufferBuilder& builder)>& callback, QueueTypeFlags queueTypeFlags) override;
|
||||
|
||||
OpenGLUploadPool& GetUploadPool() override;
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include <Nazara/Renderer/Config.hpp>
|
||||
#include <Nazara/Renderer/Enums.hpp>
|
||||
#include <Nazara/Renderer/RenderImage.hpp>
|
||||
#include <Nazara/Utils/FunctionRef.hpp>
|
||||
#include <functional>
|
||||
|
||||
namespace Nz
|
||||
@@ -29,7 +30,7 @@ namespace Nz
|
||||
RenderFrame(RenderFrame&&) = delete;
|
||||
~RenderFrame() = default;
|
||||
|
||||
void Execute(const std::function<void(CommandBufferBuilder& builder)>& callback, QueueTypeFlags queueTypeFlags);
|
||||
void Execute(const FunctionRef<void(CommandBufferBuilder& builder)>& callback, QueueTypeFlags queueTypeFlags);
|
||||
|
||||
inline std::size_t GetFramebufferIndex() const;
|
||||
const Vector2ui& GetSize() const;
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include <Nazara/Prerequisites.hpp>
|
||||
#include <Nazara/Renderer/Config.hpp>
|
||||
#include <Nazara/Renderer/Enums.hpp>
|
||||
#include <Nazara/Utils/FunctionRef.hpp>
|
||||
#include <functional>
|
||||
#include <vector>
|
||||
|
||||
@@ -27,7 +28,7 @@ namespace Nz
|
||||
|
||||
virtual ~RenderImage();
|
||||
|
||||
virtual void Execute(const std::function<void(CommandBufferBuilder& builder)>& callback, QueueTypeFlags queueTypeFlags) = 0;
|
||||
virtual void Execute(const FunctionRef<void(CommandBufferBuilder& builder)>& callback, QueueTypeFlags queueTypeFlags) = 0;
|
||||
|
||||
inline void FlushReleaseQueue();
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace Nz
|
||||
VulkanRenderImage(VulkanRenderImage&&) = delete;
|
||||
~VulkanRenderImage();
|
||||
|
||||
void Execute(const std::function<void(CommandBufferBuilder& builder)>& callback, QueueTypeFlags queueTypeFlags) override;
|
||||
void Execute(const FunctionRef<void(CommandBufferBuilder& builder)>& callback, QueueTypeFlags queueTypeFlags) override;
|
||||
|
||||
inline Vk::Fence& GetInFlightFence();
|
||||
inline Vk::Semaphore& GetImageAvailableSemaphore();
|
||||
|
||||
Reference in New Issue
Block a user