Terminology

10 views
Skip to first unread message

Sergiy Byelozyorov

unread,
Apr 21, 2015, 9:24:23 AM4/21/15
to realxt...@googlegroups.com

Hi,

I am trying to learn more about realXtend to describe in my thesis. Would you please answer some of my questions?

Firstly, it's not clear how do plugins, modules and component related to each other. In the source code of Tundra there are many folders called *Module and *Plugin. There are also EC_* folders, which presumably hold EntityComponents. Can you please explain what each of these terms mean and if they are related to each other somehow?

I am also trying to understand how ECA model is implemented in your system. Do you allow optional attributes with or without a default value? Can I add arbitrarily named attributes at runtime or can I get/set only those attributes that are defined in the source code?

Thanks,
Sergiy

Ali Kämäräinen

unread,
Apr 21, 2015, 10:54:53 AM4/21/15
to realxt...@googlegroups.com
Hi!

Plugin: a DLL with a function with "void TundraPluginMain(Framework *)" signature. The plugin DLL is loaded at runtime (during the Tundra startup) by the Tundra Framework as per requested by the startup configuration file (https://github.com/realXtend/tundra/blob/tundra2/bin/tundra.json#L10) . Plugins can be basically anything: a very lightweight plugin could only register a new EC or asset provider to the system (e.g. https://github.com/realXtend/tundra/blob/tundra2/src/Application/CanvasPlugin/dllmain.cpp). Typically, however, plugins implement a module and register it to the Framework (f.ex. https://github.com/realXtend/tundra/blob/tundra2/src/Application/JavascriptModule/JavascriptModule.cpp#L734) and additionally register some new ECs.

Module: A class in which inherits the IModule interface. Modules register themselves to the Framework during the plugin's TundraPluginMain() call. Modules can be accessed by other parts of the code by using Framework::Module<T>() or Framework::ModuleByName(), so typically if one wants to expose some additional functionality to other parts of the code one uses a Module to do it.

In Tundra a plugin is a bit newer concept (emerged during the introduction of Tundra 2, IIRC?): at the very early days only modules existed. Mostly because of this one can find inconsistency in the names of the existing plugins/modules in the system. Some modules or plugins don't even have the Module or Plugin postfix as it can be found quite redundant.

A brief description of the EC system can be found from here https://github.com/realXtend/tundra/wiki/Scene-and-EC-Model What you are after is the (EC_)DynamicComponent.

br,

-Ali/Stinkfist


--
--
http://groups.google.com/group/realxtend-dev
http://wiki.realxtend.org
http://dev.realxtend.org
---
You received this message because you are subscribed to the Google Groups "realXtend-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to realxtend-de...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages