summaryrefslogtreecommitdiffhomepage
path: root/floormat/settings.hpp
blob: aa0b71c8262feb7ed8c1b8903786b6cef5ac84de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#pragma once
#include "compat/defs.hpp"
#include <cstdint>
#include <Corrade/Containers/String.h>
#include <Magnum/Math/Vector2.h>

namespace floormat {

enum class fm_gpu_debug : char { no_error = 1, off, on, robust, };

struct fm_settings
{
    inline fm_settings() noexcept = default;
    virtual ~fm_settings() noexcept;
    fm_DECLARE_DEPRECATED_COPY_ASSIGNMENT(fm_settings);
    fm_DECLARE_DEFAULT_MOVE_ASSIGNMENT_(fm_settings);

    String title = "floormat editor"_s;
    const char* const* argv = nullptr; int argc = 0;
    Magnum::Math::Vector2<int> resolution{1024, 720};
    fm_gpu_debug gpu_debug = fm_gpu_debug::on;
    bool vsync = true;
    bool resizable          : 1 = true,
         fullscreen         : 1 = false,
         fullscreen_desktop : 1 = false,
         borderless         : 1 = false,
         maximized          : 1 = false;
};

} // namespace floormat