Mercurial > fife-parpg
changeset 637:3822b30fd98c
* Added the ability to query some more details from the video device including the total video memory available.
author | prock@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Wed, 06 Oct 2010 21:37:46 +0000 |
parents | f7863bfa92cd |
children | 980c02db2f56 |
files | engine/core/video/devicecaps.cpp engine/core/video/devicecaps.h engine/core/video/video.i |
diffstat | 3 files changed, 90 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/engine/core/video/devicecaps.cpp Wed Oct 06 20:54:28 2010 +0000 +++ b/engine/core/video/devicecaps.cpp Wed Oct 06 21:37:46 2010 +0000 @@ -49,7 +49,17 @@ m_SDLFlags = rhs.getSDLFlags(); } - DeviceCaps::DeviceCaps() { + DeviceCaps::DeviceCaps() : + m_hwAvailable(false), + m_wmAvailable(false), + m_hwBlitAccel(false), + m_hwCCBlitAccel(false), + m_hwToHwAlphaBlitAccel(false), + m_swToHwBlitAccel(false), + m_swToHwCCBlistAccel(false), + m_swToHwAlphaBlitAccel(false), + m_BlitFillAccel(false), + m_videoMem(0) { } @@ -119,6 +129,18 @@ m_driverName = "Unknown"; } + const SDL_VideoInfo* vInfo = SDL_GetVideoInfo(); + + m_hwAvailable = vInfo->hw_available; + m_wmAvailable = vInfo->wm_available; + m_hwBlitAccel = vInfo->blit_hw; + m_hwCCBlitAccel = vInfo->blit_hw_CC; + m_hwToHwAlphaBlitAccel = vInfo->blit_hw_A; + m_swToHwBlitAccel = vInfo->blit_sw; + m_swToHwCCBlistAccel = vInfo->blit_sw_CC; + m_swToHwAlphaBlitAccel = vInfo->blit_sw_A; + m_BlitFillAccel = vInfo->blit_fill; + m_videoMem = vInfo->video_mem; } } //FIFE
--- a/engine/core/video/devicecaps.h Wed Oct 06 20:54:28 2010 +0000 +++ b/engine/core/video/devicecaps.h Wed Oct 06 21:37:46 2010 +0000 @@ -100,12 +100,67 @@ void fillDeviceCaps(); std::vector<ScreenMode> getSupportedScreenModes() const { return m_screenModes; }; + + /** Returns the name of the current video driver. + */ std::string getDriverName() const { return m_driverName; }; + /** Is it possible to create hardware surfaces ? + */ + bool isHwSurfaceAvail() const { return m_hwAvailable; }; + + /** Is there a window manager available ? + */ + bool isWindowManagerAvail() const { return m_wmAvailable;} ; + + /** Are hardware to hardware blits accelerated ? + */ + bool isHwBlitAccel() const { return m_hwBlitAccel; }; + + /** Are hardware to hardware colorkey blits accelerated ? + */ + bool isHwColorkeyBlitAccel() const { return m_hwCCBlitAccel; }; + + /** Are hardware to hardware alpha blits accelerated ? + */ + bool isHwAlphaBlitAccel() const { return m_hwToHwAlphaBlitAccel; }; + + /** Are software to hardware blits accelerated ? + */ + bool isSwToHwBlitAccel() const { return m_swToHwBlitAccel; }; + + /** Are software to hardware colorkey blits accelerated ? + */ + bool isSwToHwColorkeyBlitAccel() const { return m_swToHwCCBlistAccel; }; + + /** Are software to hardware alpha blits accelerated ? + */ + bool isSwToHwAlphaBlitAccel() const { return m_swToHwAlphaBlitAccel; }; + + /** Are color fills accelerated ? + */ + bool isBlitFillAccel() const { return m_BlitFillAccel; }; + + /** Total amount of video memory in Kilobytes, only valid if hardware sufaces are available. + */ + uint32_t getVideoMemory() const { return m_videoMem; }; + private: std::vector<ScreenMode> m_screenModes; std::string m_driverName; + bool m_hwAvailable; + bool m_wmAvailable; + bool m_hwBlitAccel; + bool m_hwCCBlitAccel; + bool m_hwToHwAlphaBlitAccel; + bool m_swToHwBlitAccel; + bool m_swToHwCCBlistAccel; + bool m_swToHwAlphaBlitAccel; + bool m_BlitFillAccel; + + uint32_t m_videoMem; + }; //DeviceCaps }
--- a/engine/core/video/video.i Wed Oct 06 20:54:28 2010 +0000 +++ b/engine/core/video/video.i Wed Oct 06 21:37:46 2010 +0000 @@ -249,5 +249,17 @@ void fillDeviceCaps(); std::vector<ScreenMode> getSupportedScreenModes() const; std::string getDriverName() const; + + bool isHwSurfaceAvail() const; + bool isWindowManagerAvail() const; + bool isHwBlitAccel() const; + bool isHwColorkeyBlitAccel() const; + bool isHwAlphaBlitAccel() const; + bool isSwToHwBlitAccel() const; + bool isSwToHwColorkeyBlitAccel() const; + bool isSwToHwAlphaBlitAccel() const; + bool isBlitFillAccel() const; + + uint32_t getVideoMemory() const; }; }