CrystalSpace

Public API Reference

csplugincommon/opengl/driverdb.h
Go to the documentation of this file.
00001 /*
00002     Copyright (C) 2004 by Jorrit Tyberghein
00003               (C) 2004 by Frank Richter
00004 
00005     This library is free software; you can redistribute it and/or
00006     modify it under the terms of the GNU Library General Public
00007     License as published by the Free Software Foundation; either
00008     version 2 of the License, or (at your option) any later version.
00009 
00010     This library is distributed in the hope that it will be useful,
00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013     Library General Public License for more details.
00014 
00015     You should have received a copy of the GNU Library General Public
00016     License along with this library; if not, write to the Free
00017     Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
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 // Private class uses to parse gldrivers.xml
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__

Generated for Crystal Space 2.0 by doxygen 1.7.6.1