PixelLightAPI  .
Defines
ModuleMain.h File Reference
#include "PLCore/Core/MemoryManagerOnlyOncePerProject.inl"
#include "PLCore/Base/Rtti.h"

Go to the source code of this file.

Defines

#define pl_module(ModuleName)
 Defines a module inside an application or library.
#define pl_module_plugin(ModuleName)
 Defines a module inside a plugin library.
#define pl_module_vendor(Vendor)   sVendor = Vendor; \
 Sets the module vendor name.
#define pl_module_license(License)   sLicense = License; \
 Sets the module license.
#define pl_module_description(Description)   sDescription = Description; \
 Sets the module description.
#define pl_module_version(Version)
 Sets the module version.
#define pl_module_dependencies_windows_64_release(Dependencies)
 Sets the module dependencies for Windows 32/64 bit release/debug mode.
#define pl_module_dependencies_windows_32_release(Dependencies)
#define pl_module_dependencies_windows_64_debug(Dependencies)
#define pl_module_dependencies_windows_32_debug(Dependencies)
#define pl_module_dependencies_linux_64_release(Dependencies)
 Sets the module dependencies for Linux 32/64 bit release/debug mode.
#define pl_module_dependencies_linux_32_release(Dependencies)
#define pl_module_dependencies_linux_64_debug(Dependencies)
#define pl_module_dependencies_linux_32_debug(Dependencies)
#define pl_module_dependencies_android_64_release(Dependencies)
 Sets the module dependencies for Android 32/64 bit release/debug mode.
#define pl_module_dependencies_android_32_release(Dependencies)
#define pl_module_dependencies_android_64_debug(Dependencies)
#define pl_module_dependencies_android_32_debug(Dependencies)
#define pl_module_dependencies_macosx_64_release(Dependencies)
 Sets the module dependencies for Mac OS X 32/64 bit release/debug mode.
#define pl_module_dependencies_macosx_32_release(Dependencies)
#define pl_module_dependencies_macosx_64_debug(Dependencies)
#define pl_module_dependencies_macosx_32_debug(Dependencies)
#define pl_module_active(Active)
 Sets the module's default active state.
#define pl_module_delayed(Delayed)
 Sets the module's default delayed shared library loading state.
#define pl_module_end
 Ends the module definition.

Define Documentation

#define pl_module (   ModuleName)
Value:
class ModuleInfo { \
        public: \
            ModuleInfo() { \
                ModuleInfo::Register(); \
            } \
        private: \
            static void Register() \
            { \
                PLCore::String sName        = ModuleName; \
                PLCore::String sVendor      = "Unknown"; \
                PLCore::String sLicense     = "Unknown"; \
                PLCore::String sDescription = "Unknown module"; \

Defines a module inside an application or library.

Parameters:
[in]ModuleNameModule name
Remarks:
Use this in applications or libraries that are linked directly to the main project (statically or dynamically), but not inside a dynamically loaded plugin library.
#define pl_module_plugin (   ModuleName)
Value:
extern "C" PLCORE_PLUGIN_API bool PLIsPluginDebugBuild() \
    { \
        return PLCORE_IS_DEBUGMODE; \
    } \
    \
    extern "C" PLCORE_PLUGIN_API int PLGetPluginInfo() \
    { \
        return PLCore::ModuleID<int>::GetModuleID(); \
    } \
	\
	pl_module(ModuleName) \

Defines a module inside a plugin library.

Parameters:
[in]ModuleNameModule name
Remarks:
Use this in a library that is dynamically loaded as a plugin
#define pl_module_vendor (   Vendor)    sVendor = Vendor; \

Sets the module vendor name.

Parameters:
[in]VendorVendor name
#define pl_module_license (   License)    sLicense = License; \

Sets the module license.

Parameters:
[in]LicenseLicense
#define pl_module_description (   Description)    sDescription = Description; \

Sets the module description.

Parameters:
[in]DescriptionModule description
#define pl_module_version (   Version)

Sets the module version.

Parameters:
[in]VersionVersion string
#define pl_module_dependencies_windows_64_release (   Dependencies)

Sets the module dependencies for Windows 32/64 bit release/debug mode.

Parameters:
[in]DependenciesModule dependencies
#define pl_module_dependencies_windows_32_release (   Dependencies)
#define pl_module_dependencies_windows_64_debug (   Dependencies)
#define pl_module_dependencies_windows_32_debug (   Dependencies)
#define pl_module_dependencies_linux_64_release (   Dependencies)

Sets the module dependencies for Linux 32/64 bit release/debug mode.

Parameters:
[in]DependenciesModule dependencies
#define pl_module_dependencies_linux_32_release (   Dependencies)
#define pl_module_dependencies_linux_64_debug (   Dependencies)
#define pl_module_dependencies_linux_32_debug (   Dependencies)
#define pl_module_dependencies_android_64_release (   Dependencies)

Sets the module dependencies for Android 32/64 bit release/debug mode.

Parameters:
[in]DependenciesModule dependencies
#define pl_module_dependencies_android_32_release (   Dependencies)
#define pl_module_dependencies_android_64_debug (   Dependencies)
#define pl_module_dependencies_android_32_debug (   Dependencies)
#define pl_module_dependencies_macosx_64_release (   Dependencies)

Sets the module dependencies for Mac OS X 32/64 bit release/debug mode.

Parameters:
[in]DependenciesModule dependencies
#define pl_module_dependencies_macosx_32_release (   Dependencies)
#define pl_module_dependencies_macosx_64_debug (   Dependencies)
#define pl_module_dependencies_macosx_32_debug (   Dependencies)
#define pl_module_active (   Active)

Sets the module's default active state.

Parameters:
[in]ActiveDefault active state (1 or 0)
Note:
  • If not other defined, modules are active by default
#define pl_module_delayed (   Delayed)

Sets the module's default delayed shared library loading state.

Parameters:
[in]DelayedDefault delayed shared library loading state (1 or 0)
Note:
  • If not other defined, modules are loading their shared libraries delayed by default
#define pl_module_end
Value:
PLCore::ModuleID<int>::RegisterModule(sName, sVendor, sLicense, sDescription); \
        } \
    }; \
    \
    ModuleInfo __ModuleInfo;

Ends the module definition.



PixelLight PixelLight 0.9.11-R1
Copyright (C) 2002-2012 by The PixelLight Team
Last modified Thu Feb 23 2012 14:09:02
The content of this PixelLight document is published under the
Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported