summaryrefslogtreecommitdiff
path: root/src/render
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2013-09-01 14:41:34 +0300
committerAndrei Karas <akaras@inbox.ru>2013-09-01 14:53:49 +0300
commit222748a7e0c79225c66485898b913aa60f56cfe2 (patch)
tree38e27f08cec39bf8cca26df8caade81c112245e8 /src/render
parentf4df2a0fd2d9c01b6f756c4b00ed9848f319a1b0 (diff)
downloadmv-222748a7e0c79225c66485898b913aa60f56cfe2.tar.gz
mv-222748a7e0c79225c66485898b913aa60f56cfe2.tar.bz2
mv-222748a7e0c79225c66485898b913aa60f56cfe2.tar.xz
mv-222748a7e0c79225c66485898b913aa60f56cfe2.zip
add way to map render mode selection to actual modes.
Diffstat (limited to 'src/render')
-rw-r--r--src/render/renderers.cpp38
-rw-r--r--src/render/renderers.h6
-rw-r--r--src/render/rendererslist.h115
3 files changed, 159 insertions, 0 deletions
diff --git a/src/render/renderers.cpp b/src/render/renderers.cpp
new file mode 100644
index 000000000..97364f54a
--- /dev/null
+++ b/src/render/renderers.cpp
@@ -0,0 +1,38 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2013 The ManaPlus Developers
+ *
+ * This file is part of The ManaPlus Client.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "render/renderers.h"
+
+RenderType intToRenderType(const int mode)
+{
+ if (mode < 0 || mode > RENDER_LAST)
+ {
+#ifdef USE_OPENGL
+#ifdef ANDROID
+ return RENDER_GLES_OPENGL;
+#else
+ return RENDER_NORMAL_OPENGL;
+#endif
+#else
+ return RENDER_SOFTWARE;
+#endif
+ }
+ return static_cast<RenderType>(mode);
+}
diff --git a/src/render/renderers.h b/src/render/renderers.h
index 632614599..8922f3d10 100644
--- a/src/render/renderers.h
+++ b/src/render/renderers.h
@@ -21,13 +21,19 @@
#ifndef RENDER_RENDERERS_H
#define RENDER_RENDERERS_H
+#include "utils/gettext.h"
+
enum RenderType
{
RENDER_SOFTWARE = 0,
+#ifdef USE_OPENGL
RENDER_NORMAL_OPENGL = 1,
RENDER_SAFE_OPENGL = 2,
RENDER_GLES_OPENGL = 3,
+#endif
RENDER_LAST
};
+RenderType intToRenderType(const int mode);
+
#endif // RENDER_RENDERERS_H
diff --git a/src/render/rendererslist.h b/src/render/rendererslist.h
new file mode 100644
index 000000000..6c4e3fd0e
--- /dev/null
+++ b/src/render/rendererslist.h
@@ -0,0 +1,115 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2013 The ManaPlus Developers
+ *
+ * This file is part of The ManaPlus Client.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "utils/gettext.h"
+
+#ifndef RENDER_RENDERERSLIST_H
+#define RENDER_RENDERERSLIST_H
+
+#ifdef USE_OPENGL
+#ifdef ANDROID
+
+// map for index to RenderType
+const RenderType indexToRender[] =
+{
+ RENDER_SOFTWARE,
+ RENDER_GLES_OPENGL,
+};
+
+const char *OPENGL_NAME[] =
+{
+ // TRANSLATORS: draw backend
+ N_("Software"),
+ // TRANSLATORS: draw backend
+ N_("Mobile OpenGL"),
+};
+
+const int renderModesListSize = 2;
+
+const int renderToIndex[] =
+{
+ 0, // RENDER_SOFTWARE
+ 3, // RENDER_GLES_OPENGL
+ 3, // RENDER_GLES_OPENGL
+ 3 // RENDER_GLES_OPENGL
+};
+
+#else // ANDROID
+
+// map for index to RenderType
+const RenderType indexToRender[] =
+{
+ RENDER_SOFTWARE,
+ RENDER_NORMAL_OPENGL,
+ RENDER_SAFE_OPENGL,
+ RENDER_GLES_OPENGL,
+};
+
+const char *OPENGL_NAME[] =
+{
+ // TRANSLATORS: draw backend
+ N_("Software"),
+ // TRANSLATORS: draw backend
+ N_("Fast OpenGL"),
+ // TRANSLATORS: draw backend
+ N_("Safe OpenGL"),
+ // TRANSLATORS: draw backend
+ N_("Mobile OpenGL"),
+};
+
+const int renderModesListSize = 4;
+
+const int renderToIndex[] =
+{
+ 0, // RENDER_SOFTWARE
+ 1, // RENDER_NORMAL_OPENGL
+ 2, // RENDER_SAFE_OPENGL
+ 3 // RENDER_GLES_OPENGL
+};
+
+#endif // ANDROID
+
+#else // USE_OPENGL
+
+// map for index to RenderType
+const RenderType indexToRender[] =
+{
+ RENDER_SOFTWARE
+};
+
+const char *OPENGL_NAME[] =
+{
+ // TRANSLATORS: draw backend
+ N_("Software")
+};
+
+const int renderModesListSize = 1;
+
+const int renderToIndex[] =
+{
+ 0, // RENDER_SOFTWARE
+ 0, // RENDER_SOFTWARE
+ 0, // RENDER_SOFTWARE
+ 0 // RENDER_SOFTWARE
+};
+
+#endif // USE_OPENGL
+
+#endif // RENDER_RENDERERSLIST_H