neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
video_mode.hpp
Go to the documentation of this file.
1// video_mode.hpp
2/*
3 neogfx C++ App/Game Engine
4 Copyright (c) 2015, 2020 Leigh Johnston. All Rights Reserved.
5
6 This program is free software: you can redistribute it and / or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
18*/
19#pragma once
20
21#include <neogfx/neogfx.hpp>
23
24namespace neogfx
25{
27
29 {
30 public:
31 video_mode(uint32_t aWidth, uint32_t aHeight, uint32_t aBitsPerPixel = 32) :
32 iResolution{ aWidth, aHeight }, iBitsPerPixel{ aBitsPerPixel }
33 {
34 };
35 template <typename T>
36 explicit video_mode(const basic_size<T>& aExtents, uint32_t aBitsPerPixel = 32) :
37 iResolution{ aExtents }, iBitsPerPixel{ aBitsPerPixel }
38 {
39 };
40 public:
42 {
43 return iResolution;
44 }
45 uint32_t bits_per_pixel() const
46 {
47 return iBitsPerPixel;
48 }
49 private:
50 video_mode_resolution iResolution;
51 uint32_t iBitsPerPixel;
52 };
53
54 typedef std::optional<video_mode> optional_video_mode;
55}
video_mode(uint32_t aWidth, uint32_t aHeight, uint32_t aBitsPerPixel=32)
video_mode(const basic_size< T > &aExtents, uint32_t aBitsPerPixel=32)
const video_mode_resolution & resolution() const
uint32_t bits_per_pixel() const
basic_size< uint32_t > size_u32
std::optional< video_mode > optional_video_mode
size_u32 video_mode_resolution