Last active
October 10, 2023 00:42
-
-
Save haxpor/c02a6ba98e3ff35800eeb3a4f4f5b0b4 to your computer and use it in GitHub Desktop.
Getting rendering driver name and setting hint in SDL2. Minimal testing code. This code tested on macOS mojave.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <SDL2/SDL.h> | |
#include <stdio.h> | |
SDL_Window *window = NULL; | |
SDL_Renderer *renderer = NULL; | |
int main(int argc, char* argv[]) | |
{ | |
if (SDL_Init(SDL_INIT_VIDEO) < 0) { | |
SDL_Log("failed to init: %s", SDL_GetError()); | |
return -1; | |
} | |
window = SDL_CreateWindow( | |
"Hello", 0, 0, 640, 480, | |
SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL | |
); | |
if (window == NULL) { | |
SDL_Log("Failed to create window: %s", SDL_GetError()); | |
return -1; | |
} | |
// set hint to use metal before calling SDL_CreateRenderer | |
// see possible values at SDL_hints.h | |
SDL_SetHint(SDL_HINT_RENDER_DRIVER, "metal"); | |
renderer = SDL_CreateRenderer(window, -1, 0); | |
if (renderer == NULL) | |
{ | |
SDL_Log("Failed to create renderer: %s", SDL_GetError()); | |
return -1; | |
} | |
// get driver name and information here | |
// if setting hint taken into effect, then this should get you "metal" | |
SDL_RendererInfo rendererInfo; | |
SDL_GetRendererInfo(renderer, &rendererInfo); | |
SDL_Log("Renderer: %s", rendererInfo.name); | |
SDL_bool quit = SDL_FALSE; | |
while (!quit) | |
{ | |
SDL_Event e; | |
// we need to call SDL_PollEvent to let window rendered, otherwise | |
// no window will be shown | |
while (SDL_PollEvent(&e) != 0) | |
{ | |
if (e.type == SDL_QUIT) | |
{ | |
quit = SDL_TRUE; | |
} | |
} | |
} | |
// free | |
if (renderer != NULL) | |
{ | |
SDL_DestroyRenderer(renderer); | |
renderer = NULL; | |
} | |
if (window != NULL) | |
{ | |
SDL_DestroyWindow(window); | |
window = NULL; | |
} | |
SDL_Quit(); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment