"L. Spiro Engine"

F:/My Projects/LSEngine/Modules/LSGraphicsLib/Src/LSGGraphicsLib.h

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__
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator