mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-05-28 07:29:09 +00:00
SDL_Renderer simplifications:
- Factorize PrepQueueCmdDraw{,DrawTexture,Solid) into one single function - Change SDL_Texture/Renderer r,g,b,a Uint8 into an SDL_Color, so that it can be passed directly to RenderGeometry - Don't automatically queue a SET_DRAW_COLOR cmd for RenderGeometry (and update GLES2 renderer)
This commit is contained in:
parent
23e252bfc5
commit
502e9c3b45
4 changed files with 70 additions and 106 deletions
|
@ -1032,7 +1032,6 @@ GLES2_RunCommandQueue(SDL_Renderer * renderer, SDL_RenderCommand *cmd, void *ver
|
|||
const SDL_bool colorswap = (renderer->target && (renderer->target->format == SDL_PIXELFORMAT_ARGB8888 || renderer->target->format == SDL_PIXELFORMAT_RGB888));
|
||||
const int vboidx = data->current_vertex_buffer;
|
||||
const GLuint vbo = data->vertex_buffers[vboidx];
|
||||
size_t i;
|
||||
|
||||
if (GLES2_ActivateRenderer(renderer) < 0) {
|
||||
return -1;
|
||||
|
@ -1142,10 +1141,7 @@ GLES2_RunCommandQueue(SDL_Renderer * renderer, SDL_RenderCommand *cmd, void *ver
|
|||
while (nextcmd != NULL) {
|
||||
const SDL_RenderCommandType nextcmdtype = nextcmd->command;
|
||||
if (nextcmdtype != thiscmdtype) {
|
||||
/* SETDRAWCOLOR commands are safe because copy color is set in the vbo per-vertex. */
|
||||
if ((nextcmdtype != SDL_RENDERCMD_SETDRAWCOLOR) && (nextcmdtype != SDL_RENDERCMD_NO_OP)) {
|
||||
break; /* can't go any further on this draw call, different render command up next. */
|
||||
}
|
||||
break; /* can't go any further on this draw call, different render command up next. */
|
||||
} else if (nextcmd->data.draw.texture != thistexture || nextcmd->data.draw.blend != thisblend) {
|
||||
break; /* can't go any further on this draw call, different texture/blendmode copy up next. */
|
||||
} else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue