Hubris Engine
Dev
A Project to learn and get into Game Engine developement.
Loading...
Searching...
No Matches
Image.h
Go to the documentation of this file.
1
#pragma once
2
#include "
Core/Graphics/Format.h
"
3
4
namespace
Hubris::Graphics
5
{
6
enum class
ImageLayout
{
7
UNDEFINED
,
8
COLOR_ATTACHMENT
,
9
DEPTH_STENCIL_ATTACHMENT
,
10
SHADER_READ_ONLY
,
11
TRANSFER_SRC
,
12
TRANSFER_DST
13
};
14
15
enum class
ImageMemoryType
{
16
GPU_LOCAL
,
17
CPU_VISIBLE
,
18
CPU_TO_GPU
19
};
20
21
enum class
Swizzle
:
unsigned
char
{
22
X
,
Y
,
Z
,
W
23
};
24
25
class
Image
{
26
public
:
27
virtual
~Image
() =
default
;
28
29
virtual
void
Bind
(uint32_t slot = 0)
const
= 0;
30
virtual
void
Unbind
()
const
= 0;
31
32
virtual
uint32_t
GetWidth
()
const
= 0;
33
virtual
uint32_t
GetHeight
()
const
= 0;
34
virtual
Format
GetFormat
()
const
= 0;
35
36
virtual
void
SetData
(
const
void
* data, uint32_t size) = 0;
37
virtual
void
Resize
(uint32_t width, uint32_t height) = 0;
38
39
static
Handle<Image>
Create
(uint32_t width, uint32_t height,
40
Format
format, uint32_t mipLevels = 1,
ImageMemoryType
memoryType =
ImageMemoryType::GPU_LOCAL
);
41
42
protected
:
43
Image
() =
default
;
44
};
45
46
}
// namespace Hubris::Graphics
Format.h
Hubris::Graphics::Image::Unbind
virtual void Unbind() const =0
Hubris::Graphics::Image::Image
Image()=default
Hubris::Graphics::Image::SetData
virtual void SetData(const void *data, uint32_t size)=0
Hubris::Graphics::Image::GetWidth
virtual uint32_t GetWidth() const =0
Hubris::Graphics::Image::Create
static Handle< Image > Create(uint32_t width, uint32_t height, Format format, uint32_t mipLevels=1, ImageMemoryType memoryType=ImageMemoryType::GPU_LOCAL)
Hubris::Graphics::Image::Resize
virtual void Resize(uint32_t width, uint32_t height)=0
Hubris::Graphics::Image::~Image
virtual ~Image()=default
Hubris::Graphics::Image::GetFormat
virtual Format GetFormat() const =0
Hubris::Graphics::Image::Bind
virtual void Bind(uint32_t slot=0) const =0
Hubris::Graphics::Image::GetHeight
virtual uint32_t GetHeight() const =0
Hubris::Graphics
Contains all graphics related classes and structs.
Definition
Format.h:9
Hubris::Graphics::ImageLayout
ImageLayout
Definition
Image.h:6
Hubris::Graphics::ImageLayout::UNDEFINED
@ UNDEFINED
Definition
Image.h:7
Hubris::Graphics::ImageLayout::SHADER_READ_ONLY
@ SHADER_READ_ONLY
Definition
Image.h:10
Hubris::Graphics::ImageLayout::DEPTH_STENCIL_ATTACHMENT
@ DEPTH_STENCIL_ATTACHMENT
Definition
Image.h:9
Hubris::Graphics::ImageLayout::TRANSFER_SRC
@ TRANSFER_SRC
Definition
Image.h:11
Hubris::Graphics::ImageLayout::TRANSFER_DST
@ TRANSFER_DST
Definition
Image.h:12
Hubris::Graphics::ImageLayout::COLOR_ATTACHMENT
@ COLOR_ATTACHMENT
Definition
Image.h:8
Hubris::Graphics::Swizzle
Swizzle
Definition
Image.h:21
Hubris::Graphics::Swizzle::X
@ X
Definition
Image.h:22
Hubris::Graphics::Swizzle::Z
@ Z
Definition
Image.h:22
Hubris::Graphics::Swizzle::Y
@ Y
Definition
Image.h:22
Hubris::Graphics::Swizzle::W
@ W
Definition
Image.h:22
Hubris::Graphics::ImageMemoryType
ImageMemoryType
Definition
Image.h:15
Hubris::Graphics::ImageMemoryType::CPU_TO_GPU
@ CPU_TO_GPU
Definition
Image.h:18
Hubris::Graphics::ImageMemoryType::CPU_VISIBLE
@ CPU_VISIBLE
Definition
Image.h:17
Hubris::Graphics::ImageMemoryType::GPU_LOCAL
@ GPU_LOCAL
Definition
Image.h:16
Hubris::Graphics::Format
Format
Definition
Format.h:24
Hubris::Handle
Definition
Memory.h:462
include
Core
Graphics
Image.h
Generated by
1.13.2