VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
scriptRegistry.h File Reference
#include <functional>
#include <memory>
#include "script.h"

Go to the source code of this file.

Classes

class  visutwin::canvas::ScriptFactories
class  visutwin::canvas::ScriptRegistry

Namespaces

namespace  visutwin
namespace  visutwin::canvas

Macros

#define REGISTER_SCRIPT(Type, Name)
#define REGISTER_SCRIPT_IMPL(Type, Name, Line)
#define REGISTER_SCRIPT_IMPL2(Type, Name, Line)

Typedefs

using visutwin::canvas::ScriptFactory = std::function<std::unique_ptr<Script>()>

Macro Definition Documentation

◆ REGISTER_SCRIPT

#define REGISTER_SCRIPT ( Type,
Name )
Value:
REGISTER_SCRIPT_IMPL(Type, Name, __LINE__)
#define REGISTER_SCRIPT_IMPL(Type, Name, Line)

Definition at line 30 of file scriptRegistry.h.

◆ REGISTER_SCRIPT_IMPL

#define REGISTER_SCRIPT_IMPL ( Type,
Name,
Line )
Value:
REGISTER_SCRIPT_IMPL2(Type, Name, Line)
#define REGISTER_SCRIPT_IMPL2(Type, Name, Line)

Definition at line 27 of file scriptRegistry.h.

◆ REGISTER_SCRIPT_IMPL2

#define REGISTER_SCRIPT_IMPL2 ( Type,
Name,
Line )
Value:
namespace { \
struct ScriptReg_##Line { \
ScriptReg_##Line() { \
::visutwin::canvas::ScriptFactories::instance().registerFactory( \
Name, [] { return std::make_unique<Type>(); } \
); \
} \
}; \
static ScriptReg_##Line reg_instance_##Line; \
}

Definition at line 15 of file scriptRegistry.h.