libmoldeo (Moldeo 1.0 Core)  1.0
libmoldeo es el conjunto de objetos y funciones, que permiten ejecutar las operaciones básicas de la plataforma Moldeo, y que compone su núcleo.
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Enumeraciones Valores de enumeraciones Amigas 'defines' Grupos Páginas
moPlugin.h
Ir a la documentación de este archivo.
1 /*******************************************************************************
2 
3  moPlugin.h
4 
5  ****************************************************************************
6  * *
7  * This source is free software; you can redistribute it and/or modify *
8  * it under the terms of the GNU General Public License as published by *
9  * the Free Software Foundation; either version 2 of the License, or *
10  * (at your option) any later version. *
11  * *
12  * This code is distributed in the hope that it will be useful, but *
13  * WITHOUT ANY WARRANTY; without even the implied warranty of *
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
15  * General Public License for more details. *
16  * *
17  * A copy of the GNU General Public License is available on the World *
18  * Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
19  * obtain it by writing to the Free Software Foundation, *
20  * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
21  * *
22  ****************************************************************************
23 
24  Copyright(C) 2006 Fabricio Costa
25 
26  Authors:
27  Fabricio Costa
28  Andrés Colubri
29 
30 *******************************************************************************/
31 
32 #ifndef __MO_PLUGIN_H__
33 #define __MO_PLUGIN_H__
34 
35 #include "moBasePlugin.h"
36 #include "moEffect.h"
37 
38 
40 
44 {
45 public:
47  virtual ~moEffectFactory();
48  virtual moEffect* Create(void) = 0;
49  virtual void Destroy(moEffect* fx) = 0;
50 };
51 
54 
55 
57 
62 {
63  public:
65  int n;
66 
69 
71 
72  moPlugin() { handle = NULL; n=0; array=NULL; m_factory = NULL;}
73  moPlugin(moText plugin_file) { handle = NULL; n=0; array=NULL; m_factory = NULL; Load(plugin_file); }
74  virtual ~moPlugin() { if(handle != NULL) Unload(); }
75 
76  void Load(moText plugin_file);
77  void Unload();
78  moEffect* Create();
79  bool Destroy(moEffect *effect);
80  moText GetName() { return name; }
81 
82  private:
83  moText name;
84  MOpluginHandle handle;
85 
86 };
87 
88 moDeclareExportedDynamicArray( moPlugin*, moPluginsArray );
89 
90 LIBMOLDEO_API moEffect* moNewEffect(moText effect_name, moPluginsArray &plugins);
91 LIBMOLDEO_API bool moDeleteEffect(moEffect* effect, moPluginsArray &plugins);
92 
93 #endif
94 
moPlugin(moText plugin_file)
Definition: moPlugin.h:73
Plugin de efecto.
Definition: moPlugin.h:61
moEffectFactory *(MO_PLG_ENTRY * CreateEffectFactoryFunction)()
Definition: moPlugin.h:52
moEffectFactory * m_factory
Definition: moPlugin.h:70
moText GetName()
Definition: moPlugin.h:80
moEffect ** array
Definition: moPlugin.h:64
int n
Definition: moPlugin.h:65
#define LIBMOLDEO_API
Definition: moTypes.h:180
LIBMOLDEO_API bool moDeleteEffect(moEffect *effect, moPluginsArray &plugins)
Definition: moPlugin.cpp:195
#define MO_PLG_ENTRY
Definition: moBasePlugin.h:46
clase de para manejar textos
Definition: moText.h:75
void(MO_PLG_ENTRY * DestroyEffectFactoryFunction)()
Definition: moPlugin.h:53
DestroyEffectFactoryFunction DestroyEffectFactory
Definition: moPlugin.h:68
Fábrica de efectos, clase abstracta pura a implementar para un plugin derivado de moEffect...
Definition: moPlugin.h:43
moDeclareExportedDynamicArray(moPlugin *, moPluginsArray)
moPlugin()
Definition: moPlugin.h:72
CreateEffectFactoryFunction CreateEffectFactory
Definition: moPlugin.h:67
void * MOpluginHandle
Definition: moBasePlugin.h:44
virtual ~moPlugin()
Definition: moPlugin.h:74
LIBMOLDEO_API moEffect * moNewEffect(moText effect_name, moPluginsArray &plugins)
Definition: moPlugin.cpp:146
clase base para objetos dibujables
Definition: moEffect.h:82