Nebula
Loading...
Searching...
No Matches
pixelformat.h
Go to the documentation of this file.
1#pragma once
2//------------------------------------------------------------------------------
14//------------------------------------------------------------------------------
15#include "core/types.h"
16#include "util/string.h"
17#include "coregraphics/config.h"
18
19namespace CoreGraphics
20{
22{
23public:
25 enum Code
26 {
47 R16F, // 16 bit float, red only
48 R16, // 16 bit integer
49 R16G16F, // 32 bit float, 16 bit red, 16 bit green
50 R16G16, // 32 bit integer, 16 bit red, 16 bit green
51 R16G16B16A16F, // 64 bit float, 16 bit rgba each
52 R16G16B16A16, // 64 bit int, 16 bit rgba each
53 R32F, // 32 bit float, red only
54 R32, // 32 bit int, red only
55 R32G32F, // 64 bit float, 32 bit red, 32 bit green
56 R32G32, // 64 bit, 32 bit red, 32 bit green
57 R32G32B32A32F, // 128 bit float, 32 bit rgba each
58 R32G32B32A32, // 128 bit integer, 32 bit rgba each
59 R32G32B32F, // 96 bit float, 32 bit rgb each
60 R32G32B32, // 96 bit integer, 32 bit rgb each
61 R11G11B10F, // 32 bit float, 11 bits red and green, 10 bit blue
68
73
79
80
82
86 InvalidPixelFormat = 0xFFFFFFFF,
87 };
88
90 static Code FromString(const Util::String& str);
92 static Util::String ToString(Code code);
94 static uint ToSize(Code code);
96 static uint ToChannels(Code code);
98 static bool ToCompressed(Code code);
100 static SizeT ToTexelSize(Code code);
102 static SizeT ToBlockSize(Code code);
104 static bool IsDepthFormat(Code code);
106 static bool IsStencilFormat(Code code);
108 static bool IsDepthStencilFormat(Code code);
109
112};
113
114} // namespace CoreGraphics
115//------------------------------------------------------------------------------
116
Pixel format enumeration.
Definition pixelformat.h:22
Code
enums
Definition pixelformat.h:26
@ DXT5
Definition pixelformat.h:36
@ R10G10B10A2
Definition pixelformat.h:65
@ BC7sRGB
Definition pixelformat.h:45
@ DXT3
Definition pixelformat.h:35
@ S8
Definition pixelformat.h:72
@ BC4
Definition pixelformat.h:41
@ D16S8
Definition pixelformat.h:70
@ R16G16
Definition pixelformat.h:50
@ BC3
Definition pixelformat.h:84
@ R16G16B16A16F
Definition pixelformat.h:51
@ R16G16F
Definition pixelformat.h:49
@ BC5
Definition pixelformat.h:42
@ InvalidPixelFormat
Definition pixelformat.h:86
@ DXT1
Definition pixelformat.h:33
@ DXT1sRGB
Definition pixelformat.h:37
@ DXT1AsRGB
Definition pixelformat.h:38
@ DXT3sRGB
Definition pixelformat.h:39
@ R9G9B9E5F
Definition pixelformat.h:62
@ R32
Definition pixelformat.h:54
@ R11G11B10F
Definition pixelformat.h:61
@ DXT5sRGB
Definition pixelformat.h:40
@ R32G32F
Definition pixelformat.h:55
@ SRGBA8
Definition pixelformat.h:63
@ BC7
Definition pixelformat.h:44
@ NumPixelFormats
Definition pixelformat.h:81
@ R32G32B32A32
Definition pixelformat.h:58
@ R8G8B8
Definition pixelformat.h:28
@ BC6H
Definition pixelformat.h:43
@ R32G32
Definition pixelformat.h:56
@ B5G6R5A1
Definition pixelformat.h:77
@ D32S8
Definition pixelformat.h:69
@ R32G32B32A32F
Definition pixelformat.h:57
@ R8G8B8X8
Definition pixelformat.h:27
@ R32F
Definition pixelformat.h:53
@ BC1
Definition pixelformat.h:83
@ D32
Definition pixelformat.h:71
@ R8
Definition pixelformat.h:46
@ B8G8R8
Definition pixelformat.h:74
@ R32G32B32F
Definition pixelformat.h:59
@ R16G16B16A16
Definition pixelformat.h:52
@ R5G6B5
Definition pixelformat.h:30
@ DXT1A
Definition pixelformat.h:34
@ R4G4B4A4
Definition pixelformat.h:32
@ B4G4R4A4
Definition pixelformat.h:78
@ R16
Definition pixelformat.h:48
@ R10G10B10X2
Definition pixelformat.h:64
@ R16F
Definition pixelformat.h:47
@ B5G6R5
Definition pixelformat.h:76
@ B8G8R8A8
Definition pixelformat.h:75
@ R8G8B8A8
Definition pixelformat.h:29
@ D24S8
Definition pixelformat.h:67
@ BC3sRGB
Definition pixelformat.h:85
@ R5G5B5A1
Definition pixelformat.h:31
@ D24X8
Definition pixelformat.h:66
@ R32G32B32
Definition pixelformat.h:60
static bool IsDepthStencilFormat(Code code)
Return true if depth/stencil format.
Definition pixelformat.cc:415
static Code FromString(const Util::String &str)
convert from string
Definition pixelformat.cc:18
static Util::String ToString(Code code)
convert to string
Definition pixelformat.cc:75
static bool IsDepthFormat(Code code)
return true if depth format
Definition pixelformat.cc:375
static bool ToCompressed(Code code)
figure out if block compressed
Definition pixelformat.cc:264
static uint ToSize(Code code)
convert to byte size
Definition pixelformat.cc:134
static SizeT ToTexelSize(Code code)
calculate texel dimensions
Definition pixelformat.cc:291
static SizeT ToBlockSize(Code code)
Calculate texel block size.
Definition pixelformat.cc:348
static CoreGraphics::ImageBits ToImageBits(Code code)
Return Image bits from format.
Definition pixelformat.cc:437
static bool IsStencilFormat(Code code)
return true if depth format
Definition pixelformat.cc:396
static uint ToChannels(Code code)
convert to number of channesl
Definition pixelformat.cc:206
Nebula's universal string class.
Definition string.h:50
Acceleration structures are used to enable ray tracing on the GPU by dividing the scene into a BVH.
Definition accelerationstructure.h:24
ImageBits
Definition config.h:82
Compile time configuration options for the CoreGraphics subsystem.
int SizeT
Definition types.h:42
unsigned int uint
Definition types.h:33