Skip to content

Commit

Permalink
Added fallback to SW SDL renderer.
Browse files Browse the repository at this point in the history
  • Loading branch information
k4zmu2a committed Oct 30, 2021
1 parent 917b68d commit e61bbd6
Showing 1 changed file with 15 additions and 8 deletions.
23 changes: 15 additions & 8 deletions SpaceCadetPinball/winmain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ bool winmain::LaunchBallEnabled = true;
bool winmain::HighScoresEnabled = true;
bool winmain::DemoActive = false;
char* winmain::BasePath;
int winmain::MainMenuHeight = 0;
int winmain::MainMenuHeight = 0;
std::string winmain::FpsDetails;
double winmain::UpdateToFrameRatio;
winmain::DurationMs winmain::TargetFrameTime;
Expand Down Expand Up @@ -88,18 +88,25 @@ int winmain::WinMain(LPCSTR lpCmdLine)
return 1;
}

SDL_Renderer* renderer = SDL_CreateRenderer
(
window,
-1,
SDL_RENDERER_ACCELERATED
);
Renderer = renderer;
// If HW fails, fallback to SW SDL renderer.
SDL_Renderer* renderer = nullptr;
for (int i = 0; i < 2 && !renderer; i++)
{
Renderer = renderer = SDL_CreateRenderer
(
window,
-1,
i == 0 ? SDL_RENDERER_ACCELERATED : SDL_RENDERER_SOFTWARE
);
}
if (!renderer)
{
SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, "Could not create renderer", SDL_GetError(), window);
return 1;
}
SDL_RendererInfo rendererInfo{};
if (!SDL_GetRendererInfo(renderer, &rendererInfo))
printf("Using SDL renderer: %s\n", rendererInfo.name);
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "nearest");

Expand Down

0 comments on commit e61bbd6

Please sign in to comment.