MGL(Win32)
読み取り中…
検索中…
一致する文字列を見つけられません
mgl_render_types.h
[詳解]
1// SPDX-License-Identifier: Zlib
2/* ------------------------------------------------------------------------- */
9/* ------------------------------------------------------------------------- */
10
11#ifndef INCGUARD_MGL_RENDER_TYPES_H_1607409333
12#define INCGUARD_MGL_RENDER_TYPES_H_1607409333
13
15
16#include <cstddef>
17
18namespace MGL::Render
19{
21enum class RendererType : uint32_t {};
22
23/* ------------------------------------------------------------------------- */
29/* ------------------------------------------------------------------------- */
30[[nodiscard]] constexpr RendererType MakeRendererType(const char *type) noexcept
31{
32 return RendererType{Hash::FNV1a(type)};
33}
34
36enum class PixelFormat : uint32_t
37{
38 Unknown,
41
47
48 A8_UNorm,
49
50 // NOTE:
51 // 全てを列挙するときりがないので,とりあえず使いそうなもののみを選定.
52 // ここに無くてもレンダラデリゲート側で使用することは可能.(アプリケーション側からはUnknownになる)
53
54 Invalid = 0xFFFFFFFF
55};
56
58enum class SamplerType : uint8_t
59{
60 Invalid,
61 Nearest,
62 Linear,
63};
64
66enum class BlendMode : uint8_t
67{
68 None,
69 Alpha,
70};
71
72/* ------------------------------------------------------------------------- */
78/* ------------------------------------------------------------------------- */
79[[nodiscard]] constexpr size_t GetPixelPerBytes(PixelFormat format) noexcept
80{
81 switch (format)
82 {
83 case PixelFormat::RGBA8_UNorm:
84 case PixelFormat::BGRA8_UNorm:
85 return 4;
86
87 case PixelFormat::B5G6R5_UNorm:
88 case PixelFormat::A1BGR5_UNorm:
89 case PixelFormat::BGR5A1_UNorm:
90 case PixelFormat::ABGR4_UNorm:
91 case PixelFormat::BGRA4_UNorm:
92 return 2;
93
94 case PixelFormat::A8_UNorm:
95 return 1;
96
97 case PixelFormat::Unknown:
98 case PixelFormat::Invalid:
99 return 0;
100 }
101
102 return 0;
103}
104} // namespace MGL::Render
105
106#endif // INCGUARD_MGL_RENDER_TYPES_H_1607409333
107
108// vim: et ts=4 sw=4 sts=4
MGL FNV-1aハッシュ計算関数
constexpr RendererType MakeRendererType(const char *type) noexcept
文字列からレンダラタイプを表す値を生成
Definition mgl_render_types.h:30
BlendMode
ブレンドモード
Definition mgl_render_types.h:67
@ Alpha
アルファブレンド
RendererType
レンダラタイプの型
Definition mgl_render_types.h:21
constexpr size_t GetPixelPerBytes(PixelFormat format) noexcept
ピクセルフォーマットから1ピクセルあたりのバイト数を取得
Definition mgl_render_types.h:79
SamplerType
サンプラー
Definition mgl_render_types.h:59
@ Nearest
最近傍補間
PixelFormat
ピクセルフォーマット
Definition mgl_render_types.h:37
@ BGRA4_UNorm
16bit BGRA 各4bit
@ BGR5A1_UNorm
16bit BGRA(5,5,5,1)
@ BGRA8_UNorm
32bit BGRA 各8bit
@ ABGR4_UNorm
16bit ABGR 各4bit
@ RGBA8_UNorm
32bit RGBA 各8bit
@ B5G6R5_UNorm
16bit BGR(5,6,5)
@ A1BGR5_UNorm
16bit ABGR(1,5,5,5)
@ A8_UNorm
8bit アルファのみ