VulkanImage
Bigfoot / Sonarqube (game) (push) Skipped
Bigfoot / Sonarqube (toolmode) (push) Skipped
Bigfoot / Build & Test Debug with clang (Unity Build: OFF, Variant: game) (push) Successful in 1m6s
Bigfoot / Build & Test Debug with clang (Unity Build: OFF, Variant: toolmode) (push) Successful in 1m11s
Bigfoot / Build & Test Debug with clang_asan (Unity Build: OFF, Variant: game) (push) Failing after 2m19s
Bigfoot / Build & Test Debug with clang_asan (Unity Build: OFF, Variant: toolmode) (push) Failing after 2m17s
Bigfoot / Build & Test Debug with clang_asan (Unity Build: ON, Variant: toolmode) (push) Failing after 1m50s
Bigfoot / Build & Test Release with clang (Unity Build: OFF, Variant: toolmode) (push) Successful in 1m26s
Bigfoot / Build & Test Release with clang_asan (Unity Build: OFF, Variant: game) (push) Failing after 1m43s
Bigfoot / Build & Test RelWithDebInfo with clang (Unity Build: OFF, Variant: game) (push) Successful in 1m12s
Bigfoot / Build & Test Debug with clang (Unity Build: ON, Variant: game) (push) Successful in 45s
Bigfoot / Build & Test Debug with clang (Unity Build: ON, Variant: toolmode) (push) Successful in 46s
Bigfoot / Build & Test Debug with clang_asan (Unity Build: ON, Variant: game) (push) Failing after 1m43s
Bigfoot / Build & Test Release with clang (Unity Build: OFF, Variant: game) (push) Successful in 1m6s
Bigfoot / Build & Test Release with clang (Unity Build: ON, Variant: game) (push) Successful in 51s
Bigfoot / Build & Test Release with clang (Unity Build: ON, Variant: toolmode) (push) Successful in 1m12s
Bigfoot / Build & Test Release with clang_asan (Unity Build: OFF, Variant: toolmode) (push) Failing after 1m47s
Bigfoot / Build & Test Release with clang_asan (Unity Build: ON, Variant: game) (push) Failing after 1m29s
Bigfoot / Build & Test Release with clang_asan (Unity Build: ON, Variant: toolmode) (push) Failing after 1m34s
Bigfoot / Build & Test RelWithDebInfo with clang (Unity Build: OFF, Variant: toolmode) (push) Successful in 1m17s
Bigfoot / Build & Test RelWithDebInfo with clang (Unity Build: ON, Variant: game) (push) Successful in 48s
Bigfoot / Build & Test RelWithDebInfo with clang (Unity Build: ON, Variant: toolmode) (push) Successful in 51s
Bigfoot / Build & Test RelWithDebInfo with clang_asan (Unity Build: OFF, Variant: game) (push) Failing after 2m19s
Bigfoot / Build & Test RelWithDebInfo with clang_asan (Unity Build: OFF, Variant: toolmode) (push) Failing after 2m23s
Bigfoot / Build & Test RelWithDebInfo with clang_asan (Unity Build: ON, Variant: game) (push) Failing after 1m48s
Bigfoot / Build & Test RelWithDebInfo with clang_asan (Unity Build: ON, Variant: toolmode) (push) Failing after 1m50s
Bigfoot / Clang Format Checks (push) Successful in 12s

