作者:龙飞
2.1:需要修改的地方。
这里,我们真正的开始使用SDL的硬件渲染。首先,我们需要设置驱动的环境(以windows为例,我们设置为directx,Linux的设置请参考官方网站,我们这里预留为dga)。另外,如果要启动硬件加速,必须使用全屏模式(SDL_FULLSCREEN),所以,在前面的软件渲染中,我们也使用全屏以作对比。第三,硬件渲染需要打开双缓冲(SDL_DOUBLEBUF),至于为什么我们在最后讨论,我们还是先看看完整的代码。
2.2:硬件渲染演示程序完整的源代码。
2.1:需要修改的地方。
这里,我们真正的开始使用SDL的硬件渲染。首先,我们需要设置驱动的环境(以windows为例,我们设置为directx,Linux的设置请参考官方网站,我们这里预留为dga)。另外,如果要启动硬件加速,必须使用全屏模式(SDL_FULLSCREEN),所以,在前面的软件渲染中,我们也使用全屏以作对比。第三,硬件渲染需要打开双缓冲(SDL_DOUBLEBUF),至于为什么我们在最后讨论,我们还是先看看完整的代码。
2.2:硬件渲染演示程序完整的源代码。
#define
__windows__
//
Linux using #define __linux__
#include < iostream >
#include " SDL/SDL.h "
SDL_Surface * pScreen = 0 ;
SDL_Surface * pBack = 0 ;
SDL_Surface * pFront = 0 ;
void pressESCtoQuitPlus();
void loopRender();
int main( int argc, char * argv[])
{
#ifdef __windows__
SDL_putenv( " SDL_VIDEODRIVER=directx " );
#endif
#ifdef __linux__
putenv( " SDL_VIDEODRIVER=dga " );
#endif
try {
if ( SDL_Init(SDL_INIT_VIDEO) !=
#include < iostream >
#include " SDL/SDL.h "
SDL_Surface * pScreen = 0 ;
SDL_Surface * pBack = 0 ;
SDL_Surface * pFront = 0 ;
void pressESCtoQuitPlus();
void loopRender();
int main( int argc, char * argv[])
{
#ifdef __windows__
SDL_putenv( " SDL_VIDEODRIVER=directx " );
#endif
#ifdef __linux__
putenv( " SDL_VIDEODRIVER=dga " );
#endif
try {
if ( SDL_Init(SDL_INIT_VIDEO) !=