Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Fixed bug 1583 - Fix build for disabled SDL render subsystem
Browse files Browse the repository at this point in the history
Marcus von Appen

If one wants to disable the SDL render subsystem, the build breaks on several platforms due to an empty render_drivers array in SDL_render.c.
  • Loading branch information
slouken committed Apr 25, 2013
1 parent 809492f commit 54910d3
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions src/render/SDL_render.c
Expand Up @@ -44,8 +44,8 @@
}


static const SDL_RenderDriver *render_drivers[] = {
#if !SDL_RENDER_DISABLED
static const SDL_RenderDriver *render_drivers[] = {
#if SDL_VIDEO_RENDER_D3D
&D3D_RenderDriver,
#endif
Expand All @@ -65,8 +65,9 @@ static const SDL_RenderDriver *render_drivers[] = {
&PSP_RenderDriver,
#endif
&SW_RenderDriver
#endif /* !SDL_RENDER_DISABLED */
};
#endif /* !SDL_RENDER_DISABLED */

static char renderer_magic;
static char texture_magic;

Expand All @@ -75,18 +76,26 @@ static int UpdateLogicalSize(SDL_Renderer *renderer);
int
SDL_GetNumRenderDrivers(void)
{
#if !SDL_RENDER_DISABLED
return SDL_arraysize(render_drivers);
#else
return 0;
#endif
}

int
SDL_GetRenderDriverInfo(int index, SDL_RendererInfo * info)
{
#if !SDL_RENDER_DISABLED
if (index < 0 || index >= SDL_GetNumRenderDrivers()) {
return SDL_SetError("index must be in the range of 0 - %d",
SDL_GetNumRenderDrivers() - 1);
}
*info = render_drivers[index]->info;
return 0;
#else
return SDL_SetError("SDL not built with rendering support");
#endif
}

static int
Expand Down Expand Up @@ -197,6 +206,7 @@ SDL_CreateWindowAndRenderer(int width, int height, Uint32 window_flags,
SDL_Renderer *
SDL_CreateRenderer(SDL_Window * window, int index, Uint32 flags)
{
#if !SDL_RENDER_DISABLED
SDL_Renderer *renderer = NULL;
int n = SDL_GetNumRenderDrivers();
const char *hint;
Expand Down Expand Up @@ -284,6 +294,10 @@ SDL_CreateRenderer(SDL_Window * window, int index, Uint32 flags)
"Created renderer: %s", renderer->info.name);
}
return renderer;
#else
SDL_SetError("SDL not built with rendering support");
return NULL;
#endif
}

SDL_Renderer *
Expand Down

0 comments on commit 54910d3

Please sign in to comment.