Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __CS_CANVAS_OPENGLCOMMON_DRIVERDB_H__
00021 #define __CS_CANVAS_OPENGLCOMMON_DRIVERDB_H__
00022
00027 #include "csextern_gl.h"
00028 #include "csutil/leakguard.h"
00029 #include "csutil/refarr.h"
00030 #include "csutil/strhash.h"
00031
00032 struct iConfigDocument;
00033 struct iConfigFile;
00034 struct iDocumentNode;
00035 class csGraphics2DGLCommon;
00036
00040
00041 class csDriverDBReader;
00042
00046 class CS_CSPLUGINCOMMON_GL_EXPORT csGLDriverDatabase
00047 {
00048 protected:
00049 friend class csDriverDBReader;
00050
00051 csGraphics2DGLCommon* ogl2d;
00052 csRefArray<iConfigFile> addedConfigs;
00053 const char* rulePhase;
00054
00055 csStringHash tokens;
00056
00057 enum Relation
00058 {
00059 eq = 0,
00060 neq,
00061 lt,
00062 le,
00063 gt,
00064 ge
00065 };
00066 static bool Compare (int a, int b, Relation rel);
00067 static bool VersionCompare (const char* verStr1, const char* verStr2,
00068 Relation rel);
00069
00070 void Report (int severity, const char* msg, ...);
00071 void Report (int severity, iDocumentNode* node, const char* msg, ...);
00072 void ReportBadToken (iDocumentNode* badtokennode);
00073 public:
00074 CS_LEAKGUARD_DECLARE (csGLDriverDatabase);
00075
00076 csGLDriverDatabase ();
00077 ~csGLDriverDatabase ();
00078
00079 void Open (csGraphics2DGLCommon* ogl2d, iDocumentNode* dbRoot,
00080 const char* phase, int configPriority);
00081 void Close ();
00082 };
00083
00086 #endif // __CS_CANVAS_OPENGLCOMMON_DRIVERDB_H__