LINUX.ORG.RU

Почему крашится

 


0

1

Привет.

    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().

★★

Последнее исправление: pavlick (всего исправлений: 1)

Не хотел бы руками выбирать какой-то бекэнд, сегодня opengl, завтра vulkan, потом еще что-то.

pavlick ★★
() автор топика

Блин, а так не крашится:

    window = SDL_CreateWindow(...,
           0
            );   
    renderer = SDL_CreateRenderer(window,
            -1,
            //SDL_RENDERER_SOFTWARE
            0
            );   
    window2 = SDL_CreateWindow(..., 
           0
            );   
    renderer2 = SDL_CreateRenderer(window2,
            -1,
            //SDL_RENDERER_SOFTWARE
            0
            );   

Странно, кончено, ну да ладно.

pavlick ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.