shithub: cstory

Download patch

ref: 79886f5ae4a3b4f2665e93c87ca5916248730df2
parent: 1cf5df2d7201171a49c8bfe47e89ef7bd847a3c7
author: Clownacy <[email protected]>
date: Mon Jan 20 10:27:05 EST 2020

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.

--- a/src/Backends/Audio/SDL2.cpp
+++ b/src/Backends/Audio/SDL2.cpp
@@ -2,6 +2,9 @@
 
 #include <math.h>
 #include <stddef.h>
+#ifndef NDEBUG
+#include <stdio.h>
+#endif
 #include <stdlib.h>
 #include <string.h>
 
@@ -155,6 +158,13 @@
 	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;
@@ -171,6 +181,10 @@
 		return FALSE;
 
 	SDL_PauseAudioDevice(device_id, 0);
+
+#ifndef NDEBUG
+	printf("Selected SDL2 audio driver: %s\n", SDL_GetCurrentAudioDriver());
+#endif
 
 	return TRUE;
 }
--- a/src/Backends/Rendering/SDLTexture.cpp
+++ b/src/Backends/Rendering/SDLTexture.cpp
@@ -1,6 +1,9 @@
 #include "../Rendering.h"
 
 #include <stddef.h>
+#ifndef NDEBUG
+#include <stdio.h>
+#endif
 #include <stdlib.h>
 
 #include "SDL.h"
@@ -58,10 +61,27 @@
 
 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);
--- a/src/Draw.cpp
+++ b/src/Draw.cpp
@@ -88,6 +88,15 @@
 
 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);
 }