Added a renderer flag to expose whether a renderer supports render to texture.
This commit is contained in:
parent
320c59b387
commit
23b96d3406
6 changed files with 13 additions and 11 deletions
|
@ -65,8 +65,10 @@ typedef enum
|
||||||
SDL_RENDERER_SOFTWARE = 0x00000001, /**< The renderer is a software fallback */
|
SDL_RENDERER_SOFTWARE = 0x00000001, /**< The renderer is a software fallback */
|
||||||
SDL_RENDERER_ACCELERATED = 0x00000002, /**< The renderer uses hardware
|
SDL_RENDERER_ACCELERATED = 0x00000002, /**< The renderer uses hardware
|
||||||
acceleration */
|
acceleration */
|
||||||
SDL_RENDERER_PRESENTVSYNC = 0x00000004 /**< Present is synchronized
|
SDL_RENDERER_PRESENTVSYNC = 0x00000004, /**< Present is synchronized
|
||||||
with the refresh rate */
|
with the refresh rate */
|
||||||
|
SDL_RENDERER_TARGETTEXTURE = 0x00000008 /**< The renderer supports
|
||||||
|
rendering to texture */
|
||||||
} SDL_RendererFlags;
|
} SDL_RendererFlags;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1153,10 +1153,10 @@ SDL_RenderReadPixels(SDL_Renderer * renderer, const SDL_Rect * rect,
|
||||||
SDL_bool
|
SDL_bool
|
||||||
SDL_RenderTargetSupported(SDL_Renderer *renderer)
|
SDL_RenderTargetSupported(SDL_Renderer *renderer)
|
||||||
{
|
{
|
||||||
if ((!renderer) || (!renderer->SetTargetTexture)) {
|
if (!renderer || !renderer->SetTargetTexture) {
|
||||||
return SDL_FALSE;
|
return SDL_FALSE;
|
||||||
}
|
}
|
||||||
return SDL_TRUE;
|
return (renderer->info.flags & SDL_RENDERER_TARGETTEXTURE) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -122,7 +122,7 @@ SDL_RenderDriver D3D_RenderDriver = {
|
||||||
D3D_CreateRenderer,
|
D3D_CreateRenderer,
|
||||||
{
|
{
|
||||||
"direct3d",
|
"direct3d",
|
||||||
(SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC),
|
(SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC | SDL_RENDERER_TARGETTEXTURE),
|
||||||
1,
|
1,
|
||||||
{SDL_PIXELFORMAT_ARGB8888},
|
{SDL_PIXELFORMAT_ARGB8888},
|
||||||
0,
|
0,
|
||||||
|
@ -406,7 +406,7 @@ D3D_CreateRenderer(SDL_Window * window, Uint32 flags)
|
||||||
renderer->info = D3D_RenderDriver.info;
|
renderer->info = D3D_RenderDriver.info;
|
||||||
renderer->driverdata = data;
|
renderer->driverdata = data;
|
||||||
|
|
||||||
renderer->info.flags = SDL_RENDERER_ACCELERATED;
|
renderer->info.flags = SDL_RENDERER_ACCELERATED | SDL_RENDERER_TARGETTEXTURE;
|
||||||
|
|
||||||
SDL_VERSION(&windowinfo.version);
|
SDL_VERSION(&windowinfo.version);
|
||||||
SDL_GetWindowWMInfo(window, &windowinfo);
|
SDL_GetWindowWMInfo(window, &windowinfo);
|
||||||
|
|
|
@ -76,7 +76,7 @@ SDL_RenderDriver GL_RenderDriver = {
|
||||||
GL_CreateRenderer,
|
GL_CreateRenderer,
|
||||||
{
|
{
|
||||||
"opengl",
|
"opengl",
|
||||||
(SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC),
|
(SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC | SDL_RENDERER_TARGETTEXTURE),
|
||||||
1,
|
1,
|
||||||
{SDL_PIXELFORMAT_ARGB8888},
|
{SDL_PIXELFORMAT_ARGB8888},
|
||||||
0,
|
0,
|
||||||
|
@ -321,7 +321,7 @@ GL_CreateRenderer(SDL_Window * window, Uint32 flags)
|
||||||
renderer->DestroyTexture = GL_DestroyTexture;
|
renderer->DestroyTexture = GL_DestroyTexture;
|
||||||
renderer->DestroyRenderer = GL_DestroyRenderer;
|
renderer->DestroyRenderer = GL_DestroyRenderer;
|
||||||
renderer->info = GL_RenderDriver.info;
|
renderer->info = GL_RenderDriver.info;
|
||||||
renderer->info.flags = SDL_RENDERER_ACCELERATED;
|
renderer->info.flags = SDL_RENDERER_ACCELERATED | SDL_RENDERER_TARGETTEXTURE;
|
||||||
renderer->driverdata = data;
|
renderer->driverdata = data;
|
||||||
renderer->window = window;
|
renderer->window = window;
|
||||||
|
|
||||||
|
|
|
@ -89,7 +89,7 @@ SDL_RenderDriver GLES_RenderDriver = {
|
||||||
GLES_CreateRenderer,
|
GLES_CreateRenderer,
|
||||||
{
|
{
|
||||||
"opengles",
|
"opengles",
|
||||||
(SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC),
|
(SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC | SDL_RENDERER_TARGETTEXTURE),
|
||||||
1,
|
1,
|
||||||
{SDL_PIXELFORMAT_ABGR8888},
|
{SDL_PIXELFORMAT_ABGR8888},
|
||||||
0,
|
0,
|
||||||
|
@ -372,7 +372,7 @@ GLES_CreateRenderer(SDL_Window * window, Uint32 flags)
|
||||||
renderer->DestroyTexture = GLES_DestroyTexture;
|
renderer->DestroyTexture = GLES_DestroyTexture;
|
||||||
renderer->DestroyRenderer = GLES_DestroyRenderer;
|
renderer->DestroyRenderer = GLES_DestroyRenderer;
|
||||||
renderer->info = GLES_RenderDriver.info;
|
renderer->info = GLES_RenderDriver.info;
|
||||||
renderer->info.flags = SDL_RENDERER_ACCELERATED;
|
renderer->info.flags = SDL_RENDERER_ACCELERATED | SDL_RENDERER_TARGETTEXTURE;
|
||||||
renderer->driverdata = data;
|
renderer->driverdata = data;
|
||||||
renderer->window = window;
|
renderer->window = window;
|
||||||
renderer->SetTargetTexture = GLES_SetTargetTexture;
|
renderer->SetTargetTexture = GLES_SetTargetTexture;
|
||||||
|
|
|
@ -40,7 +40,7 @@ SDL_RenderDriver GLES2_RenderDriver = {
|
||||||
GLES2_CreateRenderer,
|
GLES2_CreateRenderer,
|
||||||
{
|
{
|
||||||
"opengles2",
|
"opengles2",
|
||||||
(SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC),
|
(SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC | SDL_RENDERER_TARGETTEXTURE),
|
||||||
4,
|
4,
|
||||||
{SDL_PIXELFORMAT_ABGR8888,
|
{SDL_PIXELFORMAT_ABGR8888,
|
||||||
SDL_PIXELFORMAT_ARGB8888,
|
SDL_PIXELFORMAT_ARGB8888,
|
||||||
|
@ -1447,7 +1447,7 @@ GLES2_CreateRenderer(SDL_Window *window, Uint32 flags)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
renderer->info = GLES2_RenderDriver.info;
|
renderer->info = GLES2_RenderDriver.info;
|
||||||
renderer->info.flags = SDL_RENDERER_ACCELERATED;
|
renderer->info.flags = SDL_RENDERER_ACCELERATED | SDL_RENDERER_TARGETTEXTURE;
|
||||||
renderer->driverdata = rdata;
|
renderer->driverdata = rdata;
|
||||||
renderer->window = window;
|
renderer->window = window;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue