3 #include "AssetEntity.h" 4 #include "AssetManager.h" 5 #include "util/mutex.h" 12 class ClassDescriptor;
13 class IParaEngineCore;
19 typedef const char* (*lpFnLibDescription)();
25 typedef ClassDescriptor* (*lpFnLibClassDesc)(
int i);
33 typedef void (STDCALL *pfnEnsureInit)(void);
34 typedef void (STDCALL *pfnForceTerm)(void);
43 string m_sDllFilePath;
45 vector<ClassDescriptor*> m_listClassDesc;
50 string m_sLibDescription;
56 unsigned long m_nLibVersion;
67 virtual AssetType GetType(){
return dllplugin;};
75 const char* GetDLLFilePath();
89 const char* GetLibDescription();
93 int GetNumberOfClasses();
99 void Init(
const char* sFilename);
111 int Activate(
int nType=0,
void* pVoid=NULL);
133 DLLPlugInEntity* LoadDLL(
const string& sIdentifier,
const string& fileName);
152 int ActivateDLL(
const string& sDllPath,
int nType=0,
void* pVoid=NULL);
162 int LoadAllDLLinDirectory(
const string& sDirectory);
int(* lpFnLibNumberClasses)()
"LibNumberClasses": must be implemented in a plug-in.
Definition: PluginLoader.hpp:35
void(* lpFnLibInitParaEngine)(IParaEngineCore *pIParaEngineCore)
"LibInitParaEngine": this is optional in a plug-in
Definition: PluginLoader.hpp:41
AssetType
each asset type has a unique asset type number
Definition: AssetEntity.h:82
different physics engine has different winding order.
Definition: EventBinding.h:32
manage plug-ins
Definition: PluginManager.h:117
ParaEngine::mutex & GetMutex()
get mutex
Definition: PluginManager.h:165
unsigned long GetLibVersion() const
library version.
Definition: PluginManager.h:70
AssetManager manages a set of asset entities of a certain type.
Definition: AssetManager.h:13
unsigned long(* lpFnLibVersion)()
"LibVersion": must be implemented in a plug-in.
Definition: PluginLoader.hpp:33
int(* lpFnLibActivate)(int nType, void *pVoid)
"LibActivate": this is optional in a plug-in
Definition: PluginLoader.hpp:43
void(* lpFnLibInit)()
"LibInit": this is optional in a plug-in
Definition: PluginLoader.hpp:39
std::string AssetKey
the unique key object for asset entity.
Definition: AssetEntity.h:13
a DLL plug-in loaded explicitly at runtime.
Definition: PluginManager.h:39
cross platform mutex
Definition: mutex.h:95
System keeps a list of the DLL's found on startup.
Definition: PluginAPI.h:61
Base class for managed asset entity in ParaEngine.
Definition: AssetEntity.h:25