1. 程式人生 > >在Windows下用MinGW+GCC編譯SDL的注意事項

在Windows下用MinGW+GCC編譯SDL的注意事項

長期(大於3年)以來被一個極其鬱悶的問題困擾:就是在自己用gcc編譯的SDL.dll一直比libsdl.org官方釋出的SDL.dll的效能弱。即使用同樣的codebase也是如此,最初是懷疑編譯器的版本不同造成的,今天仔細分析了SDL編譯時的configure指令碼的實現,才發現真正原因是SDL用來偵測DirectX的程式碼與我本地的MinGW的內建的include和libs不相容造成的,使得SDL自動將DirectX加速給關掉了,只用最基本的GDI32+WaveOut來進行Video/Audio的渲染,而不是用DDraw+DSound來進行加速處理。 參照網址(http://www.libsdl.org/extras/win32/mingw32/README.txt)的介紹: =========================================================================== Q: My version of SDL doesn't have DirectX support! A: You need to get the DirectX development headers and libraries from: http://www.libsdl.org/extras/win32/common/directx-devel.tar.gz    You need to unpack these in the /mingw directory. 做了該處理後就可以得到和官方版本具有同樣效能的SDL.dll了。 你的include/SDL_config.h,應該看起來如下面所示:
  注意其中的: #define SDL_AUDIO_DRIVER_DSOUND 1 #define SDL_VIDEO_DRIVER_DDRAW 1