Renderer/RenderTarget: Add size method and signal
This commit is contained in:
@@ -1,40 +0,0 @@
|
||||
// Copyright (C) 201 Jérôme Leclercq
|
||||
// This file is part of the "Nazara Engine - Vulkan Renderer"
|
||||
// For conditions of distribution and use, see copyright notice in Config.hpp
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef NAZARA_VULKANRENDERER_RENDERTARGET_HPP
|
||||
#define NAZARA_VULKANRENDERER_RENDERTARGET_HPP
|
||||
|
||||
#include <Nazara/Prerequisites.hpp>
|
||||
#include <Nazara/Core/Signal.hpp>
|
||||
#include <Nazara/VulkanRenderer/Config.hpp>
|
||||
#include <Nazara/VulkanRenderer/Wrapper/Framebuffer.hpp>
|
||||
#include <Nazara/VulkanRenderer/Wrapper/RenderPass.hpp>
|
||||
#include <Nazara/VulkanRenderer/Wrapper/Semaphore.hpp>
|
||||
#include <unordered_map>
|
||||
#include <vulkan/vulkan_core.h>
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
class NAZARA_VULKANRENDERER_API VkRenderTarget
|
||||
{
|
||||
public:
|
||||
VkRenderTarget() = default;
|
||||
VkRenderTarget(const VkRenderTarget&) = delete;
|
||||
VkRenderTarget(VkRenderTarget&&) = delete; ///TOOD?
|
||||
virtual ~VkRenderTarget();
|
||||
|
||||
VkRenderTarget& operator=(const VkRenderTarget&) = delete;
|
||||
VkRenderTarget& operator=(VkRenderTarget&&) = delete; ///TOOD?
|
||||
|
||||
// Signals:
|
||||
NazaraSignal(OnRenderTargetRelease, const VkRenderTarget* /*renderTarget*/);
|
||||
NazaraSignal(OnRenderTargetSizeChange, const VkRenderTarget* /*renderTarget*/);
|
||||
};
|
||||
}
|
||||
|
||||
#include <Nazara/VulkanRenderer/VkRenderTarget.inl>
|
||||
|
||||
#endif // NAZARA_VULKANRENDERER_RENDERTARGET_HPP
|
||||
@@ -1,12 +0,0 @@
|
||||
// Copyright (C) 2020 Jérôme Leclercq
|
||||
// This file is part of the "Nazara Engine - Vulkan Renderer"
|
||||
// For conditions of distribution and use, see copyright notice in Config.hpp
|
||||
|
||||
#include <Nazara/VulkanRenderer/VkRenderTarget.hpp>
|
||||
#include <Nazara/VulkanRenderer/Debug.hpp>
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
}
|
||||
|
||||
#include <Nazara/VulkanRenderer/DebugOff.hpp>
|
||||
@@ -18,12 +18,12 @@
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
class VkRenderWindow;
|
||||
class VulkanRenderWindow;
|
||||
|
||||
class NAZARA_VULKANRENDERER_API VulkanRenderImage : public RenderImage
|
||||
{
|
||||
public:
|
||||
VulkanRenderImage(VkRenderWindow& owner);
|
||||
VulkanRenderImage(VulkanRenderWindow& owner);
|
||||
VulkanRenderImage(const VulkanRenderImage&) = delete;
|
||||
VulkanRenderImage(VulkanRenderImage&&) noexcept = default;
|
||||
~VulkanRenderImage();
|
||||
@@ -50,7 +50,7 @@ namespace Nz
|
||||
std::size_t m_currentCommandBuffer;
|
||||
std::vector<Vk::AutoCommandBuffer> m_inFlightCommandBuffers;
|
||||
std::vector<VkCommandBuffer> m_graphicalCommandsBuffers;
|
||||
VkRenderWindow& m_owner;
|
||||
VulkanRenderWindow& m_owner;
|
||||
Vk::CommandPool m_commandPool;
|
||||
Vk::Fence m_inFlightFence;
|
||||
Vk::Semaphore m_imageAvailableSemaphore;
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
#include <Nazara/VulkanRenderer/VulkanWindowFramebuffer.hpp>
|
||||
#include <Nazara/VulkanRenderer/VulkanRenderImage.hpp>
|
||||
#include <Nazara/VulkanRenderer/VulkanRenderPass.hpp>
|
||||
#include <Nazara/VulkanRenderer/VkRenderTarget.hpp>
|
||||
#include <Nazara/VulkanRenderer/Wrapper/CommandBuffer.hpp>
|
||||
#include <Nazara/VulkanRenderer/Wrapper/CommandPool.hpp>
|
||||
#include <Nazara/VulkanRenderer/Wrapper/Device.hpp>
|
||||
@@ -34,13 +33,13 @@
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
class NAZARA_VULKANRENDERER_API VkRenderWindow : public VkRenderTarget, public RenderWindowImpl
|
||||
class NAZARA_VULKANRENDERER_API VulkanRenderWindow : public RenderWindowImpl
|
||||
{
|
||||
public:
|
||||
VkRenderWindow(RenderWindow& owner);
|
||||
VkRenderWindow(const VkRenderWindow&) = delete;
|
||||
VkRenderWindow(VkRenderWindow&&) = delete; ///TODO
|
||||
~VkRenderWindow();
|
||||
VulkanRenderWindow(RenderWindow& owner);
|
||||
VulkanRenderWindow(const VulkanRenderWindow&) = delete;
|
||||
VulkanRenderWindow(VulkanRenderWindow&&) = delete; ///TODO
|
||||
~VulkanRenderWindow();
|
||||
|
||||
RenderFrame Acquire() override;
|
||||
|
||||
@@ -53,13 +52,14 @@ namespace Nz
|
||||
inline VulkanDevice& GetDevice();
|
||||
inline const VulkanDevice& GetDevice() const;
|
||||
inline Vk::QueueHandle& GetGraphicsQueue();
|
||||
inline const VulkanRenderPass& GetRenderPass() const override;
|
||||
const VulkanRenderPass& GetRenderPass() const override;
|
||||
const Vector2ui& GetSize() const override;
|
||||
inline const Vk::Swapchain& GetSwapchain() const;
|
||||
|
||||
void Present(UInt32 imageIndex, VkSemaphore waitSemaphore = VK_NULL_HANDLE);
|
||||
|
||||
VkRenderWindow& operator=(const VkRenderWindow&) = delete;
|
||||
VkRenderWindow& operator=(VkRenderWindow&&) = delete; ///TODO
|
||||
VulkanRenderWindow& operator=(const VulkanRenderWindow&) = delete;
|
||||
VulkanRenderWindow& operator=(VulkanRenderWindow&&) = delete; ///TODO
|
||||
|
||||
private:
|
||||
bool CreateSwapchain(Vk::Surface& surface, const Vector2ui& size);
|
||||
@@ -90,6 +90,6 @@ namespace Nz
|
||||
};
|
||||
}
|
||||
|
||||
#include <Nazara/VulkanRenderer/VkRenderWindow.inl>
|
||||
#include <Nazara/VulkanRenderer/VulkanRenderWindow.inl>
|
||||
|
||||
#endif // NAZARA_VULKANRENDERER_RENDERWINDOW_HPP
|
||||
@@ -2,32 +2,27 @@
|
||||
// This file is part of the "Nazara Engine - Vulkan Renderer"
|
||||
// For conditions of distribution and use, see copyright notice in Config.hpp
|
||||
|
||||
#include <Nazara/VulkanRenderer/VkRenderWindow.hpp>
|
||||
#include <Nazara/VulkanRenderer/VulkanRenderWindow.hpp>
|
||||
#include <Nazara/VulkanRenderer/Debug.hpp>
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
inline VulkanDevice& VkRenderWindow::GetDevice()
|
||||
inline VulkanDevice& VulkanRenderWindow::GetDevice()
|
||||
{
|
||||
return *m_device;
|
||||
}
|
||||
|
||||
inline const VulkanDevice& VkRenderWindow::GetDevice() const
|
||||
inline const VulkanDevice& VulkanRenderWindow::GetDevice() const
|
||||
{
|
||||
return *m_device;
|
||||
}
|
||||
|
||||
inline Vk::QueueHandle& VkRenderWindow::GetGraphicsQueue()
|
||||
inline Vk::QueueHandle& VulkanRenderWindow::GetGraphicsQueue()
|
||||
{
|
||||
return m_graphicsQueue;
|
||||
}
|
||||
|
||||
inline const VulkanRenderPass& VkRenderWindow::GetRenderPass() const
|
||||
{
|
||||
return *m_renderPass;
|
||||
}
|
||||
|
||||
inline const Vk::Swapchain& VkRenderWindow::GetSwapchain() const
|
||||
inline const Vk::Swapchain& VulkanRenderWindow::GetSwapchain() const
|
||||
{
|
||||
return m_swapchain;
|
||||
}
|
||||
Reference in New Issue
Block a user