#c #c #graphics #sdl #sdl-2
#c #c #графика #sdl #sdl-2
Вопрос:
Обе функции SDL_GetRenderer(SDL_Window*)
и SDL_CreateRenderer(SDL_Window*, int, Uint32)
, похоже, делают одно и то же: возвращают указатель на SDL_Renderer
из окна. Однако какой метод более подходит для этой задачи? SDL Wiki не предоставляет много информации о том, где какой метод следует использовать, поэтому, пожалуйста, объясните, что делает каждый метод, чем они отличаются и где их следует использовать.
Комментарии:
1. Я предполагаю, что сначала вам нужно создать средство визуализации, прежде чем вы сможете его получить
Ответ №1:
SDL_CreateRenderer
позволяет создать средство визуализации для окна, указав некоторые параметры. Он хранится в конкретных данных окна, к которым вы можете запросить SDL_GetRenderer
(поэтому последнее эквивалентно (SDL_Renderer *)SDL_GetWindowData(window, SDL_WINDOWRENDERDATA)
)
Если вы вызываете SDL_GetRenderer
, не создав его заранее, вы получите нулевой указатель.
Если вы дважды вызовете SDL_CreateRenderer
окно, второй вызов завершится ошибкой SDL_SetError("Renderer already associated with window");
(см. Строку 805).
Смотрите здесь