Added SDL_GetRenderer()
This commit is contained in:
parent
b950cf4653
commit
126bbbaa50
2 changed files with 27 additions and 0 deletions
|
@ -174,6 +174,11 @@ extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateRenderer(SDL_Window * window,
|
||||||
*/
|
*/
|
||||||
extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateSoftwareRenderer(SDL_Surface * surface);
|
extern DECLSPEC SDL_Renderer * SDLCALL SDL_CreateSoftwareRenderer(SDL_Surface * surface);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Get the renderer associated with a window.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC SDL_Renderer * SDLCALL SDL_GetRenderer(SDL_Window * window);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Get information about a rendering context.
|
* \brief Get information about a rendering context.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -30,6 +30,8 @@
|
||||||
#include "software/SDL_render_sw_c.h"
|
#include "software/SDL_render_sw_c.h"
|
||||||
|
|
||||||
|
|
||||||
|
#define SDL_WINDOWRENDERDATA "_SDL_WindowRenderData"
|
||||||
|
|
||||||
#define CHECK_RENDERER_MAGIC(renderer, retval) \
|
#define CHECK_RENDERER_MAGIC(renderer, retval) \
|
||||||
if (!renderer || renderer->magic != &renderer_magic) { \
|
if (!renderer || renderer->magic != &renderer_magic) { \
|
||||||
SDL_SetError("Invalid renderer"); \
|
SDL_SetError("Invalid renderer"); \
|
||||||
|
@ -123,6 +125,16 @@ SDL_CreateRenderer(SDL_Window * window, int index, Uint32 flags)
|
||||||
int n = SDL_GetNumRenderDrivers();
|
int n = SDL_GetNumRenderDrivers();
|
||||||
const char *hint;
|
const char *hint;
|
||||||
|
|
||||||
|
if (!window) {
|
||||||
|
SDL_SetError("Invalid window");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SDL_GetRenderer(window)) {
|
||||||
|
SDL_SetError("Renderer already associated with window");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
hint = SDL_GetHint(SDL_HINT_RENDER_VSYNC);
|
hint = SDL_GetHint(SDL_HINT_RENDER_VSYNC);
|
||||||
if (hint) {
|
if (hint) {
|
||||||
if (*hint == '0') {
|
if (*hint == '0') {
|
||||||
|
@ -178,6 +190,8 @@ SDL_CreateRenderer(SDL_Window * window, int index, Uint32 flags)
|
||||||
renderer->magic = &renderer_magic;
|
renderer->magic = &renderer_magic;
|
||||||
renderer->window = window;
|
renderer->window = window;
|
||||||
|
|
||||||
|
SDL_SetWindowData(window, SDL_WINDOWRENDERDATA, renderer);
|
||||||
|
|
||||||
SDL_RenderSetViewport(renderer, NULL);
|
SDL_RenderSetViewport(renderer, NULL);
|
||||||
|
|
||||||
SDL_AddEventWatch(SDL_RendererEventWatch, renderer);
|
SDL_AddEventWatch(SDL_RendererEventWatch, renderer);
|
||||||
|
@ -208,6 +222,12 @@ SDL_CreateSoftwareRenderer(SDL_Surface * surface)
|
||||||
#endif /* !SDL_RENDER_DISABLED */
|
#endif /* !SDL_RENDER_DISABLED */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SDL_Renderer *
|
||||||
|
SDL_GetRenderer(SDL_Window * window)
|
||||||
|
{
|
||||||
|
return (SDL_Renderer *)SDL_GetWindowData(window, SDL_WINDOWRENDERDATA);
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
SDL_GetRendererInfo(SDL_Renderer * renderer, SDL_RendererInfo * info)
|
SDL_GetRendererInfo(SDL_Renderer * renderer, SDL_RendererInfo * info)
|
||||||
{
|
{
|
||||||
|
@ -1149,6 +1169,8 @@ SDL_DestroyRenderer(SDL_Renderer * renderer)
|
||||||
SDL_DestroyTexture(renderer->textures);
|
SDL_DestroyTexture(renderer->textures);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SDL_SetWindowData(renderer->window, SDL_WINDOWRENDERDATA, NULL);
|
||||||
|
|
||||||
/* It's no longer magical... */
|
/* It's no longer magical... */
|
||||||
renderer->magic = NULL;
|
renderer->magic = NULL;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue