annotate engine/core/video/devicecaps.cpp @ 643:edf6dcfe8cd4

* Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
author prock@33b003aa-7bff-0310-803a-e67f0ece8222
date Sat, 09 Oct 2010 17:00:33 +0000
parents 6e2151325017
children 07b1cf8e92b5
rev   line source
635
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
1 /***************************************************************************
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
2 * Copyright (C) 2005-2010 by the FIFE team *
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
3 * http://www.fifengine.net *
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
4 * This file is part of FIFE. *
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
5 * *
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
6 * FIFE is free software; you can redistribute it and/or *
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
7 * modify it under the terms of the GNU Lesser General Public *
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
8 * License as published by the Free Software Foundation; either *
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
9 * version 2.1 of the License, or (at your option) any later version. *
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
10 * *
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
11 * This library is distributed in the hope that it will be useful, *
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
14 * Lesser General Public License for more details. *
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
15 * *
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
16 * You should have received a copy of the GNU Lesser General Public *
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
17 * License along with this library; if not, write to the *
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
18 * Free Software Foundation, Inc., *
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
20 ***************************************************************************/
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
21
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
22 // Standard C++ library includes
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
23 #include <iostream>
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
24
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
25 // 3rd party library includes
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
26 #include <SDL.h>
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
27 #include <SDL_video.h>
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
28
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
29 // FIFE includes
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
30 // These includes are split up in two parts, separated by one empty line
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
31 // First block: files included from the FIFE root src directory
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
32 // Second block: files included from the same folder
642
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
33 #include "util/base/exception.h"
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
34
635
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
35 #include "devicecaps.h"
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
36
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
37 namespace FIFE {
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
38
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
39 ScreenMode::ScreenMode() :
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
40 m_width(0), m_height(0), m_bpp(0), m_SDLFlags(0){
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
41 }
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
42
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
43 ScreenMode::ScreenMode(uint16_t width, uint16_t height, uint16_t bpp, uint32_t SDLFlags) :
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
44 m_width(width), m_height(height), m_bpp(bpp), m_SDLFlags(SDLFlags){
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
45 }
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
46
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
47 ScreenMode::ScreenMode(const ScreenMode& rhs){
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
48 m_width = rhs.getWidth();
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
49 m_height = rhs.getHeight();
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
50 m_bpp = rhs.getBPP();
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
51 m_SDLFlags = rhs.getSDLFlags();
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
52 }
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
53
637
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
54 DeviceCaps::DeviceCaps() :
639
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
55 m_driverName("Invalid"),
637
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
56 m_hwAvailable(false),
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
57 m_wmAvailable(false),
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
58 m_hwBlitAccel(false),
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
59 m_hwCCBlitAccel(false),
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
60 m_hwToHwAlphaBlitAccel(false),
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
61 m_swToHwBlitAccel(false),
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
62 m_swToHwCCBlistAccel(false),
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
63 m_swToHwAlphaBlitAccel(false),
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
64 m_BlitFillAccel(false),
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
65 m_videoMem(0) {
639
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
66
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
67 fillAvailableDrivers();
635
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
68 }
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
69
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
70
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
71 DeviceCaps::~DeviceCaps() {
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
72 }
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
73
639
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
74 void DeviceCaps::reset() {
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
75 m_screenModes.clear();
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
76 m_driverName = "Invalid";
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
77 m_hwAvailable = false;
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
78 m_wmAvailable = false;
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
79 m_hwBlitAccel = false;
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
80 m_hwCCBlitAccel = false;
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
81 m_hwToHwAlphaBlitAccel = false;
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
82 m_swToHwBlitAccel = false;
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
83 m_swToHwCCBlistAccel = false;
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
84 m_swToHwAlphaBlitAccel = false;
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
85 m_BlitFillAccel = false;
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
86 m_videoMem = 0;
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
87 }
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
88
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
89
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
90 void DeviceCaps::fillAvailableDrivers() {
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
91 m_availableDrivers.clear();
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
92 #if defined( __unix__ )
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
93 m_availableDrivers.push_back("x11");
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
94 m_availableDrivers.push_back("nanox");
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
95 m_availableDrivers.push_back("qtopia");
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
96 m_availableDrivers.push_back("fbcon");
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
97 m_availableDrivers.push_back("directfb");
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
98 m_availableDrivers.push_back("svgalib");
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
99 #endif
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
100
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
101 // Win32
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
102 #if defined( WIN32 )
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
103 m_availableDrivers.push_back("directx");
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
104 m_availableDrivers.push_back("windib");
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
105 #endif
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
106
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
107 // Macintosh
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
108 #if defined( __APPLE_CC__ )
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
109 m_availableDrivers.push_back("Quartz");
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
110 m_availableDrivers.push_back("x11");
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
111 #endif
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
112 }
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
113
635
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
114 void DeviceCaps::fillDeviceCaps() {
636
f7863bfa92cd * Changed the way screen resolutions are detected
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 635
diff changeset
115 int bufferSize = 256;
f7863bfa92cd * Changed the way screen resolutions are detected
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 635
diff changeset
116 char buffer[bufferSize];
f7863bfa92cd * Changed the way screen resolutions are detected
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 635
diff changeset
117
635
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
118 int numBPP = 1;
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
119 int bpps[numBPP];
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
120
639
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
121 //clear in case this is called twice
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
122 reset();
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
123
635
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
124 //FLAGS
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
125 #ifdef HAVE_OPENGL
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
126 int numFlags = 4;
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
127 Uint32 flags[numFlags];
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
128
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
129 //OpenGL, windowed, hw accel
642
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
130 flags[0] = ScreenMode::HW_WINDOWED_OPENGL;
635
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
131 //OpenGL, fullscree, hw accel
642
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
132 flags[1] = ScreenMode::HW_FULLSCREEN_OPENGL;
635
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
133 //SDL, windowed
642
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
134 flags[2] = ScreenMode::WINDOWED_SDL;
635
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
135 //SDL, fullscreen
642
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
136 flags[3] = ScreenMode::FULLSCREEN_SDL;
635
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
137 #else
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
138 int numFlags = 2;
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
139 Uint32 flags[numFlags];
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
140
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
141 //SDL, windowed
642
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
142 flags[0] = ScreenMode::WINDOWED_SDL;
635
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
143 //SDL, fullscreen
642
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
144 flags[1] = ScreenMode::FULLSCREEN_SDL;
635
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
145 #endif
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
146 //BITS PER PIXEL
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
147
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
148 bpps[0] = 32;
643
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
149
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
150 //COMMON FS RESOLUTIONS
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
151 int resolutions[15][2] = {
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
152 {640, 480},
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
153 {800, 600},
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
154 {1024, 768},
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
155 {1152, 864},
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
156 {1280, 768},
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
157 {1280, 800},
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
158 {1280, 960},
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
159 {1280, 1024},
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
160 {1366, 768},
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
161 {1440, 900},
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
162 {1600, 900},
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
163 {1600, 1200},
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
164 {1680, 1050},
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
165 {1920, 1080},
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
166 {1920, 1200}
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
167 };
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
168 int numRes = 15;
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
169
635
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
170
636
f7863bfa92cd * Changed the way screen resolutions are detected
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 635
diff changeset
171 for (int i = 0; i < numBPP; ++i){
f7863bfa92cd * Changed the way screen resolutions are detected
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 635
diff changeset
172 for (int j = 0; j < numFlags; ++j) {
643
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
173 for ( int k = 0; k < numRes; ++k) {
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
174 int bpp;
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
175 if (flags[j] & SDL_FULLSCREEN) {
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
176 bpp = SDL_VideoModeOK(resolutions[k][0],resolutions[k][1], bpps[i], flags[j]);
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
177
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
178 if (bpp > 0) {
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
179 ScreenMode mode = ScreenMode(resolutions[k][0],resolutions[k][1], bpps[i], flags[j]);
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
180 m_screenModes.push_back(mode);
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
181 }
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
182 }
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
183 else { //windowed mode
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
184 //check an arbitrary value as we know all resolutions are supported in windowed mode.
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
185 //we are checking to make sure the bpp is supported here.
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
186 bpp = SDL_VideoModeOK(resolutions[k][0],resolutions[k][1], bpps[i], flags[j]);
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
187 if (bpp > 0) {
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
188 ScreenMode mode = ScreenMode(0,0, bpps[i], flags[j]);
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
189 m_screenModes.push_back(mode);
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
190 break; //insert windowed mode once as all resolutions are supported.
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
191 }
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
192 }
639
685d250f2c2d * Improvements for DeviceCaps. It now stores a list of valid SDL drivers. Currently in windows we are limited to the windows GDI (which is slow). This could mean that SDL users could benifit from hardware acceleration with directx (a valid SDL driver).
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 637
diff changeset
193
636
f7863bfa92cd * Changed the way screen resolutions are detected
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 635
diff changeset
194 }
635
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
195 }
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
196 }
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
197
636
f7863bfa92cd * Changed the way screen resolutions are detected
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 635
diff changeset
198 if(SDL_VideoDriverName(buffer, bufferSize) != NULL) {
f7863bfa92cd * Changed the way screen resolutions are detected
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 635
diff changeset
199 m_driverName = std::string(buffer);
f7863bfa92cd * Changed the way screen resolutions are detected
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 635
diff changeset
200 }
f7863bfa92cd * Changed the way screen resolutions are detected
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 635
diff changeset
201 else {
f7863bfa92cd * Changed the way screen resolutions are detected
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 635
diff changeset
202 m_driverName = "Unknown";
f7863bfa92cd * Changed the way screen resolutions are detected
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 635
diff changeset
203 }
f7863bfa92cd * Changed the way screen resolutions are detected
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 635
diff changeset
204
637
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
205 const SDL_VideoInfo* vInfo = SDL_GetVideoInfo();
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
206
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
207 m_hwAvailable = vInfo->hw_available;
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
208 m_wmAvailable = vInfo->wm_available;
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
209 m_hwBlitAccel = vInfo->blit_hw;
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
210 m_hwCCBlitAccel = vInfo->blit_hw_CC;
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
211 m_hwToHwAlphaBlitAccel = vInfo->blit_hw_A;
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
212 m_swToHwBlitAccel = vInfo->blit_sw;
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
213 m_swToHwCCBlistAccel = vInfo->blit_sw_CC;
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
214 m_swToHwAlphaBlitAccel = vInfo->blit_sw_A;
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
215 m_BlitFillAccel = vInfo->blit_fill;
3822b30fd98c * Added the ability to query some more details from the video device including the total video memory available.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 636
diff changeset
216 m_videoMem = vInfo->video_mem;
635
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
217 }
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
218
643
edf6dcfe8cd4 * Modified the way we detect valid resolutions because SDL_VideoModeOK() was unreliable on a Mac when passed values returned from SDL_ListModes(). It now uses a pre-canned list of common resolutions to check.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 642
diff changeset
219 ScreenMode DeviceCaps::getNearestScreenMode(uint16_t width, uint16_t height, uint16_t bpp, const std::string& renderer, bool fs) const {
642
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
220 ScreenMode mode;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
221 bool foundMode = false;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
222
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
223 bool widthCheck = false;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
224 bool heightCheck = false;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
225 bool bppCheck = false;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
226 bool rendCheck = false;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
227 bool fsCheck = false;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
228
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
229
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
230 for (uint32_t i = 0; i < m_screenModes.size(); i++) {
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
231 if (m_screenModes[i].getWidth() == width) {
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
232 widthCheck = true;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
233 }
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
234 if (m_screenModes[i].getHeight() == height) {
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
235 heightCheck = true;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
236 }
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
237 if (m_screenModes[i].getBPP() == bpp) {
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
238 bppCheck = true;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
239 }
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
240 if (m_screenModes[i].isFullScreen() == fs) {
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
241 fsCheck = true;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
242 }
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
243
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
244 if ((m_screenModes[i].isOpenGL() && renderer == "OpenGL") || (!m_screenModes[i].isOpenGL() && renderer == "SDL")){
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
245 rendCheck = true;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
246 }
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
247
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
248 //check for exact match
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
249 if (widthCheck && heightCheck && bppCheck && fsCheck && rendCheck) {
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
250 mode = m_screenModes[i];
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
251 foundMode = true;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
252 break;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
253 }
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
254
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
255 //@note When the width and height to 0 that means that all
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
256 //resolutions are supported
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
257 if (m_screenModes[i].getWidth() == 0 && m_screenModes[i].getHeight() == 0 && bppCheck && fsCheck && rendCheck) {
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
258 mode = ScreenMode(width, height, bpp, m_screenModes[i].getSDLFlags());
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
259 foundMode = true;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
260 break;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
261 }
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
262
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
263 widthCheck = false;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
264 heightCheck = false;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
265 bppCheck = false;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
266 rendCheck = false;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
267 fsCheck = false;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
268 }
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
269
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
270 if (!foundMode) {
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
271 throw NotSupported("Could not find a maching screen mode for the values given!");
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
272 }
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
273
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
274 return mode;
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
275 }
6e2151325017 * Added the ability to query the current running screen mode
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents: 639
diff changeset
276
635
3094988564d5 * Added a simple method to query the default video card capabilities. This is still a work in progress. You can now get a list of ScreenModes the device supports. ScreenMode includes information on the screen resolution, if the mode is fullscreen/windowed and if it would use the OpenGL or SDL renderer.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff changeset
277 } //FIFE