mirror of https://github.com/encounter/SDL.git
SDL_Renderer: make clear that we use render geometry for fillrect/copy/copyex when there is no specific back-end implementation (currently software, PSP, directfb)
This commit is contained in:
parent
b3f9d8f38d
commit
b793394590
|
@ -519,12 +519,12 @@ QueueCmdFillRects(SDL_Renderer *renderer, const SDL_FRect * rects, const int cou
|
|||
{
|
||||
SDL_RenderCommand *cmd;
|
||||
int retval = -1;
|
||||
int use_geometry = renderer->QueueGeometry && ! (renderer->info.flags & SDL_RENDERER_SOFTWARE);
|
||||
const int use_rendergeometry = (renderer->QueueFillRects == NULL);
|
||||
|
||||
cmd = PrepQueueCmdDraw(renderer, (use_geometry ? SDL_RENDERCMD_GEOMETRY : SDL_RENDERCMD_FILL_RECTS), NULL);
|
||||
cmd = PrepQueueCmdDraw(renderer, (use_rendergeometry ? SDL_RENDERCMD_GEOMETRY : SDL_RENDERCMD_FILL_RECTS), NULL);
|
||||
|
||||
if (cmd != NULL) {
|
||||
if (use_geometry) {
|
||||
if (use_rendergeometry) {
|
||||
SDL_bool isstack1;
|
||||
SDL_bool isstack2;
|
||||
float *xy = SDL_small_alloc(float, 4 * 2 * count, &isstack1);
|
||||
|
@ -609,7 +609,6 @@ QueueCmdCopyEx(SDL_Renderer *renderer, SDL_Texture * texture,
|
|||
{
|
||||
SDL_RenderCommand *cmd = PrepQueueCmdDraw(renderer, SDL_RENDERCMD_COPY_EX, texture);
|
||||
int retval = -1;
|
||||
SDL_assert(renderer->QueueCopyEx != NULL); /* should have caught at higher level. */
|
||||
if (cmd != NULL) {
|
||||
retval = renderer->QueueCopyEx(renderer, cmd, texture, srcquad, dstrect, angle, center, flip);
|
||||
if (retval < 0) {
|
||||
|
@ -3249,6 +3248,8 @@ SDL_RenderCopyF(SDL_Renderer * renderer, SDL_Texture * texture,
|
|||
SDL_Rect real_srcrect;
|
||||
SDL_FRect real_dstrect;
|
||||
int retval;
|
||||
int use_rendergeometry;
|
||||
|
||||
|
||||
CHECK_RENDERER_MAGIC(renderer, -1);
|
||||
CHECK_TEXTURE_MAGIC(texture, -1);
|
||||
|
@ -3264,6 +3265,8 @@ SDL_RenderCopyF(SDL_Renderer * renderer, SDL_Texture * texture,
|
|||
}
|
||||
#endif
|
||||
|
||||
use_rendergeometry = (renderer->QueueCopy == NULL);
|
||||
|
||||
real_srcrect.x = 0;
|
||||
real_srcrect.y = 0;
|
||||
real_srcrect.w = texture->w;
|
||||
|
@ -3288,7 +3291,7 @@ SDL_RenderCopyF(SDL_Renderer * renderer, SDL_Texture * texture,
|
|||
|
||||
texture->last_command_generation = renderer->render_command_generation;
|
||||
|
||||
if (renderer->QueueGeometry && renderer->QueueCopy == NULL) {
|
||||
if (use_rendergeometry) {
|
||||
float xy[8];
|
||||
const int xy_stride = 2 * sizeof (float);
|
||||
float uv[8];
|
||||
|
@ -3381,6 +3384,7 @@ SDL_RenderCopyExF(SDL_Renderer * renderer, SDL_Texture * texture,
|
|||
SDL_FRect real_dstrect;
|
||||
SDL_FPoint real_center;
|
||||
int retval;
|
||||
int use_rendergeometry;
|
||||
|
||||
if (flip == SDL_FLIP_NONE && (int)(angle/360) == angle/360) { /* fast path when we don't need rotation or flipping */
|
||||
return SDL_RenderCopyF(renderer, texture, srcrect, dstrect);
|
||||
|
@ -3403,6 +3407,8 @@ SDL_RenderCopyExF(SDL_Renderer * renderer, SDL_Texture * texture,
|
|||
}
|
||||
#endif
|
||||
|
||||
use_rendergeometry = (renderer->QueueCopyEx == NULL);
|
||||
|
||||
real_srcrect.x = 0;
|
||||
real_srcrect.y = 0;
|
||||
real_srcrect.w = texture->w;
|
||||
|
@ -3433,7 +3439,7 @@ SDL_RenderCopyExF(SDL_Renderer * renderer, SDL_Texture * texture,
|
|||
|
||||
texture->last_command_generation = renderer->render_command_generation;
|
||||
|
||||
if (renderer->QueueGeometry && renderer->QueueCopyEx == NULL) {
|
||||
if (use_rendergeometry) {
|
||||
float xy[8];
|
||||
const int xy_stride = 2 * sizeof (float);
|
||||
float uv[8];
|
||||
|
|
Loading…
Reference in New Issue