summaryrefslogtreecommitdiff
path: root/src/utils/sdl2helper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/sdl2helper.cpp')
-rw-r--r--src/utils/sdl2helper.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/utils/sdl2helper.cpp b/src/utils/sdl2helper.cpp
index da86d2b41..ad559b0e6 100644
--- a/src/utils/sdl2helper.cpp
+++ b/src/utils/sdl2helper.cpp
@@ -28,10 +28,13 @@
#include "utils/sdl2logger.h"
#include "utils/stringutils.h"
+#include <algorithm>
+
PRAGMA48(GCC diagnostic push)
PRAGMA48(GCC diagnostic ignored "-Wshadow")
#include <SDL_events.h>
#include <SDL_hints.h>
+#include <SDL_render.h>
#include <SDL_syswm.h>
PRAGMA48(GCC diagnostic pop)
@@ -225,4 +228,40 @@ void SDL::allowScreenSaver(const bool allow)
}
}
+void SDL::getRenderers(StringVect &list,
+ const std::string &currentRenderer)
+{
+ SDL_RendererInfo info;
+ const int num = SDL_GetNumRenderDrivers();
+ for (int f = 0; f < num; f ++)
+ {
+ if (!SDL_GetRenderDriverInfo(f, &info))
+ list.push_back(info.name);
+ }
+ if (!currentRenderer.empty())
+ {
+ bool found(false);
+ FOR_EACH (StringVectCIter, it, list)
+ {
+ if (*it == currentRenderer)
+ {
+ found = true;
+ break;
+ }
+ }
+ if (!found)
+ list.push_back(currentRenderer);
+ }
+ std::sort(list.begin(), list.end());
+}
+
+void SDL::setRendererHint(const std::string &driver)
+{
+ if (!driver.empty())
+ {
+ SDL_SetHint(SDL_HINT_RENDER_DRIVER,
+ driver.c_str());
+ }
+}
+
#endif // USE_SDL2