From 3ff3cb542bf4a0c52619777c6f3df59d6621d62f Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 22 Jan 2012 19:22:53 -0500 Subject: [PATCH] Added a convenience function SDL_CreateWindowAndRenderer() --- include/SDL_render.h | 16 ++++++++++++++++ src/render/SDL_render.c | 20 ++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/include/SDL_render.h b/include/SDL_render.h index 7f0c815fa..dbbf83624 100644 --- a/include/SDL_render.h +++ b/include/SDL_render.h @@ -147,6 +147,22 @@ extern DECLSPEC int SDLCALL SDL_GetNumRenderDrivers(void); extern DECLSPEC int SDLCALL SDL_GetRenderDriverInfo(int index, SDL_RendererInfo * info); +/** + * \brief Create a window and default renderer + * + * \param width The width of the window + * \param height The height of the window + * \param window_flags The flags used to create the window + * \param window A pointer filled with the window, or NULL on error + * \param renderer A pointer filled with the renderer, or NULL on error + * + * \return 0 on success, or -1 on error + */ +extern DECLSPEC int SDLCALL SDL_CreateWindowAndRenderer( + int width, int height, Uint32 window_flags, + SDL_Window **window, SDL_Renderer **renderer); + + /** * \brief Create a 2D rendering context for a window. * diff --git a/src/render/SDL_render.c b/src/render/SDL_render.c index dc59fd86c..59872722a 100755 --- a/src/render/SDL_render.c +++ b/src/render/SDL_render.c @@ -126,6 +126,26 @@ SDL_RendererEventWatch(void *userdata, SDL_Event *event) return 0; } +int +SDL_CreateWindowAndRenderer(int width, int height, Uint32 window_flags, + SDL_Window **window, SDL_Renderer **renderer) +{ + *window = SDL_CreateWindow(NULL, SDL_WINDOWPOS_UNDEFINED, + SDL_WINDOWPOS_UNDEFINED, + width, height, window_flags); + if (!*window) { + *renderer = NULL; + return -1; + } + + *renderer = SDL_CreateRenderer(*window, -1, 0); + if (!*renderer) { + return -1; + } + + return 0; +} + SDL_Renderer * SDL_CreateRenderer(SDL_Window * window, int index, Uint32 flags) {