"неверный контекст 0x0" из SDL_CreateRenderer () в Мохаве? - PullRequest
0 голосов
/ 28 декабря 2018

Я создал базовую программу SDL 2 C ++, которая создает окно и отображает изображение.Я использую Mac OS Mojave и Xcode.Все работает, но я получаю следующие сообщения об ошибках:

2018-12-28 11:49:38.602582-0700 SDLTest[76555:7241475] [SDLTest]  
CGContextSetFillColorWithColor: invalid context 0x0. If you want to 
see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE 
environmental variable.
2018-12-28 11:49:38.602623-0700 SDLTest[76555:7241475] [SDLTest] 
CGContextGetCompositeOperation: invalid context 0x0. If you want to 
see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE 
environmental variable.
2018-12-28 11:49:38.602640-0700 SDLTest[76555:7241475] [SDLTest] 
CGContextSetCompositeOperation: invalid context 0x0. If you want to 
see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE  
environmental variable.
2018-12-28 11:49:38.602653-0700 SDLTest[76555:7241475] [SDLTest] 
CGContextFillRects: invalid context 0x0. If you want to see the 
backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental 
variable.
2018-12-28 11:49:38.602666-0700 SDLTest[76555:7241475] [SDLTest]
CGContextSetCompositeOperation: invalid context 0x0. If you want to
see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE  
environmental variable.

Ошибки создаются, когда я добавляю вызов SDL_CreateRenderer ().Они генерируются при запуске и снова при каждом изменении размера окна.

Я не нашел примеров SDL_CreateRenderer (), приводящих к этим ошибкам.Я слышал, что эти ошибки можно игнорировать, если все работает, но я бы предпочел разобраться с ними сейчас.

Есть идеи, что является причиной этих ошибок или как их устранить?

Мой код:

//Initialize SDL
if( SDL_Init( SDL_INIT_VIDEO ) < 0 )
{
    cout << "SDL could not initialize: " << SDL_GetError();
}

//Create window
SDL_Window *window = NULL;
window = SDL_CreateWindow( "SDLTest", 
                           SDL_WINDOWPOS_CENTERED,  
                           SDL_WINDOWPOS_CENTERED,
                           640, 480,
                           SDL_WINDOW_RESIZABLE |  
                           SDL_WINDOW_ALLOW_HIGHDPI | 
                           SDL_WINDOW_SHOWN);
if( window == NULL 
{
    cout << "Window could not be created: " 
         << SDL_GetError() << endl;
}

//Create renderer - Errors appear after adding these lines
SDL_Renderer *renderer = NULL;
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
if (renderer == NULL )
{
    cout << "Renderer could not be created: " 
         << SDL_GetError() << endl;
}
...