From b0d2e83910f24019530116846a3df489742fc1dd Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Tue, 8 Feb 2011 10:04:09 -0800 Subject: [PATCH] Made it possible to disable the rendering subsystem with configure --disable-render --- configure.in | 6 ++++++ include/SDL_config.h.in | 1 + src/render/SDL_render.c | 7 +++++++ src/render/SDL_sysrender.h | 4 ++++ src/render/direct3d/SDL_render_d3d.c | 5 +++-- src/render/opengl/SDL_render_gl.c | 4 ++-- src/render/opengles/SDL_render_gles.c | 4 ++-- src/render/opengles2/SDL_render_gles2.c | 4 ++-- src/render/opengles2/SDL_shaders_gles2.c | 4 ++-- src/render/software/SDL_blendfillrect.c | 4 ++++ src/render/software/SDL_blendline.c | 4 ++++ src/render/software/SDL_blendpoint.c | 4 ++++ src/render/software/SDL_drawline.c | 4 ++++ src/render/software/SDL_drawpoint.c | 4 ++++ src/render/software/SDL_render_sw.c | 4 ++++ 15 files changed, 53 insertions(+), 10 deletions(-) diff --git a/configure.in b/configure.in index 252f15f46..454c3db8a 100644 --- a/configure.in +++ b/configure.in @@ -362,6 +362,12 @@ AC_HELP_STRING([--enable-video], [Enable the video subsystem [[default=yes]]]), if test x$enable_video != xyes; then AC_DEFINE(SDL_VIDEO_DISABLED) fi +AC_ARG_ENABLE(render, +AC_HELP_STRING([--enable-render], [Enable the render subsystem [[default=yes]]]), + , enable_render=yes) +if test x$enable_render != xyes; then + AC_DEFINE(SDL_RENDER_DISABLED) +fi AC_ARG_ENABLE(events, AC_HELP_STRING([--enable-events], [Enable the events subsystem [[default=yes]]]), , enable_events=yes) diff --git a/include/SDL_config.h.in b/include/SDL_config.h.in index 551ceb6ad..a9526f694 100644 --- a/include/SDL_config.h.in +++ b/include/SDL_config.h.in @@ -179,6 +179,7 @@ #undef SDL_JOYSTICK_DISABLED #undef SDL_HAPTIC_DISABLED #undef SDL_LOADSO_DISABLED +#undef SDL_RENDER_DISABLED #undef SDL_THREADS_DISABLED #undef SDL_TIMERS_DISABLED #undef SDL_VIDEO_DISABLED diff --git a/src/render/SDL_render.c b/src/render/SDL_render.c index 34647c195..fdee3a49d 100644 --- a/src/render/SDL_render.c +++ b/src/render/SDL_render.c @@ -45,6 +45,7 @@ static const SDL_RenderDriver *render_drivers[] = { +#if !SDL_RENDER_DISABLED #if SDL_VIDEO_RENDER_D3D &D3D_RenderDriver, #endif @@ -61,6 +62,7 @@ static const SDL_RenderDriver *render_drivers[] = { &DirectFB_RenderDriver, #endif &SW_RenderDriver +#endif /* !SDL_RENDER_DISABLED */ }; static char renderer_magic; static char texture_magic; @@ -170,7 +172,12 @@ SDL_CreateRenderer(SDL_Window * window, int index, Uint32 flags) SDL_Renderer * SDL_CreateSoftwareRenderer(SDL_Surface * surface) { +#if !SDL_RENDER_DISABLED return SW_CreateRendererForSurface(surface); +#else + SDL_SetError("SDL not built with rendering support"); + return NULL; +#endif /* !SDL_RENDER_DISABLED */ } int diff --git a/src/render/SDL_sysrender.h b/src/render/SDL_sysrender.h index b2d6d3846..b73babc04 100644 --- a/src/render/SDL_sysrender.h +++ b/src/render/SDL_sysrender.h @@ -119,6 +119,8 @@ struct SDL_RenderDriver SDL_RendererInfo info; }; +#if !SDL_RENDER_DISABLED + #if SDL_VIDEO_RENDER_D3D extern SDL_RenderDriver D3D_RenderDriver; #endif @@ -136,6 +138,8 @@ extern SDL_RenderDriver DirectFB_RenderDriver; #endif extern SDL_RenderDriver SW_RenderDriver; +#endif /* !SDL_RENDER_DISABLED */ + #endif /* _SDL_sysrender_h */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/render/direct3d/SDL_render_d3d.c b/src/render/direct3d/SDL_render_d3d.c index b3409c496..89aa43b93 100644 --- a/src/render/direct3d/SDL_render_d3d.c +++ b/src/render/direct3d/SDL_render_d3d.c @@ -21,7 +21,8 @@ */ #include "SDL_config.h" -#if SDL_VIDEO_RENDER_D3D +#if SDL_VIDEO_RENDER_D3D && !SDL_RENDER_DISABLED + #include "../../core/windows/SDL_windows.h" @@ -1066,6 +1067,6 @@ D3D_DestroyRenderer(SDL_Renderer * renderer) SDL_free(renderer); } -#endif /* SDL_VIDEO_RENDER_D3D */ +#endif /* SDL_VIDEO_RENDER_D3D && !SDL_RENDER_DISABLED */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/render/opengl/SDL_render_gl.c b/src/render/opengl/SDL_render_gl.c index eeac93e11..30b0049a9 100644 --- a/src/render/opengl/SDL_render_gl.c +++ b/src/render/opengl/SDL_render_gl.c @@ -21,7 +21,7 @@ */ #include "SDL_config.h" -#if SDL_VIDEO_RENDER_OGL +#if SDL_VIDEO_RENDER_OGL && !SDL_RENDER_DISABLED #include "SDL_opengl.h" #include "../SDL_sysrender.h" @@ -841,6 +841,6 @@ GL_DestroyRenderer(SDL_Renderer * renderer) SDL_free(renderer); } -#endif /* SDL_VIDEO_RENDER_OGL */ +#endif /* SDL_VIDEO_RENDER_OGL && !SDL_RENDER_DISABLED */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/render/opengles/SDL_render_gles.c b/src/render/opengles/SDL_render_gles.c index 941c83fdf..235073099 100644 --- a/src/render/opengles/SDL_render_gles.c +++ b/src/render/opengles/SDL_render_gles.c @@ -21,7 +21,7 @@ */ #include "SDL_config.h" -#if SDL_VIDEO_RENDER_OGL_ES +#if SDL_VIDEO_RENDER_OGL_ES && !SDL_RENDER_DISABLED #include "SDL_opengles.h" #include "../SDL_sysrender.h" @@ -728,6 +728,6 @@ GLES_DestroyRenderer(SDL_Renderer * renderer) SDL_free(renderer); } -#endif /* SDL_VIDEO_RENDER_OGL_ES */ +#endif /* SDL_VIDEO_RENDER_OGL_ES && !SDL_RENDER_DISABLED */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/render/opengles2/SDL_render_gles2.c b/src/render/opengles2/SDL_render_gles2.c index 9b6d231fa..10d262c6f 100644 --- a/src/render/opengles2/SDL_render_gles2.c +++ b/src/render/opengles2/SDL_render_gles2.c @@ -23,7 +23,7 @@ #include "SDL_config.h" -#if SDL_VIDEO_RENDER_OGL_ES2 +#if SDL_VIDEO_RENDER_OGL_ES2 && !SDL_RENDER_DISABLED #include "SDL_opengles2.h" #include "../SDL_sysrender.h" @@ -1201,6 +1201,6 @@ GLES2_CreateRenderer(SDL_Window *window, Uint32 flags) return renderer; } -#endif /* SDL_VIDEO_RENDER_OGL_ES2 */ +#endif /* SDL_VIDEO_RENDER_OGL_ES2 && !SDL_RENDER_DISABLED */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/render/opengles2/SDL_shaders_gles2.c b/src/render/opengles2/SDL_shaders_gles2.c index c92ba2374..7005583cc 100644 --- a/src/render/opengles2/SDL_shaders_gles2.c +++ b/src/render/opengles2/SDL_shaders_gles2.c @@ -23,7 +23,7 @@ #include "SDL_config.h" -#if SDL_VIDEO_RENDER_OGL_ES2 +#if SDL_VIDEO_RENDER_OGL_ES2 && !SDL_RENDER_DISABLED #include "SDL_video.h" #include "SDL_opengles2.h" @@ -539,6 +539,6 @@ const GLES2_Shader *GLES2_GetShader(GLES2_ShaderType type, SDL_BlendMode blendMo } } -#endif /* SDL_VIDEO_RENDER_OGL_ES2 */ +#endif /* SDL_VIDEO_RENDER_OGL_ES2 && !SDL_RENDER_DISABLED */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/render/software/SDL_blendfillrect.c b/src/render/software/SDL_blendfillrect.c index 4623028b7..b9e658505 100644 --- a/src/render/software/SDL_blendfillrect.c +++ b/src/render/software/SDL_blendfillrect.c @@ -21,6 +21,8 @@ */ #include "SDL_config.h" +#if !SDL_RENDER_DISABLED + #include "SDL_draw.h" #include "SDL_blendfillrect.h" @@ -345,4 +347,6 @@ SDL_BlendFillRects(SDL_Surface * dst, const SDL_Rect ** rects, int count, return status; } +#endif /* !SDL_RENDER_DISABLED */ + /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/render/software/SDL_blendline.c b/src/render/software/SDL_blendline.c index 561a48766..7f5453f6f 100644 --- a/src/render/software/SDL_blendline.c +++ b/src/render/software/SDL_blendline.c @@ -21,6 +21,8 @@ */ #include "SDL_config.h" +#if !SDL_RENDER_DISABLED + #include "SDL_draw.h" #include "SDL_blendline.h" #include "SDL_blendpoint.h" @@ -779,4 +781,6 @@ SDL_BlendLines(SDL_Surface * dst, const SDL_Point * points, int count, return 0; } +#endif /* !SDL_RENDER_DISABLED */ + /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/render/software/SDL_blendpoint.c b/src/render/software/SDL_blendpoint.c index 60f790434..e8b8f0453 100644 --- a/src/render/software/SDL_blendpoint.c +++ b/src/render/software/SDL_blendpoint.c @@ -21,6 +21,8 @@ */ #include "SDL_config.h" +#if !SDL_RENDER_DISABLED + #include "SDL_draw.h" #include "SDL_blendpoint.h" @@ -343,4 +345,6 @@ SDL_BlendPoints(SDL_Surface * dst, const SDL_Point * points, int count, return status; } +#endif /* !SDL_RENDER_DISABLED */ + /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/render/software/SDL_drawline.c b/src/render/software/SDL_drawline.c index 508c017ef..13b27fc96 100644 --- a/src/render/software/SDL_drawline.c +++ b/src/render/software/SDL_drawline.c @@ -21,6 +21,8 @@ */ #include "SDL_config.h" +#if !SDL_RENDER_DISABLED + #include "SDL_draw.h" #include "SDL_drawline.h" #include "SDL_drawpoint.h" @@ -208,4 +210,6 @@ SDL_DrawLines(SDL_Surface * dst, const SDL_Point * points, int count, return 0; } +#endif /* !SDL_RENDER_DISABLED */ + /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/render/software/SDL_drawpoint.c b/src/render/software/SDL_drawpoint.c index 5f648eb86..599b5506a 100644 --- a/src/render/software/SDL_drawpoint.c +++ b/src/render/software/SDL_drawpoint.c @@ -21,6 +21,8 @@ */ #include "SDL_config.h" +#if !SDL_RENDER_DISABLED + #include "SDL_draw.h" #include "SDL_drawpoint.h" @@ -114,4 +116,6 @@ SDL_DrawPoints(SDL_Surface * dst, const SDL_Point * points, int count, return 0; } +#endif /* !SDL_RENDER_DISABLED */ + /* vi: set ts=4 sw=4 expandtab: */ diff --git a/src/render/software/SDL_render_sw.c b/src/render/software/SDL_render_sw.c index 44e786abe..45183dbc9 100644 --- a/src/render/software/SDL_render_sw.c +++ b/src/render/software/SDL_render_sw.c @@ -21,6 +21,8 @@ */ #include "SDL_config.h" +#if !SDL_RENDER_DISABLED + #include "../SDL_sysrender.h" #include "../../video/SDL_pixels_c.h" @@ -428,4 +430,6 @@ SW_DestroyRenderer(SDL_Renderer * renderer) SDL_free(renderer); } +#endif /* !SDL_RENDER_DISABLED */ + /* vi: set ts=4 sw=4 expandtab: */