4
Copyright (C) 2005-2010 Julien Jorge, Sebastien Angibaud
6
This program is free software; you can redistribute it and/or modify it
7
under the terms of the GNU General Public License as published by the
8
Free Software Foundation; either version 2 of the License, or (at your
9
option) any later version.
11
This program is distributed in the hope that it will be useful, but WITHOUT
12
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
16
You should have received a copy of the GNU General Public License along
17
with this program; if not, write to the Free Software Foundation, Inc.,
18
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20
contact: plee-the-bear@gamned.org
22
Please add the tag [Bear] in the subject of your mails.
26
* \brief Macros and function useful for layer exportat.
27
* \author Julien Jorge
29
#ifndef __ENGINE_LAYER_EXPORT_HPP__
30
#define __ENGINE_LAYER_EXPORT_HPP__
32
#include "engine/layer/layer_factory.hpp"
33
#include "engine/layer/typed_layer_creator.hpp"
35
/*----------------------------------------------------------------------------*/
37
* \brief Export a function instanciating a class inheriting from
38
* engine::layer_creator.
40
* \param class_name The name of the layer class to instanciate.
41
* \param env The full namespace of this class.
43
* The env::class_name class must have a constructor taking a const
44
* universe::size_box_type& as parameter.
46
#define LAYER_EXPORT( class_name, env ) \
47
static bool class_name ## _registered = \
48
bear::engine::layer_factory::get_instance().register_type \
49
< bear::engine::typed_layer_creator<env::class_name> > \
52
#endif // __ENGINE_LAYER_EXPORT_HPP__