GCC Code Coverage Report
Directory: src/ Exec Total Coverage
File: src/render/renderers.cpp Lines: 6 8 75.0 %
Date: 2021-03-17 Branches: 2 8 25.0 %

Line Branch Exec Source
1
/*
2
 *  The ManaPlus Client
3
 *  Copyright (C) 2013-2019  The ManaPlus Developers
4
 *  Copyright (C) 2019-2021  Andrei Karas
5
 *
6
 *  This file is part of The ManaPlus Client.
7
 *
8
 *  This program is free software; you can redistribute it and/or modify
9
 *  it under the terms of the GNU General Public License as published by
10
 *  the Free Software Foundation; either version 2 of the License, or
11
 *  any later version.
12
 *
13
 *  This program is distributed in the hope that it will be useful,
14
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 *  GNU General Public License for more details.
17
 *
18
 *  You should have received a copy of the GNU General Public License
19
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
 */
21
22
#include "render/renderers.h"
23
24
#include "debug.h"
25
26
static RenderType getDefault() noexcept2 A_CONST;
27
28
static RenderType getDefault() noexcept2
29
{
30
#ifdef USE_OPENGL
31
#ifdef ANDROID
32
    return RENDER_GLES_OPENGL;
33
#else  // ANDROID
34
35
    return RENDER_NORMAL_OPENGL;
36
#endif  // ANDROID
37
#else  // USE_OPENGL
38
39
    return RENDER_SOFTWARE;
40
#endif  // USE_OPENGL
41
}
42
43
49
RenderType intToRenderType(const int mode) noexcept2
44
{
45
#ifdef __SWITCH__
46
    return RENDER_GLES2_OPENGL;
47
#endif
48
49
    if (mode < 0 || mode >= RENDER_LAST)
49
        return getDefault();
50
51
49
    if (mode != RENDER_SOFTWARE
52
#if defined(USE_OPENGL)
53
54
// with OpenGL start
55
#if defined(ANDROID)
56
57
// with OpenGL + with ANDROID start
58
#if defined(USE_SDL2)
59
        && mode != RENDER_GLES_OPENGL
60
        && mode != RENDER_SDL2_DEFAULT)
61
#else  // defined(USE_SDL2)
62
63
        && mode != RENDER_GLES_OPENGL)
64
#endif  // defined(USE_SDL2)
65
// with OpenGL + with ANDROID end
66
67
#elif defined(__native_client__)
68
69
// with OpenGL + with nacl start
70
#if defined(USE_SDL2)
71
        && mode != RENDER_SAFE_OPENGL
72
        && mode != RENDER_GLES2_OPENGL
73
        && mode != RENDER_SDL2_DEFAULT)
74
#else  //  defined(USE_SDL2)
75
76
        && mode != RENDER_SAFE_OPENGL
77
        && mode != RENDER_GLES2_OPENGL)
78
#endif  // defined(USE_SDL2)
79
// with OpenGL + with nacl end
80
81
#else  // defined(ANDROID)
82
83
// with OpenGL + without ANDROID start
84
#if defined(USE_SDL2)
85
        && mode != RENDER_NORMAL_OPENGL
86
        && mode != RENDER_MODERN_OPENGL
87
        && mode != RENDER_SAFE_OPENGL
88
        && mode != RENDER_GLES_OPENGL
89
        && mode != RENDER_GLES2_OPENGL
90
        && mode != RENDER_SDL2_DEFAULT)
91
#else  //  defined(USE_SDL2)
92
93
49
        && mode != RENDER_NORMAL_OPENGL
94
49
        && mode != RENDER_MODERN_OPENGL
95
        && mode != RENDER_SAFE_OPENGL
96
        && mode != RENDER_GLES_OPENGL
97
        && mode != RENDER_GLES2_OPENGL)
98
#endif  // defined(USE_SDL2)
99
// with OpenGL + without ANDROID end
100
101
#endif  // defined(ANDROID)
102
// with OpenGL end
103
104
#else  // defined(USE_OPENGL)
105
106
// without OpenGL start
107
#if defined(USE_SDL2)
108
        && mode != RENDER_SDL2_DEFAULT)
109
#elif !defined(USE_SDL2)
110
        )
111
#endif  // defined(USE_SDL2)
112
// without OpenGL end
113
114
#endif  // defined(USE_OPENGL)
115
116
    {
117
        return getDefault();
118
    }
119
120
49
    return static_cast<RenderType>(mode);
121
}