Hi guys, it seems like I can’t render on multiple viewports on macOS Mojave with SDL 2.0.10. I have the sample code below. On Linux however, it seems to work. Did I miss something?
#include <SDL2/SDL.h>
static const int WINDOW_WIDTH = 800;
static const int WINDOW_HEIGHT = 600;
int main()
{
SDL_Init(SDL_INIT_EVERYTHING);
SDL_Window *window = SDL_CreateWindow("Test", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, WINDOW_WIDTH, WINDOW_HEIGHT, 0);
SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
SDL_bool running = SDL_TRUE;
while (running) {
SDL_Event event;
while (SDL_PollEvent(&event)) {
switch (event.type) {
case SDL_QUIT:
running = SDL_FALSE;
break;
}
}
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 0);
SDL_RenderClear(renderer);
SDL_Rect rect = {0, 0, 100, 100};
SDL_Rect viewport1 = {0, 0, 100, 100};
SDL_RenderSetViewport(renderer, &viewport1);
SDL_SetRenderDrawColor(renderer, 0, 0, 255, 0);
SDL_RenderFillRect(renderer, &rect);
SDL_Rect viewport2 = {200, 0, 100, 100};
SDL_RenderSetViewport(renderer, &viewport2);
SDL_SetRenderDrawColor(renderer, 0, 255, 0, 0);
SDL_RenderFillRect(renderer, &rect);
SDL_RenderPresent(renderer);
SDL_Delay(16);
}
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}