SDL_CreateRenderer () и SDL_CreateSoftwareRenderer () - PullRequest
0 голосов
/ 24 января 2019

Рендерер, созданный с помощью SDL_CreateSoftwareRenderer(), ведет себя иначе, чем рендерер, созданный с помощью SDL_CreateRenderer() с использованием флага SDL_RENDERER_SOFTWARE?

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Существуют различия в том, как эти два работают, или даже их предполагаемое использование.SDL_CreateSoftwareRenderer создает программное средство рендеринга чертежа на заданную поверхность.Не требуется, чтобы эта поверхность была поверхностью окна, вы можете нарисовать в backbuffer, преобразовать ее в текстуру и передать результат в d3d или opengl рендерер.

SDL_CreateRenderer создает рендерер для данного окна, то естьдолжен рисовать в это окно - с некоторыми проверками, такими как opengl или vulkan, требуется, чтобы окно создавалось с определенными флагами.Он просматривает список доступных рендерингов и пытается найти тот, который соответствует вашему flags лучше всего.В конце концов, если он решает использовать программный рендерер (либо ничего не поддерживается, либо программное обеспечение явно запрашивается, хотя для этого есть несколько способов - см. Последний абзац), он вызывает более или менее SDL_CreateSoftwareRenderer(SDL_GetWindowSurface(window)) (не совсем так, но если вы проследите, чтобы код был таким же).

flags в SDL_CreateRenderer не являются абсолютными;если подсказка говорит, что нужно использовать direct3d или opengl, ваш SDL_RENDERER_SOFTWARE будет проигнорирован.SDL_CreateSoftwareRenderer всегда программный.

0 голосов
/ 24 января 2019

Неа!Они должны вести себя одинаково.

SDL2 имеет целый список вспомогательных функций, которые эквивалентны простому вызову другой функции с определенным набором аргументов.Например, просмотрев список API по имени , вы обнаружите, что функция SDL_LogMessage () соответствует множеству других функций, которые неявно определяют поле priority, например SDL_LogVerbose () или SDL_LogError ().

В некоторой степени, помимо обеспечения простоты использования, эти комбинированные удобные функции помогают обеспечить краткость кода, сохраняя при этом ясность.Таким образом, я бы посоветовал и выступил за их использование, когда это возможно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...