"L. Spiro Engine"
|
00001 00016 #ifndef __LSG_GRAPHICSLIB_H__ 00017 #define __LSG_GRAPHICSLIB_H__ 00018 00019 #include "LSCCompressionLib.h" 00020 using namespace ::lsc; 00021 00022 #include "LSFFileLib.h" 00023 using namespace ::lsf; 00024 00025 #include "LSIImageLib.h" 00026 using namespace ::lsi; 00027 00028 #include "LSHThreadLib.h" 00029 using namespace ::lsh; 00030 00031 #include "LSMMathLib.h" 00032 using namespace ::lsm; 00033 00034 #include "LSSTDStandardLib.h" 00035 using namespace ::lsstd; 00036 00037 #include "LSTLib.h" 00038 using namespace ::lstl; 00039 00040 00041 00042 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00043 // API 00044 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00045 #ifdef LSE_OSX 00046 #define LSG_OPENGL 00047 #endif // #ifdef LSE_OSX 00048 00049 #ifdef LSE_IPHONE 00050 #define LSG_OGLES 00051 #undef LSG_OGL 00052 #undef LSG_DX9 00053 #undef LSG_DX10 00054 #undef LSG_DX11 00055 #define LSG_API_OPENGL 00056 00057 #include "OpenGLES/LSGOpenGlEs.h" 00058 #endif // #ifdef LSE_IPHONE 00059 00060 #ifdef LSG_OPENGL 00061 #define LSG_OGL 00062 #undef LSG_OGLES 00063 #undef LSG_DX9 00064 #undef LSG_DX10 00065 #undef LSG_DX11 00066 #define LSG_API_OPENGL 00067 00068 #include "OpenGL/LSGOpenGl.h" 00069 #endif // #ifdef LSG_OPENGL 00070 00071 #ifdef LSG_DIRECTX9 00072 #define LSG_DX9 00073 #undef LSG_OGLES 00074 #undef LSG_OGL 00075 #undef LSG_DX10 00076 #undef LSG_DX11 00077 #define LSG_API_DIRECTX 00078 00079 #include "DirectX/LSGDirectX9.h" 00080 #endif // #ifdef LSG_OPENGL 00081 00082 #ifdef LSG_DIRECTX10 00083 #define LSG_DX10 00084 #undef LSG_OGLES 00085 #undef LSG_OGL 00086 #undef LSG_DX9 00087 #undef LSG_DX11 00088 #define LSG_API_DIRECTX 00089 00090 #include "DirectX/LSGDirectX10.h" 00091 #endif // #ifdef LSG_OPENGL 00092 00093 #ifdef LSG_DIRECTX11 00094 #define LSG_DX11 00095 #undef LSG_OGLES 00096 #undef LSG_OGL 00097 #undef LSG_DX9 00098 #undef LSG_DX110 00099 #define LSG_API_DIRECTX 00100 00101 #include "DirectX/LSGDirectX11.h" 00102 #endif // #ifdef LSG_OPENGL 00103 00104 #if !defined( LSG_OGL ) && !defined( LSG_OGLES ) && !defined( LSG_DX9 ) && !defined( LSG_DX10 ) && !defined( LSG_DX11 ) 00105 #error "No graphics API specified. Define LSG_OPENGL, LSG_OPENGLES, LSG_DIRECTX9, LSG_DIRECTX10, or LSG_DIRECTX11." 00106 #endif // #if !defined( LSG_OGL ) && !defined( LSG_OGLES ) && !defined( LSG_DX9 ) && !defined( LSG_DX10 ) && !defined( LSG_DX11 ) 00107 00108 00109 00110 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00111 // SETTINGS 00112 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00113 #ifdef LSG_API_OPENGL 00114 // For OpenGL ES, we have 16:16 as an option too. 00115 typedef LSFLOAT LSGREAL; 00116 #elif defined( LSG_API_DIRECTX ) 00117 typedef LSFLOAT LSGREAL; 00118 #endif // #ifdef LSG_API_OPENGL 00119 00120 namespace lsg { 00121 00128 class CGraphicsLib { 00129 public : 00130 // == Functions. 00134 static LSVOID LSE_CALL InitGraphicsLib(); 00135 00139 static LSVOID LSE_CALL PostInitGraphicsLib(); 00140 00144 static LSVOID LSE_CALL DestroyGraphicsLib(); 00145 00152 static LSVOID LSE_CALL InitGraphicsLibApi( LSVOID * _pvParm ); 00153 00157 static LSVOID LSE_CALL DestroyGraphicsLibWindow(); 00158 00162 static LSVOID LSE_CALL MakeCurrent(); 00163 00167 static LSVOID LSE_CALL FreeTmpResources(); 00168 00169 00170 protected : 00171 // == Members. 00172 00173 }; 00174 00175 } // namespace lsg 00176 00177 #endif // __LSG_GRAPHICSLIB_H__