// ============================================================== // This file is part of Glest Shared Library (www.glest.org) // // Copyright (C) 2001-2008 MartiƱo 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_GRAPHICSFACTORY_H_ #define _SHARED_GRAPHICS_GRAPHICSFACTORY_H_ #include #include #include #include using std::string; #include "leak_dumper.h" namespace Shared { namespace Graphics { class Context; class TextureManager; class Texture1D; class Texture2D; class Texture3D; class TextureCube; class ModelManager; class ModelRenderer; class Model; class FontManager; class TextRenderer2D; class TextRenderer3D; class Font2D; class Font3D; class ParticleManager; class ParticleRenderer; class ShaderManager; class ShaderProgram; class VertexShader; class FragmentShader; // ===================================================== // class GraphicsFactory // ===================================================== class GraphicsFactory { public: virtual ~GraphicsFactory() { } //context virtual Context *newContext() { return NULL; } //textures virtual TextureManager *newTextureManager() { return NULL; } virtual Texture1D *newTexture1D() { return NULL; } virtual Texture2D *newTexture2D() { return NULL; } virtual Texture3D *newTexture3D() { return NULL; } virtual TextureCube *newTextureCube() { return NULL; } //models virtual ModelManager *newModelManager() { return NULL; } virtual ModelRenderer *newModelRenderer() { return NULL; } virtual Model *newModel(const string &path, TextureManager* textureManager, bool deletePixMapAfterLoad, std::map > > *loadedFileList, string *sourceLoader) { return NULL; } //text virtual FontManager *newFontManager() { return NULL; } virtual TextRenderer2D *newTextRenderer2D() { return NULL; } virtual TextRenderer3D *newTextRenderer3D() { return NULL; } virtual Font2D *newFont2D() { return NULL; } virtual Font3D *newFont3D() { return NULL; } //particles virtual ParticleManager *newParticleManager() { return NULL; } virtual ParticleRenderer *newParticleRenderer() { return NULL; } //shaders virtual ShaderManager *newShaderManager() { return NULL; } virtual ShaderProgram *newShaderProgram() { return NULL; } virtual VertexShader *newVertexShader() { return NULL; } virtual FragmentShader *newFragmentShader() { return NULL; } }; } }//end namespace #endif