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
3
4namespace Hubris::Graphics
5{
14
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
virtual void Unbind() const =0
virtual void SetData(const void *data, uint32_t size)=0
virtual uint32_t GetWidth() const =0
static Handle< Image > Create(uint32_t width, uint32_t height, Format format, uint32_t mipLevels=1, ImageMemoryType memoryType=ImageMemoryType::GPU_LOCAL)
virtual void Resize(uint32_t width, uint32_t height)=0
virtual ~Image()=default
virtual Format GetFormat() const =0
virtual void Bind(uint32_t slot=0) const =0
virtual uint32_t GetHeight() const =0
Contains all graphics related classes and structs.
Definition Format.h:9