csplugincommon/opengl/driverdb.h Source File (Crystal Space 2.0 Public API Reference)

| ## Public API Reference

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

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__