00001 00002 //Luke Lenhart, 2008 00003 //See /docs/License.txt for details on how this code may be used. 00004 00005 #pragma once 00006 #include "../base/Types.h" 00007 #include <string> 00008 00010 namespace GFX 00011 { 00013 struct ScreenSize 00014 { 00016 int Width; 00017 00019 int Height; 00020 }; 00021 00023 struct GraphicsSetup: public ScreenSize 00024 { 00026 std::string Name; 00027 00030 bool FullScreen; 00031 00033 bool Resizable; 00034 00036 bool Minimized; 00037 00038 //TODO: stencil buffer and vsync options 00039 00040 inline GraphicsSetup() 00041 { 00042 Name="App"; 00043 FullScreen=false; 00044 Resizable=true; 00045 Minimized=false; 00046 Width=800; 00047 Height=600; 00048 } 00049 }; 00050 00052 bool SetupWindow(const GraphicsSetup &newState); 00053 00055 void ShutdownWindow(); 00056 00058 const GraphicsSetup* GetWindowState(); 00059 00061 void UpdateWindow(); 00062 00064 bool WindowHasFocus(); 00065 00067 ScreenSize GetCurrentScreenSize(); 00068 00069 //TODO: An api to get a list of supported screen resolutions 00070 //TODO: An api to change the current screen resolution 00071 }