This commit is contained in:
2026-09-13 10:59:20 +02:00
parent 130ea26f4f
commit df985d0397
3 changed files with 180 additions and 0 deletions
@@ -0,0 +1,47 @@
/*********************************************************************
* \file GraphicsImage.hpp
*
* \author Romain BOULLARD
* \date September 2026
*********************************************************************/
#ifndef BIGFOOT_GRAPHICSINTERFACE_GRAPHICSIMAGE_HPP
#define BIGFOOT_GRAPHICSINTERFACE_GRAPHICSIMAGE_HPP
#include <GraphicsInterface/PixelFormat_generated.hpp>
#include <glm/glm.hpp>
namespace Bigfoot
{
class GraphicsImage
{
public:
virtual ~GraphicsImage() = default;
/**
* Get the pixel format of the image
*
* \return The image format
*/
[[nodiscard]]
virtual PixelFormat GetFormat() const = 0;
/**
* Get the size of the image
*
* \return The image extent, in pixels
*/
[[nodiscard]]
virtual glm::uvec2 GetExtent() const = 0;
GraphicsImage(const GraphicsImage& p_image) = delete;
GraphicsImage(GraphicsImage&& p_image) = delete;
GraphicsImage& operator=(const GraphicsImage& p_image) = delete;
GraphicsImage& operator=(GraphicsImage&& p_image) = delete;
protected:
GraphicsImage() = default;
};
} // namespace Bigfoot
#endif
@@ -0,0 +1,75 @@
/*********************************************************************
* \file VulkanImage.hpp
*
* \author Romain BOULLARD
* \date September 2026
*********************************************************************/
#ifndef BIGFOOT_GRAPHICSVULKAN_VULKANIMAGE_HPP
#define BIGFOOT_GRAPHICSVULKAN_VULKANIMAGE_HPP
#include <GraphicsVulkan/VulkanInclude.hpp>
#include <GraphicsInterface/GraphicsImage.hpp>
namespace Bigfoot::Vulkan
{
class VulkanImage final: public GraphicsImage
{
public:
/**
* Constructor
*
* \param p_image The underlying Vulkan image handle
* \param p_format The pixel format of the image
* \param p_extent The size of the image
*/
VulkanImage(vk::Image p_image, PixelFormat p_format, vk::Extent2D p_extent);
VulkanImage(const VulkanImage& p_image) = delete;
VulkanImage(VulkanImage&& p_image) noexcept;
VulkanImage& operator=(const VulkanImage& p_image) = delete;
VulkanImage& operator=(VulkanImage&& p_image) noexcept;
/**
* Get the pixel format of the image
*
* \return The image format
*/
[[nodiscard]]
PixelFormat GetFormat() const override;
/**
* Get the size of the image
*
* \return The image extent, in pixels
*/
[[nodiscard]]
glm::uvec2 GetExtent() const override;
/**
* Get the underlying Vulkan image handle
*
* \return The vk::Image handle
*/
[[nodiscard]]
vk::Image GetHandle() const;
private:
/**
* The vulkan image
*/
vk::Image m_image;
/**
* The pixel format of the image
*/
PixelFormat m_format;
/**
* The size of the image
*/
vk::Extent2D m_extent;
};
} // namespace Bigfoot::Vulkan
#endif
@@ -0,0 +1,58 @@
/*********************************************************************
* \file VulkanImage.cpp
*
* \author Romain BOULLARD
* \date September 2026
*********************************************************************/
#include <GraphicsVulkan/VulkanImage.hpp>
namespace Bigfoot::Vulkan
{
VulkanImage::VulkanImage(const vk::Image p_image, const PixelFormat p_format, const vk::Extent2D p_extent):
m_image(p_image),
m_format(p_format),
m_extent(p_extent)
{
}
/****************************************************************************************/
VulkanImage::VulkanImage(VulkanImage&& p_image) noexcept:
GraphicsImage(),
m_image(p_image.m_image),
m_format(p_image.m_format),
m_extent(p_image.m_extent)
{
}
/****************************************************************************************/
VulkanImage& VulkanImage::operator=(VulkanImage&& p_image) noexcept
{
m_image = p_image.m_image;
m_format = p_image.m_format;
m_extent = p_image.m_extent;
return *this;
}
/****************************************************************************************/
PixelFormat VulkanImage::GetFormat() const
{
return m_format;
}
/****************************************************************************************/
glm::uvec2 VulkanImage::GetExtent() const
{
return {m_extent.width, m_extent.height};
}
/****************************************************************************************/
vk::Image VulkanImage::GetHandle() const
{
return m_image;
}
} // namespace Bigfoot::Vulkan