Grindstone Game Engine
v0.2.0
An open source game engine and toolkit.
Toggle main menu visibility
Loading...
Searching...
No Matches
VulkanImage.hpp
1
#pragma once
2
3
#include <Common/Graphics/Image.hpp>
4
#include <vulkan/vulkan.h>
5
6
namespace
Grindstone::GraphicsAPI::Vulkan
{
7
class
Image :
public
Grindstone::GraphicsAPI::Image
{
8
public
:
9
Image(VkImage image, VkFormat format,
const
char
* debugName);
10
Image(
const
CreateInfo
& createInfo);
11
void
Create();
12
virtual
~Image();
13
public
:
14
virtual
VkImage GetImage()
const
;
15
virtual
VkImageView GetImageView()
const
;
16
uint32_t GetWidth()
const
;
17
uint32_t GetHeight()
const
;
18
uint32_t GetDepth()
const
;
19
uint32_t GetMipLevels()
const
;
20
uint32_t GetArrayLayers()
const
;
21
VkImageAspectFlags GetAspect()
const
;
22
void
UpdateNativeImage(VkImage image, VkImageView imageView, VkFormat format);
23
virtual
void
GenerateMipmaps(VkCommandBuffer cmd, VkImage image);
24
virtual
void
Resize(uint32_t width, uint32_t height)
override
;
25
virtual
void
UploadData(
26
const
char
* data,
27
uint64_t dataSize
28
)
override
;
29
virtual
void
UploadDataRegions(
void
* buffer,
size_t
bufferSize,
ImageRegion
* regions, uint32_t regionCount)
override
;
30
virtual
void
* MapMemory(uint64_t dataSize = MAPPED_MEMORY_ENTIRE_BUFFER, uint64_t dataOffset = 0)
override
;
31
virtual
void
UnmapMemory()
override
;
32
virtual
Grindstone::Buffer
ReadbackMemory()
override
;
33
private
:
34
void
CreateImage();
35
36
std::string imageName;
37
VkImageAspectFlags aspect;
38
VkImageViewType imageViewType;
39
VkDeviceMemory imageMemory =
nullptr
;
40
VkImageView imageView =
nullptr
;
41
VkImage image =
nullptr
;
42
VkFormat vkFormat = VK_FORMAT_UNDEFINED;
43
};
44
}
Grindstone::Buffer
Definition
Buffer.hpp:9
Grindstone::GraphicsAPI::Image
Definition
Image.hpp:49
Grindstone::GraphicsAPI::Vulkan
Definition
ImguiRendererVulkan.hpp:11
Grindstone::GraphicsAPI::Image::CreateInfo
Definition
Image.hpp:53
Grindstone::GraphicsAPI::Image::ImageRegion
Definition
Image.hpp:72
plugins
Grindstone.RHI.Vulkan
include
VulkanImage.hpp
Generated by
1.17.0