rolmodl
C++ API for the Simple Directmedia Library 2 (SDL2)
PixelFmt.hpp
Go to the documentation of this file.
1 #pragma once
2 
4 
5 #include "forwarddecl/PixelFmt.hpp"
6 
8 namespace rolmodl {
10  namespace pixelfmt {}
11 }
12 namespace rolmodl::pixelfmt {
13  enum class Id {
14  unknown,
15  index1lsb,
16  index1msb,
17  index4lsb,
18  index4msb,
19  index8,
20  rgb332,
21  rgb444,
22  rgb555,
23  bgr555,
24  argb4444,
25  rgba4444,
26  abgr4444,
27  bgra4444,
28  argb1555,
29  rgba5551,
30  abgr1555,
31  bgra5551,
32  rgb565,
33  bgr565,
34  rgb24,
35  bgr24,
36  rgb888,
37  rgbx8888,
38  bgr888,
39  bgrx8888,
40  argb8888,
41  rgba8888,
42  abgr8888,
43  bgra8888,
44  argb2101010,
45  // 31 lines
46 
47  yv12,
48  iyuv,
49  yuy2,
50  uyvy,
51  yvyu,
52  nv12,
53  nv21,
54  // 7 lines
55 
56  // = 48 total
57 
58  // aliases
59  rgba32,
60  argb32,
61  bgra32,
62  abgr32
63  };
64  constexpr size_t unique_count = 48;
65 
66  namespace id::unsafe {
67  constexpr Id fromSDLEnum(const uint32_t val) noexcept;
68  constexpr uint32_t toSDLEnum(const Id i) noexcept;
69  }
70 
71  namespace id {
72  constexpr const char* toString(const Id id) noexcept {
73  if (id == Id::unknown) return "unknown";
74  if (id == Id::index1lsb) return "index1lsb";
75  if (id == Id::index1msb) return "index1msb";
76  if (id == Id::index4lsb) return "index4lsb";
77  if (id == Id::index4msb) return "index4msb";
78  if (id == Id::index8) return "index8";
79  if (id == Id::rgb332) return "rgb332";
80  if (id == Id::rgb444) return "rgb444";
81  if (id == Id::rgb555) return "rgb555";
82  if (id == Id::bgr555) return "bgr555";
83  if (id == Id::argb4444) return "argb4444";
84  if (id == Id::rgba4444) return "rgba4444";
85  if (id == Id::abgr4444) return "abgr4444";
86  if (id == Id::bgra4444) return "bgra4444";
87  if (id == Id::argb1555) return "argb1555";
88  if (id == Id::rgba5551) return "rgba5551";
89  if (id == Id::abgr1555) return "abgr1555";
90  if (id == Id::bgra5551) return "bgra5551";
91  if (id == Id::rgb565) return "rgb565";
92  if (id == Id::bgr565) return "bgr565";
93  if (id == Id::rgb24) return "rgb24";
94  if (id == Id::bgr24) return "bgr24";
95  if (id == Id::rgb888) return "rgb888";
96  if (id == Id::rgbx8888) return "rgbx8888";
97  if (id == Id::bgr888) return "bgr888";
98  if (id == Id::bgrx8888) return "bgrx8888";
99  if (id == Id::argb8888) return "argb8888";
100  if (id == Id::rgba8888) return "rgba8888";
101  if (id == Id::abgr8888) return "abgr8888";
102  if (id == Id::bgra8888) return "bgra8888";
103  if (id == Id::argb2101010) return "argb2101010";
104  // 31 lines
105 
106  if (id == Id::yv12) return "yv12";
107  if (id == Id::iyuv) return "iyuv";
108  if (id == Id::yuy2) return "yuy2";
109  if (id == Id::uyvy) return "uyvy";
110  if (id == Id::yvyu) return "yvyu";
111  if (id == Id::nv12) return "nv12";
112  if (id == Id::nv21) return "nv21";
113  // 7 lines
114 
115  // = 48 total
116 
117  // aliases
118  if (id == Id::rgba32) return "rgba32";
119  if (id == Id::argb32) return "argb32";
120  if (id == Id::bgra32) return "bgra32";
121  /*if (id == Id::abgr32) */return "abgr32";
122  }
123  }
124 
125  constexpr unsigned int bitSizeOf(const Id id) noexcept {
126  return SDL_BITSPERPIXEL(id::unsafe::toSDLEnum(id));
127  }
128  constexpr unsigned int byteSizeOf(const Id id) noexcept {
129  return SDL_BYTESPERPIXEL(id::unsafe::toSDLEnum(id));
130  }
131 
132  constexpr bool isIndexed(const Id id) noexcept {
133  return SDL_ISPIXELFORMAT_INDEXED(id::unsafe::toSDLEnum(id)) == SDL_TRUE;
134  }
135  constexpr bool hasAlpha(const Id id) noexcept {
136  return SDL_ISPIXELFORMAT_ALPHA(id::unsafe::toSDLEnum(id)) == SDL_TRUE;
137  }
138  constexpr bool isUnique(const Id id) noexcept {
139  return SDL_ISPIXELFORMAT_FOURCC(id::unsafe::toSDLEnum(id)) == SDL_TRUE;
140  }
141 
142  enum class Type {
143  unknown,
144 
145  index_1,
146  index_4,
147  index_8,
148 
149  packed_8,
150  packed_16,
151  packed_32,
152 
153  array_u8,
154  array_u16,
155  array_u32,
156  array_f16,
157  array_f32
158  };
159  namespace type::unsafe {
160  constexpr Type fromSDLEnum(const uint32_t val) noexcept;
161  constexpr uint32_t toSDLEnum(const Type t) noexcept;
162  }
163  constexpr Type typeOf(const Id id) noexcept {
164  return type::unsafe::fromSDLEnum(SDL_PIXELTYPE(id::unsafe::toSDLEnum(id)));
165  }
166 
167  enum class Order {
168  bitmap_none,
169  bitmap_4321,
170  bitmap_1234,
171 
172  packed_none,
173  packed_xrgb,
174  packed_rgbx,
175  packed_argb,
176  packed_rgba,
177  packed_xbgr,
178  packed_bgrx,
179  packed_abgr,
180  packed_bgra,
181 
182  array_none,
183  array_rgb,
184  array_rgba,
185  array_argb,
186  array_bgr,
187  array_bgra,
188  array_abgr
189  };
190  namespace order::unsafe {
191  constexpr Order fromSDLEnum(const uint32_t val) noexcept;
192  constexpr uint32_t toSDLEnum(const Order o) noexcept;
193  }
194  constexpr Order orderOf(const Id id) noexcept {
195  return order::unsafe::fromSDLEnum(SDL_PIXELORDER(id::unsafe::toSDLEnum(id)));
196  }
197 
198  enum class Layout {
199  none,
200  bits_332,
201  bits_4444,
202  bits_1555,
203  bits_5551,
204  bits_565,
205  bits_8888,
206  bits_2101010,
207  bits_1010102
208  };
209  namespace layout::unsafe {
210  constexpr Layout fromSDLEnum(const uint32_t val) noexcept;
211  constexpr uint32_t toSDLEnum(const Layout l) noexcept;
212  }
213  constexpr Layout layoutOf(const Id id) noexcept {
214  return layout::unsafe::fromSDLEnum(SDL_PIXELLAYOUT(id::unsafe::toSDLEnum(id)));
215  }
216 
219  public:
220  PixelFmtStorage(const PixelFmtStorage& that) = delete;
221  PixelFmtStorage(PixelFmtStorage&& that) = delete;
222 
223  PixelFmtStorage& operator=(const PixelFmtStorage& that) = delete;
224  PixelFmtStorage& operator=(PixelFmtStorage&& that) = delete;
225 
226  static const SDL_PixelFormat& get(const Id id);
227  static PixelFmtStorage& instance() noexcept;
228 
229  static SDL_PixelFormat** unsafeRaw() noexcept;
230 
231  private:
232  PixelFmtStorage() noexcept;
233  ~PixelFmtStorage() noexcept;
234 
235  SDL_PixelFormat** data_;
236  };
237 
238  namespace id::unsafe {
239  constexpr Id fromSDLEnum(const uint32_t val) noexcept {
240  if (val == SDL_PIXELFORMAT_UNKNOWN)
241  return Id::unknown;
242  if (val == SDL_PIXELFORMAT_INDEX1LSB)
243  return Id::index1lsb;
244  if (val == SDL_PIXELFORMAT_INDEX1MSB)
245  return Id::index1msb;
246  if (val == SDL_PIXELFORMAT_INDEX4LSB)
247  return Id::index4lsb;
248  if (val == SDL_PIXELFORMAT_INDEX4MSB)
249  return Id::index4msb;
250  if (val == SDL_PIXELFORMAT_INDEX8)
251  return Id::index8;
252  if (val == SDL_PIXELFORMAT_RGB332)
253  return Id::rgb332;
254  if (val == SDL_PIXELFORMAT_RGB444)
255  return Id::rgb444;
256  if (val == SDL_PIXELFORMAT_RGB555)
257  return Id::rgb555;
258  if (val == SDL_PIXELFORMAT_BGR555)
259  return Id::bgr555;
260  if (val == SDL_PIXELFORMAT_ARGB4444)
261  return Id::argb4444;
262  if (val == SDL_PIXELFORMAT_RGBA4444)
263  return Id::rgba4444;
264  if (val == SDL_PIXELFORMAT_ABGR4444)
265  return Id::abgr4444;
266  if (val == SDL_PIXELFORMAT_BGRA4444)
267  return Id::bgra4444;
268  if (val == SDL_PIXELFORMAT_ARGB1555)
269  return Id::argb1555;
270  if (val == SDL_PIXELFORMAT_RGBA5551)
271  return Id::rgba5551;
272  if (val == SDL_PIXELFORMAT_ABGR1555)
273  return Id::abgr1555;
274  if (val == SDL_PIXELFORMAT_BGRA5551)
275  return Id::bgra5551;
276  if (val == SDL_PIXELFORMAT_RGB565)
277  return Id::rgb565;
278  if (val == SDL_PIXELFORMAT_BGR565)
279  return Id::bgr565;
280  if (val == SDL_PIXELFORMAT_RGB24)
281  return Id::rgb24;
282  if (val == SDL_PIXELFORMAT_BGR24)
283  return Id::bgr24;
284  if (val == SDL_PIXELFORMAT_RGB888)
285  return Id::rgb888;
286  if (val == SDL_PIXELFORMAT_RGBX8888)
287  return Id::rgbx8888;
288  if (val == SDL_PIXELFORMAT_BGR888)
289  return Id::bgr888;
290  if (val == SDL_PIXELFORMAT_BGRX8888)
291  return Id::bgrx8888;
292  if (val == SDL_PIXELFORMAT_ARGB8888)
293  return Id::argb8888;
294  if (val == SDL_PIXELFORMAT_RGBA8888)
295  return Id::rgba8888;
296  if (val == SDL_PIXELFORMAT_ABGR8888)
297  return Id::abgr8888;
298  if (val == SDL_PIXELFORMAT_BGRA8888)
299  return Id::bgra8888;
300  if (val == SDL_PIXELFORMAT_ARGB2101010)
301  return Id::argb2101010;
302 
303  if (val == SDL_PIXELFORMAT_YV12)
304  return Id::yv12;
305  if (val == SDL_PIXELFORMAT_IYUV)
306  return Id::iyuv;
307  if (val == SDL_PIXELFORMAT_YUY2)
308  return Id::yuy2;
309  if (val == SDL_PIXELFORMAT_UYVY)
310  return Id::uyvy;
311  if (val == SDL_PIXELFORMAT_YVYU)
312  return Id::yvyu;
313  if (val == SDL_PIXELFORMAT_NV12)
314  return Id::nv12;
315  if (val == SDL_PIXELFORMAT_NV21)
316  return Id::nv21;
317 
318  // aliases for one of the above
319  // should never get here
320  if (val == SDL_PIXELFORMAT_RGBA32)
321  return Id::rgba32;
322  if (val == SDL_PIXELFORMAT_ARGB32)
323  return Id::argb32;
324  if (val == SDL_PIXELFORMAT_BGRA32)
325  return Id::bgra32;
326  if (val == SDL_PIXELFORMAT_ABGR32)
327  return Id::abgr32;
328 
329  return Id::unknown;
330  }
331  constexpr uint32_t toSDLEnum(const Id i) noexcept {
332  if (i == Id::unknown)
333  return SDL_PIXELFORMAT_UNKNOWN;
334  if (i == Id::index1lsb)
335  return SDL_PIXELFORMAT_INDEX1LSB;
336  if (i == Id::index1msb)
337  return SDL_PIXELFORMAT_INDEX1MSB;
338  if (i == Id::index4lsb)
339  return SDL_PIXELFORMAT_INDEX4LSB;
340  if (i == Id::index4msb)
341  return SDL_PIXELFORMAT_INDEX4MSB;
342  if (i == Id::index8)
343  return SDL_PIXELFORMAT_INDEX8;
344  if (i == Id::rgb332)
345  return SDL_PIXELFORMAT_RGB332;
346  if (i == Id::rgb444)
347  return SDL_PIXELFORMAT_RGB444;
348  if (i == Id::rgb555)
349  return SDL_PIXELFORMAT_RGB555;
350  if (i == Id::bgr555)
351  return SDL_PIXELFORMAT_BGR555;
352  if (i == Id::argb4444)
353  return SDL_PIXELFORMAT_ARGB4444;
354  if (i == Id::rgba4444)
355  return SDL_PIXELFORMAT_RGBA4444;
356  if (i == Id::abgr4444)
357  return SDL_PIXELFORMAT_ABGR4444;
358  if (i == Id::bgra4444)
359  return SDL_PIXELFORMAT_BGRA4444;
360  if (i == Id::argb1555)
361  return SDL_PIXELFORMAT_ARGB1555;
362  if (i == Id::rgba5551)
363  return SDL_PIXELFORMAT_RGBA5551;
364  if (i == Id::abgr1555)
365  return SDL_PIXELFORMAT_ABGR1555;
366  if (i == Id::bgra5551)
367  return SDL_PIXELFORMAT_BGRA5551;
368  if (i == Id::rgb565)
369  return SDL_PIXELFORMAT_RGB565;
370  if (i == Id::bgr565)
371  return SDL_PIXELFORMAT_BGR565;
372  if (i == Id::rgb24)
373  return SDL_PIXELFORMAT_RGB24;
374  if (i == Id::bgr24)
375  return SDL_PIXELFORMAT_BGR24;
376  if (i == Id::rgb888)
377  return SDL_PIXELFORMAT_RGB888;
378  if (i == Id::rgbx8888)
379  return SDL_PIXELFORMAT_RGBX8888;
380  if (i == Id::bgr888)
381  return SDL_PIXELFORMAT_BGR888;
382  if (i == Id::bgrx8888)
383  return SDL_PIXELFORMAT_BGRX8888;
384  if (i == Id::argb8888)
385  return SDL_PIXELFORMAT_ARGB8888;
386  if (i == Id::rgba8888)
387  return SDL_PIXELFORMAT_RGBA8888;
388  if (i == Id::abgr8888)
389  return SDL_PIXELFORMAT_ABGR8888;
390  if (i == Id::bgra8888)
391  return SDL_PIXELFORMAT_BGRA8888;
392  if (i == Id::argb2101010)
393  return SDL_PIXELFORMAT_ARGB2101010;
394 
395  if (i == Id::yv12)
396  return SDL_PIXELFORMAT_YV12;
397  if (i == Id::iyuv)
398  return SDL_PIXELFORMAT_IYUV;
399  if (i == Id::yuy2)
400  return SDL_PIXELFORMAT_YUY2;
401  if (i == Id::uyvy)
402  return SDL_PIXELFORMAT_UYVY;
403  if (i == Id::yvyu)
404  return SDL_PIXELFORMAT_YVYU;
405  if (i == Id::nv12)
406  return SDL_PIXELFORMAT_NV12;
407  if (i == Id::nv21)
408  return SDL_PIXELFORMAT_NV21;
409 
410  if (i == Id::rgba32)
411  return SDL_PIXELFORMAT_RGBA32;
412  if (i == Id::argb32)
413  return SDL_PIXELFORMAT_ARGB32;
414  if (i == Id::bgra32)
415  return SDL_PIXELFORMAT_BGRA32;
416  if (i == Id::abgr32)
417  return SDL_PIXELFORMAT_ABGR32;
418 
419  return SDL_PIXELFORMAT_UNKNOWN;
420  }
421  }
422 
423  namespace type::unsafe {
424  constexpr Type fromSDLEnum(const uint32_t val) noexcept {
425  if (val == SDL_PIXELTYPE_UNKNOWN)
426  return Type::unknown;
427 
428  if (val == SDL_PIXELTYPE_INDEX1)
429  return Type::index_1;
430  if (val == SDL_PIXELTYPE_INDEX4)
431  return Type::index_4;
432  if (val == SDL_PIXELTYPE_INDEX8)
433  return Type::index_8;
434 
435  if (val == SDL_PIXELTYPE_PACKED8)
436  return Type::packed_8;
437  if (val == SDL_PIXELTYPE_PACKED16)
438  return Type::packed_16;
439  if (val == SDL_PIXELTYPE_PACKED32)
440  return Type::packed_32;
441 
442  if (val == SDL_PIXELTYPE_ARRAYU8)
443  return Type::array_u8;
444  if (val == SDL_PIXELTYPE_ARRAYU16)
445  return Type::array_u16;
446  if (val == SDL_PIXELTYPE_ARRAYU32)
447  return Type::array_u32;
448  if (val == SDL_PIXELTYPE_ARRAYF16)
449  return Type::array_f16;
450  if (val == SDL_PIXELTYPE_ARRAYF32)
451  return Type::array_f32;
452 
453  return Type::unknown;
454  }
455  constexpr uint32_t toSDLEnum(const Type t) noexcept {
456  if (t == Type::unknown)
457  return SDL_PIXELTYPE_UNKNOWN;
458 
459  if (t == Type::index_1)
460  return SDL_PIXELTYPE_INDEX1;
461  if (t == Type::index_4)
462  return SDL_PIXELTYPE_INDEX4;
463  if (t == Type::index_8)
464  return SDL_PIXELTYPE_INDEX8;
465 
466  if (t == Type::packed_8)
467  return SDL_PIXELTYPE_PACKED8;
468  if (t == Type::packed_16)
469  return SDL_PIXELTYPE_PACKED16;
470  if (t == Type::packed_32)
471  return SDL_PIXELTYPE_PACKED32;
472 
473  if (t == Type::array_u8)
474  return SDL_PIXELTYPE_ARRAYU8;
475  if (t == Type::array_u16)
476  return SDL_PIXELTYPE_ARRAYU16;
477  if (t == Type::array_u32)
478  return SDL_PIXELTYPE_ARRAYU32;
479  if (t == Type::array_f16)
480  return SDL_PIXELTYPE_ARRAYF16;
481  if (t == Type::array_f32)
482  return SDL_PIXELTYPE_ARRAYF32;
483 
484  return SDL_PIXELTYPE_UNKNOWN;
485  }
486  }
487 
488  namespace order::unsafe {
489  constexpr Order fromSDLEnum(const uint32_t val) noexcept {
490  if (val == SDL_BITMAPORDER_NONE)
491  return Order::bitmap_none;
492  if (val == SDL_BITMAPORDER_4321)
493  return Order::bitmap_4321;
494  if (val == SDL_BITMAPORDER_1234)
495  return Order::bitmap_1234;
496 
497  if (val == SDL_PACKEDORDER_NONE)
498  return Order::packed_none;
499  if (val == SDL_PACKEDORDER_XRGB)
500  return Order::packed_xrgb;
501  if (val == SDL_PACKEDORDER_RGBX)
502  return Order::packed_rgbx;
503  if (val == SDL_PACKEDORDER_ARGB)
504  return Order::packed_argb;
505  if (val == SDL_PACKEDORDER_RGBA)
506  return Order::packed_rgba;
507  if (val == SDL_PACKEDORDER_XBGR)
508  return Order::packed_xbgr;
509  if (val == SDL_PACKEDORDER_BGRX)
510  return Order::packed_bgrx;
511  if (val == SDL_PACKEDORDER_ABGR)
512  return Order::packed_abgr;
513  if (val == SDL_PACKEDORDER_BGRA)
514  return Order::packed_bgra;
515 
516  if (val == SDL_ARRAYORDER_NONE)
517  return Order::array_none;
518  if (val == SDL_ARRAYORDER_RGB)
519  return Order::array_rgb;
520  if (val == SDL_ARRAYORDER_RGBA)
521  return Order::array_rgba;
522  if (val == SDL_ARRAYORDER_ARGB)
523  return Order::array_argb;
524  if (val == SDL_ARRAYORDER_BGR)
525  return Order::array_bgr;
526  if (val == SDL_ARRAYORDER_BGRA)
527  return Order::array_bgra;
528  if (val == SDL_ARRAYORDER_ABGR)
529  return Order::array_abgr;
530 
531  return Order::bitmap_none;
532  }
533  constexpr uint32_t toSDLEnum(const Order o) noexcept {
534  if (o == Order::bitmap_none)
535  return SDL_BITMAPORDER_NONE;
536  if (o == Order::bitmap_4321)
537  return SDL_BITMAPORDER_4321;
538  if (o == Order::bitmap_1234)
539  return SDL_BITMAPORDER_1234;
540 
541  if (o == Order::packed_none)
542  return SDL_PACKEDORDER_NONE;
543  if (o == Order::packed_xrgb)
544  return SDL_PACKEDORDER_XRGB;
545  if (o == Order::packed_rgbx)
546  return SDL_PACKEDORDER_RGBX;
547  if (o == Order::packed_argb)
548  return SDL_PACKEDORDER_ARGB;
549  if (o == Order::packed_rgba)
550  return SDL_PACKEDORDER_RGBA;
551  if (o == Order::packed_xbgr)
552  return SDL_PACKEDORDER_XBGR;
553  if (o == Order::packed_bgrx)
554  return SDL_PACKEDORDER_BGRX;
555  if (o == Order::packed_abgr)
556  return SDL_PACKEDORDER_ABGR;
557  if (o == Order::packed_bgra)
558  return SDL_PACKEDORDER_BGRA;
559 
560  if (o == Order::array_none)
561  return SDL_ARRAYORDER_NONE;
562  if (o == Order::array_rgb)
563  return SDL_ARRAYORDER_RGB;
564  if (o == Order::array_rgba)
565  return SDL_ARRAYORDER_RGBA;
566  if (o == Order::array_argb)
567  return SDL_ARRAYORDER_ARGB;
568  if (o == Order::array_bgr)
569  return SDL_ARRAYORDER_BGR;
570  if (o == Order::array_bgra)
571  return SDL_ARRAYORDER_BGRA;
572  if (o == Order::array_abgr)
573  return SDL_ARRAYORDER_ABGR;
574 
575  return SDL_BITMAPORDER_NONE;
576  }
577  }
578 
579  namespace layout::unsafe {
580  constexpr Layout fromSDLEnum(const uint32_t val) noexcept {
581  if (val == SDL_PACKEDLAYOUT_NONE)
582  return Layout::none;
583  if (val == SDL_PACKEDLAYOUT_332)
584  return Layout::bits_332;
585  if (val == SDL_PACKEDLAYOUT_4444)
586  return Layout::bits_4444;
587  if (val == SDL_PACKEDLAYOUT_1555)
588  return Layout::bits_1555;
589  if (val == SDL_PACKEDLAYOUT_5551)
590  return Layout::bits_5551;
591  if (val == SDL_PACKEDLAYOUT_565)
592  return Layout::bits_565;
593  if (val == SDL_PACKEDLAYOUT_8888)
594  return Layout::bits_8888;
595  if (val == SDL_PACKEDLAYOUT_2101010)
596  return Layout::bits_2101010;
597  if (val == SDL_PACKEDLAYOUT_1010102)
598  return Layout::bits_1010102;
599 
600  return Layout::none;
601  }
602  constexpr uint32_t toSDLEnum(const Layout l) noexcept {
603  if (l == Layout::none)
604  return SDL_PACKEDLAYOUT_NONE;
605  if (l == Layout::bits_332)
606  return SDL_PACKEDLAYOUT_332;
607  if (l == Layout::bits_4444)
608  return SDL_PACKEDLAYOUT_4444;
609  if (l == Layout::bits_1555)
610  return SDL_PACKEDLAYOUT_1555;
611  if (l == Layout::bits_5551)
612  return SDL_PACKEDLAYOUT_5551;
613  if (l == Layout::bits_565)
614  return SDL_PACKEDLAYOUT_565;
615  if (l == Layout::bits_8888)
616  return SDL_PACKEDLAYOUT_8888;
617  if (l == Layout::bits_2101010)
618  return SDL_PACKEDLAYOUT_2101010;
619  if (l == Layout::bits_1010102)
620  return SDL_PACKEDLAYOUT_1010102;
621 
622  return SDL_PACKEDLAYOUT_NONE;
623  }
624  }
625 }
rolmodl::pixelfmt::PixelFmtStorage
PixelFormat storage to avoid allocating a new instance for every use.
Definition: PixelFmt.hpp:218
rolmodl
Main namespace.
Definition: Base.cpp:7
rolmodl::pixelfmt
Pixel format management members.
Definition: PixelFmt.hpp:7
rolmodl::sys::Id
Id
OS type enum.
Definition: Base.hpp:28
rolmodl::sys::id
Id id() noexcept
Get id of the OS on which the code is running. May differ from whatever operating system the code was...
Definition: Base.cpp:14