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 getDefault()28static 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 intToRenderType(const int mode)43RenderType intToRenderType(const int mode) noexcept2 44 { 45 #ifdef __SWITCH__ 46 return RENDER_GLES2_OPENGL; 47 #endif 48 if (mode < 0 || mode >= RENDER_LAST) 49 return getDefault(); 50 51 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 && mode != RENDER_NORMAL_OPENGL 94 && 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 return static_cast<RenderType>(mode); 121 } 122