Я изучаю основы SDL, тогда я впал в это сомнение. Я узнал, что текстура SDL является аналогом GPU поверхности SDL, которая использует процессор. Но для получения поверхности аргумент рендерера не задан, в качестве аргумента дается просто актив, подлежащий загрузке. Но для преобразования аргумента поверхности в текстуру был необходим аргумент. Что мне здесь не хватает?
SDL_Surface* pTempSurface=SDL_LoadBMP("image.bmp");
SDL_Texture* pTexture=SDL_CreateTextureFromSurface(m_pRenderer,pTempSurface);
SDL_Surface
не использует SDL_Renderer
, он используется только для/для SDL_Texture
. SDL_Surfaces
копируются из памяти в буфер экрана с помощью SDL_Flip
. Поэтому при загрузке растрового изображения в поверхность не требуется рендерер (действительно, рендереры не существовали до SDL 2.0), но когда вы используете CreateTextureFromSurface
вам нужно сообщить функции контекста визуализатора, в который должна быть загружена текстура.
Может быть, не лучшее объяснение, но я надеюсь, что вы получите разницу.
Если вы знакомы с SDL 1.2, но не с 2.0, руководство по миграции должно помочь вам.