Привет.
window = SDL_CreateWindow("msdl",
SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED,
WINDOW_WIDTH,
WINDOW_HEIGHT,
SDL_WINDOW_OPENGL // STRING
);
window2 = SDL_CreateWindow("msdl2",
SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED,
WINDOW_WIDTH,
WINDOW_HEIGHT,
SDL_WINDOW_OPENGL // STRING
);
renderer = SDL_CreateRenderer(window,
-1,
//SDL_RENDERER_SOFTWARE
//SDL_RENDERER_HARDWARE
0
);
renderer2 = SDL_CreateRenderer(window2,
-1,
//SDL_RENDERER_SOFTWARE
//SDL_RENDERER_HARDWARE
0
);
Ничего хитрого, создаю два окошка через SDL, но если закомментить STRING (и передать ноль как флаг), то приложение падает (можно лишь одно окно создать). Почему? Тесты показывают, что даже без флага SDL_WINDOW_OPENGL и SDL_RENDERER_HARDWARE картинка рендерится на ГПУ (заметно по FPS), отрисовка на ЦПУ лишь при флаге SDL_RENDERER_SOFTWARE в SDL_CreateRenderer(). Это не возврат какого-то нулевого указателя, а падение с дампом внутри первого SDL_CreateRenderer().