概念:
surface:是直接放在内存中的,没有硬件加速.(SDL2)
texture:放在显存中,有硬件加速(SDL2)
SDL wiki : https://wiki.libsdl.org/FrontPage
所有版本的下载地址:https://libsdl.org/release/
最新下载地址: https://www.libsdl.org/download-2.0.php
附加工程:https://www.libsdl.org/projects/ : 图像,字体,网络...
SDL网络: SDL_net 2.0 : 文档SDL_net Reference
////////SDL教程
Lazy Foo' Productions - SDL 2 tutorials
在QT5中搭建SDL2环境以及显示bmp图片
//少壮要努力的博客
(原)关于sdl在部分机器上做视频显示,改变显示窗口大小会崩溃
PS_1:
Widnows平台下,如果SDL窗口作为一个子窗口,那么当使用SDL_DestroyWindow时, 其内部函数会调用SDL_HideWindow(window), 这样会导致窗口消失,解决的办法是:ShowWindow(SW_SHOWNORMAL);//将想显示窗口给显示出来一个奇怪的地方是:如果采用 ShowWindow(SW_SHOW); 来恢复窗口显示, 那么有一定的概率会导致,硬件加速失效。(这句话是猜测,我遇到了这样的情况。)
PS_2
VC环境,子窗口硬件加速,当操作系统锁屏的时候,然后重新登入,有可能会发生硬件刷新失效。然而奇怪的是Qt环境下没事!
~ 未找到解决方案。初步怀疑: SDL版本问题? 多线程问题?
PS_3: 常见问题统一(窗口大小改变会渲染冻结,SDL_DestoryWindow会卡死,锁屏后DEVICELOST渲染失败....)
统一问题解决: 多线程问题.
办法(1):将SDL的有关资源的申请,释放都放在同一个线程里。
办法(2):将SDL的有关资源的申请放在一个线程,释放 放在主线程。
办法(3): 某一部分的资源申请或释放放在一个线程,另一部分放在主线程。
我有的采用办法1解决,有的采用办法2解决,有的采用办法3解决。(都是不同环境下)