| 2790 | } |
| 2791 | |
| 2792 | int |
| 2793 | SDL_RenderFillRects(SDL_Renderer * renderer, |
| 2794 | const SDL_Rect * rects, int count) |
| 2795 | { |
| 2796 | SDL_FRect *frects; |
| 2797 | int i; |
| 2798 | int retval; |
| 2799 | SDL_bool isstack; |
| 2800 | |
| 2801 | CHECK_RENDERER_MAGIC(renderer, -1); |
| 2802 | |
| 2803 | if (!rects) { |
| 2804 | return SDL_SetError("SDL_RenderFillRects(): Passed NULL rects"); |
| 2805 | } |
| 2806 | if (count < 1) { |
| 2807 | return 0; |
| 2808 | } |
| 2809 | |
| 2810 | /* Don't draw while we're hidden */ |
| 2811 | if (renderer->hidden) { |
| 2812 | return 0; |
| 2813 | } |
| 2814 | |
| 2815 | frects = SDL_small_alloc(SDL_FRect, count, &isstack); |
| 2816 | if (!frects) { |
| 2817 | return SDL_OutOfMemory(); |
| 2818 | } |
| 2819 | for (i = 0; i < count; ++i) { |
| 2820 | frects[i].x = rects[i].x * renderer->scale.x; |
| 2821 | frects[i].y = rects[i].y * renderer->scale.y; |
| 2822 | frects[i].w = rects[i].w * renderer->scale.x; |
| 2823 | frects[i].h = rects[i].h * renderer->scale.y; |
| 2824 | } |
| 2825 | |
| 2826 | retval = QueueCmdFillRects(renderer, frects, count); |
| 2827 | |
| 2828 | SDL_small_free(frects, isstack); |
| 2829 | |
| 2830 | return retval < 0 ? retval : FlushRenderCommandsIfNotBatching(renderer); |
| 2831 | } |
| 2832 | |
| 2833 | int |
| 2834 | SDL_RenderFillRectsF(SDL_Renderer * renderer, |