root/cafu/trunk/CaWE/EditorMaterialManager.hpp

Revision 457, 3.1 KB (checked in by Carsten, 4 months ago)

Using UltraEdit's multi-line search-and-replace-in-files feature, replaced


^#ifndef _(CAFU|CF|CFS|CA)_(.*)_$
^#define _\1_\2_$

with

#ifndef CAFU_\2_INCLUDED
#define CAFU_\2_INCLUDED

and


^#ifndef _(.*)_HPP_$
^#define _\1_HPP_$

with

#ifndef CAFU_\1_HPP_INCLUDED
#define CAFU_\1_HPP_INCLUDED

Closes #91.

Line 
1/*
2=================================================================================
3This file is part of Cafu, the open-source game engine and graphics engine
4for multiplayer, cross-platform, real-time 3D action.
5Copyright (C) 2002-2012 Carsten Fuchs Software.
6
7Cafu is free software: you can redistribute it and/or modify it under the terms
8of the GNU General Public License as published by the Free Software Foundation,
9either version 3 of the License, or (at your option) any later version.
10
11Cafu is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
12without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
13PURPOSE. See the GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with Cafu. If not, see <http://www.gnu.org/licenses/>.
17
18For support and more information about Cafu, visit us at <http://www.cafu.de>.
19=================================================================================
20*/
21
22#ifndef CAFU_EDITOR_MATERIAL_MANAGER_HPP_INCLUDED
23#define CAFU_EDITOR_MATERIAL_MANAGER_HPP_INCLUDED
24
25#include "MaterialSystem/MaterialManagerImpl.hpp"
26#include "Templates/Array.hpp"
27#include "wx/wx.h"
28
29
30class EditorMaterialI;
31class GameConfigT;
32
33
34/// This class manages the editor materials for a game configuration.
35class EditorMatManT
36{
37    public:
38
39    EditorMatManT(const GameConfigT& GameConfig);
40    ~EditorMatManT();
41
42    const ArrayT<EditorMaterialI*>& GetMaterials() const { return m_Materials; }
43
44    EditorMaterialI* GetDefaultMaterial();
45    void             SetDefaultMaterial(EditorMaterialI* DefaultMat);
46
47    /// This method finds an editor material by name.
48    ///
49    /// @param MatName       Name of the material to find.
50    /// @param CreateDummy   Creates and returns a dummy material when the requested material was not found.
51    ///
52    /// @returns a pointer to the requested editor material.
53    ///   If the material was not found and CreateDummy is true, a dummy material is added and its pointer is returned.
54    ///   If the material was not found and CreateDummy is false, NULL is returned.
55    EditorMaterialI* FindMaterial(const wxString& MatName, bool CreateDummy);
56
57    // This loops through m_Materials, one per call, and calls the GetImage() method on the material,
58    // in order to make sure that the proxy is fully loaded.
59    void LazilyUpdateProxies();
60
61
62    private:
63
64    EditorMatManT(const EditorMatManT&);            ///< Use of the Copy Constructor    is not allowed.
65    void operator = (const EditorMatManT&);         ///< Use of the Assignment Operator is not allowed.
66
67    MaterialManagerImplT     m_MaterialMan;         ///< The material manager for the materials that are used with this game config.
68    ArrayT<EditorMaterialI*> m_Materials;           ///< Array of all materials in this game configuration.
69    EditorMaterialI*         m_DefaultMaterial;     ///< The currently used default material.
70    unsigned long            m_LazyMatUpdateCount;  ///< This counts up to where we already cached in the m_Materials.
71};
72
73#endif
Note: See TracBrowser for help on using the browser.