VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
constants.cpp
Go to the documentation of this file.
1
// SPDX-License-Identifier: Apache-2.0
2
// Copyright 2025-2026 Arnis Lektauers
3
//
4
// Created by Arnis Lektauers on 19.09.2025.
5
//
6
7
#include "
constants.h
"
8
9
#include <unordered_map>
10
11
namespace
visutwin::canvas
12
{
13
struct
PixelFormatInfo
14
{
15
uint32_t
size
;
16
uint32_t
blockSize
= 0;
17
bool
isInt
=
false
;
18
};
19
20
// Information about pixel formats
21
static
std::unordered_map<PixelFormat, PixelFormatInfo> pixelFormatInfo {
22
// float formats
23
{
PixelFormat::PIXELFORMAT_RGB8
, { .size = 4 } },
24
{
PixelFormat::PIXELFORMAT_RGBA8
, { .size = 4 } },
25
{
PixelFormat::PIXELFORMAT_RGBA16F
, { .size = 8 } },
26
{
PixelFormat::PIXELFORMAT_RGBA32F
, { .size = 16 } },
27
{
PixelFormat::PIXELFORMAT_DEPTHSTENCIL
, {} },
28
{
PixelFormat::PIXELFORMAT_DEPTH
, { .size = 4 } },
29
{
PixelFormat::PIXELFORMAT_R8
, { .size = 1 } },
30
{
PixelFormat::PIXELFORMAT_RG8
, { .size = 2 } },
31
};
32
33
bool
isCompressedPixelFormat
(
const
PixelFormat
format)
34
{
35
return
pixelFormatInfo[format].blockSize > 0;
36
}
37
38
bool
isIntegerPixelFormat
(
const
PixelFormat
format) {
39
return
pixelFormatInfo[format].isInt ==
true
;
40
};
41
42
}
visutwin::canvas
Definition
eventHandler.cpp:9
visutwin::canvas::PixelFormat
PixelFormat
Definition
constants.h:32
visutwin::canvas::PixelFormat::PIXELFORMAT_RG8
@ PIXELFORMAT_RG8
Definition
constants.h:41
visutwin::canvas::PixelFormat::PIXELFORMAT_RGB8
@ PIXELFORMAT_RGB8
Definition
constants.h:33
visutwin::canvas::PixelFormat::PIXELFORMAT_R8
@ PIXELFORMAT_R8
Definition
constants.h:40
visutwin::canvas::PixelFormat::PIXELFORMAT_DEPTHSTENCIL
@ PIXELFORMAT_DEPTHSTENCIL
Definition
constants.h:38
visutwin::canvas::PixelFormat::PIXELFORMAT_DEPTH
@ PIXELFORMAT_DEPTH
Definition
constants.h:39
visutwin::canvas::PixelFormat::PIXELFORMAT_RGBA32F
@ PIXELFORMAT_RGBA32F
Definition
constants.h:36
visutwin::canvas::PixelFormat::PIXELFORMAT_RGBA16F
@ PIXELFORMAT_RGBA16F
Definition
constants.h:35
visutwin::canvas::PixelFormat::PIXELFORMAT_RGBA8
@ PIXELFORMAT_RGBA8
Definition
constants.h:34
visutwin::canvas::isCompressedPixelFormat
bool isCompressedPixelFormat(const PixelFormat format)
Definition
constants.cpp:33
visutwin::canvas::isIntegerPixelFormat
bool isIntegerPixelFormat(const PixelFormat format)
Definition
constants.cpp:38
constants.h
visutwin::canvas::PixelFormatInfo
Definition
constants.cpp:14
visutwin::canvas::PixelFormatInfo::isInt
bool isInt
Definition
constants.cpp:17
visutwin::canvas::PixelFormatInfo::size
uint32_t size
Definition
constants.cpp:15
visutwin::canvas::PixelFormatInfo::blockSize
uint32_t blockSize
Definition
constants.cpp:16
platform
graphics
constants.cpp
Generated by
1.16.1