Я пишу приложение с использованием SDL2 / OpenGL и выполняю некоторые трафаретные операции.
На Mac все работает как положено, однако на ПК трафарет не работает.
При ближайшем рассмотрении я понял, что следующий код обеспечивает разные результаты на моем Mac и ПК:
SDL_Init (SDL_INIT_VIDEO);
SDL_GL_SetAttribute (SDL_GL_STENCIL_SIZE, 8);
SDL_CreateWindow (…);
SDL_CreateRenderer (…)
… делать вещи …
Когда я печатаю биты трафарета (SDL_GL_STENCIL_SIZE) на Mac, я получаю 8. Когда я делаю то же самое на ПК, я получаю 0.
То же самое происходит, запускаю ли я его на реальном ПК или на эмуляторе ПК на Mac.
Что мне не хватает? Как заставить SDL2 запрашивать контекст с помощью буфера трафарета?
Мне кажется, что реализация OpenGL для Mac отличается от настроек по умолчанию, чем на ПК, поэтому я, вероятно, забываю сделать что-то, чтобы специально запросить буфер трафарета, но я не могу найти никакой полезной информации в Интернете …
Помощь ^ _ ^ ‘?
Неважно, я нашел ответ:
На ПК SDL2 по умолчанию был Direct3D (который, я думаю, объяснил бы, почему мой трафаретный буфер opengl там не находился ^ _ ^ ‘).
Чтобы заставить SDL2 использовать определенный драйвер, вы можете использовать второй параметр в SDL_CreateRenderer.
Проблема решена: D
StackOverflow, самая большая резиновая утка из доступных … ^ — ^ ‘