From 79886f5ae4a3b4f2665e93c87ca5916248730df2 Mon Sep 17 00:00:00 2001 From: Clownacy Date: Mon, 20 Jan 2020 15:27:05 +0000 Subject: [PATCH] Add debug prints for listing SDL2 drivers These list what video/render/audio backends are available, and which are currently being used. SDL2 allows you to choose a specific video/audio driver with the SDL_VIDEODRIVER and SDL_AUDIODRIVER environment variables, respectively, but there's no such option for the render driver. --- src/Backends/Audio/SDL2.cpp | 14 ++++++++++++++ src/Backends/Rendering/SDLTexture.cpp | 20 ++++++++++++++++++++ src/Draw.cpp | 9 +++++++++ 3 files changed, 43 insertions(+) diff --git a/src/Backends/Audio/SDL2.cpp b/src/Backends/Audio/SDL2.cpp index d6b360a3..e511d5e3 100644 --- a/src/Backends/Audio/SDL2.cpp +++ b/src/Backends/Audio/SDL2.cpp @@ -2,6 +2,9 @@ #include #include +#ifndef NDEBUG +#include +#endif #include #include @@ -155,6 +158,13 @@ BOOL AudioBackend_Init(void) if (SDL_InitSubSystem(SDL_INIT_AUDIO) < 0) return FALSE; +#ifndef NDEBUG + puts("Available SDL2 audio drivers:"); + + for (int i = 0; i < SDL_GetNumAudioDrivers(); ++i) + puts(SDL_GetAudioDriver(i)); +#endif + SDL_AudioSpec specification; specification.freq = 44100; specification.format = AUDIO_F32; @@ -172,6 +182,10 @@ BOOL AudioBackend_Init(void) SDL_PauseAudioDevice(device_id, 0); +#ifndef NDEBUG + printf("Selected SDL2 audio driver: %s\n", SDL_GetCurrentAudioDriver()); +#endif + return TRUE; } diff --git a/src/Backends/Rendering/SDLTexture.cpp b/src/Backends/Rendering/SDLTexture.cpp index 32f62e89..f5979d77 100644 --- a/src/Backends/Rendering/SDLTexture.cpp +++ b/src/Backends/Rendering/SDLTexture.cpp @@ -1,6 +1,9 @@ #include "../Rendering.h" #include +#ifndef NDEBUG +#include +#endif #include #include "SDL.h" @@ -58,11 +61,28 @@ SDL_Window* Backend_CreateWindow(const char *title, int width, int height) Backend_Surface* Backend_Init(SDL_Window *window) { +#ifndef NDEBUG + puts("Available SDL2 render drivers:"); + + for (int i = 0; i < SDL_GetNumRenderDrivers(); ++i) + { + SDL_RendererInfo info; + SDL_GetRenderDriverInfo(i, &info); + puts(info.name); + } +#endif + renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_TARGETTEXTURE); if (renderer == NULL) return NULL; +#ifndef NDEBUG + SDL_RendererInfo info; + SDL_GetRendererInfo(renderer, &info); + printf("Selected SDL2 render driver: %s\n", info.name); +#endif + int width, height; SDL_GetRendererOutputSize(renderer, &width, &height); framebuffer.texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGBA32, SDL_TEXTUREACCESS_TARGET, width, height); diff --git a/src/Draw.cpp b/src/Draw.cpp index 33f01a58..02a54cda 100644 --- a/src/Draw.cpp +++ b/src/Draw.cpp @@ -88,6 +88,15 @@ BOOL Flip_SystemTask(void) SDL_Window* CreateWindow(const char *title, int width, int height) { +#ifndef NDEBUG + puts("Available SDL2 video drivers:"); + + for (int i = 0; i < SDL_GetNumVideoDrivers(); ++i) + puts(SDL_GetVideoDriver(i)); + + printf("Selected SDL2 video driver: %s\n", SDL_GetCurrentVideoDriver()); +#endif + return Backend_CreateWindow(title, width, height); }