5#include <Common/Containers/Bitset.hpp>
9namespace Grindstone::GraphicsAPI {
10 enum class ImageUsageFlags : uint8_t {
12 RenderTarget = 1 << 1,
13 DepthStencil = 1 << 2,
15 GenerateMipmaps = 1 << 4,
25 static constexpr const char* names[] = {
35 static constexpr size_t size = 8;
38inline Grindstone::GraphicsAPI::ImageUsageFlags operator|(Grindstone::GraphicsAPI::ImageUsageFlags a,
const Grindstone::GraphicsAPI::ImageUsageFlags b) {
39 using Underlying = uint8_t;
40 return static_cast<Grindstone::GraphicsAPI::ImageUsageFlags
>(
static_cast<Underlying
>(a) |
static_cast<Underlying
>(b));
43namespace Grindstone::GraphicsAPI {
51 const char* debugName;
55 uint32_t mipLevels = 1;
56 uint32_t arrayLayers = 1;
58 GraphicsAPI::Format format = GraphicsAPI::Format::Invalid;
59 GraphicsAPI::ImageDimension imageDimensions = GraphicsAPI::ImageDimension::Dimension2D;
62 const char* initialData =
nullptr;
63 uint64_t initialDataSize = 0;
66 virtual void Resize(uint32_t width, uint32_t height) = 0;
67 virtual void UploadData(
const char* data, uint64_t dataSize) = 0;
Definition Bitset.hpp:331
Definition EnumTraits.hpp:10