mirror of https://github.com/encounter/SDL.git
Save and restore SDL renderer state after transforming triangles to rect
This commit is contained in:
parent
cd0663e053
commit
4ba3763897
|
@ -3427,6 +3427,12 @@ SDL_SW_RenderGeometryRaw(SDL_Renderer *renderer,
|
||||||
const int debug = 0;
|
const int debug = 0;
|
||||||
int prev[3]; /* Previous triangle vertex indices */
|
int prev[3]; /* Previous triangle vertex indices */
|
||||||
int texw = 0, texh = 0;
|
int texw = 0, texh = 0;
|
||||||
|
SDL_BlendMode blendMode;
|
||||||
|
Uint8 r, g, b, a;
|
||||||
|
|
||||||
|
/* Save */
|
||||||
|
SDL_GetRenderDrawBlendMode(renderer, &blendMode);
|
||||||
|
SDL_GetRenderDrawColor(renderer, &r, &g, &b, &a);
|
||||||
|
|
||||||
if (texture) {
|
if (texture) {
|
||||||
SDL_QueryTexture(texture, NULL, NULL, &texw, &texh);
|
SDL_QueryTexture(texture, NULL, NULL, &texw, &texh);
|
||||||
|
@ -3646,7 +3652,7 @@ SDL_SW_RenderGeometryRaw(SDL_Renderer *renderer,
|
||||||
xy, xy_stride, color, color_stride, uv, uv_stride,
|
xy, xy_stride, color, color_stride, uv, uv_stride,
|
||||||
num_vertices, prev, 3, 4, renderer->scale.x, renderer->scale.y);
|
num_vertices, prev, 3, 4, renderer->scale.x, renderer->scale.y);
|
||||||
if (retval < 0) {
|
if (retval < 0) {
|
||||||
return retval;
|
goto end;
|
||||||
} else {
|
} else {
|
||||||
FlushRenderCommandsIfNotBatching(renderer);
|
FlushRenderCommandsIfNotBatching(renderer);
|
||||||
}
|
}
|
||||||
|
@ -3667,12 +3673,17 @@ SDL_SW_RenderGeometryRaw(SDL_Renderer *renderer,
|
||||||
xy, xy_stride, color, color_stride, uv, uv_stride,
|
xy, xy_stride, color, color_stride, uv, uv_stride,
|
||||||
num_vertices, prev, 3, 4, renderer->scale.x, renderer->scale.y);
|
num_vertices, prev, 3, 4, renderer->scale.x, renderer->scale.y);
|
||||||
if (retval < 0) {
|
if (retval < 0) {
|
||||||
return retval;
|
goto end;
|
||||||
} else {
|
} else {
|
||||||
FlushRenderCommandsIfNotBatching(renderer);
|
FlushRenderCommandsIfNotBatching(renderer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
end:
|
||||||
|
/* Restore */
|
||||||
|
SDL_SetRenderDrawBlendMode(renderer, blendMode);
|
||||||
|
SDL_SetRenderDrawColor(renderer, r, g, b, a);
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue