- added new commandline param --validate-techtrees which will be used to check for known problems in the techtrees for an installation

This commit is contained in:
Mark Vejvoda
2010-07-30 07:51:39 +00:00
parent 2605e1c4d7
commit 4336ae3e37
12 changed files with 409 additions and 10 deletions

View File

@@ -0,0 +1,49 @@
// ==============================================================
// This file is part of Glest Shared Library (www.glest.org)
//
// Copyright (C) 2001-2008 Martio Figueroa
//
// You can redistribute this code and/or modify it under
// the terms of the GNU General Public License as published
// by the Free Software Foundation; either version 2 of the
// License, or (at your option) any later version
// ==============================================================
#ifndef _SHARED_GRAPHICS_FONTMANAGER_H_
#define _SHARED_GRAPHICS_FONTMANAGER_H_
#include "font.h"
#include <vector>
using namespace std;
namespace Shared{ namespace Graphics{
// =====================================================
// class FontManager
//
/// Creates, Intializes, Finalizes, and Deletes fonts
// =====================================================
class FontManager{
protected:
typedef vector<Font*> FontContainer;
protected:
FontContainer fonts;
public:
FontManager();
virtual ~FontManager();
Font2D *newFont2D();
Font3D *newFont3D();
void init();
void end();
};
}}//end namespace
#endif

View File

@@ -0,0 +1,62 @@
// ==============================================================
// This file is part of Glest Shared Library (www.glest.org)
//
// Copyright (C) 2001-2008 Martio Figueroa
//
// You can redistribute this code and/or modify it under
// the terms of the GNU General Public License as published
// by the Free Software Foundation; either version 2 of the
// License, or (at your option) any later version
// ==============================================================
#include "font_manager.h"
#include "graphics_interface.h"
#include "graphics_factory.h"
#include "leak_dumper.h"
namespace Shared{ namespace Graphics{
// =====================================================
// class FontManager
// =====================================================
FontManager::FontManager(){
fonts.clear();
}
FontManager::~FontManager(){
end();
}
Font2D *FontManager::newFont2D(){
Font2D *font= GraphicsInterface::getInstance().getFactory()->newFont2D();
fonts.push_back(font);
return font;
}
Font3D *FontManager::newFont3D(){
Font3D *font= GraphicsInterface::getInstance().getFactory()->newFont3D();
fonts.push_back(font);
return font;
}
void FontManager::init(){
for(size_t i=0; i<fonts.size(); ++i){
if(fonts[i] != NULL) {
fonts[i]->init();
}
}
}
void FontManager::end(){
for(size_t i=0; i<fonts.size(); ++i){
if(fonts[i] != NULL) {
fonts[i]->end();
delete fonts[i];
}
}
fonts.clear();
}
}}//end namespace

View File

@@ -0,0 +1,77 @@
// ==============================================================
// This file is part of Glest Shared Library (www.glest.org)
//
// Copyright (C) 2001-2008 Martio Figueroa
//
// You can redistribute this code and/or modify it under
// the terms of the GNU General Public License as published
// by the Free Software Foundation; either version 2 of the
// License, or (at your option) any later version
// ==============================================================
#include "font_gl.h"
#include "opengl.h"
#include "gl_wrap.h"
#include "leak_dumper.h"
namespace Shared{ namespace Graphics{ namespace Gl{
using namespace Platform;
// =====================================================
// class Font2DGl
// =====================================================
void Font2DGl::init(){
assertGl();
if(!inited){
handle= glGenLists(charCount);
createGlFontBitmaps(handle, type, size, width, charCount, metrics);
inited= true;
}
assertGl();
}
void Font2DGl::end(){
assertGl();
if(inited){
//assert(glIsList(handle));
glDeleteLists(handle, 1);
inited= false;
}
assertGl();
}
// =====================================================
// class Font3DGl
// =====================================================
void Font3DGl::init(){
assertGl();
if(!inited){
handle= glGenLists(charCount);
createGlFontOutlines(handle, type, width, depth, charCount, metrics);
inited= true;
}
assertGl();
}
void Font3DGl::end(){
assertGl();
if(inited){
assert(glIsList(handle));
glDeleteLists(handle, 1);
}
assertGl();
}
}}}//end namespace