[Gtkradiant] Where to start plugin development?

Joseph, William WJoseph at europe.ea.com
Tue Feb 28 09:34:10 CST 2006


Plugins are also known as 'modules'. Modules are the building-blocks used to make GtkRadiant. Each dynamic-library in the plugins/ folder provides a number of modules by registering them in Radiant_RegisterModules(). Most modules are implemented as singleton classes (picomodel modules are not). Each module has a Type, which defines what kind of interface it implements, and a Name which distinguishes it from other modules of the same type.

The 'sample' plugin provides an example - it uses the SingletonModule template to do the work of registering a module. The module implements the  '_QERPluginTable' interface and has the name "sample".

https://zerowing.idsoftware.com/svn/radiant/GtkRadiant/trunk/plugins/entity/plugin.cpp
The 'entity' plugin registers multiple modules which implement the 'EntityCreator' interface, with different names - "quake3", "wolf", "doom3". 

The '_QERPluginTable' interface provides a way for the plugin to add items to the Plugins menu. All modules which implement '_QERPluginTable' will be queried to populate the Plugins menu at startup.

There is a small amount of doxygen documentation of some of the libraries, which can be generated by running doxygen in the GtkRadiant root directory.

You can add new geometry to the editor by creating a new Scene Graph node type that implements 'Cullable', 'Bounded' and 'Renderable'. When the scene is redrawn, visible nodes that implement Renderable are asked to submit their OpenGLRenderable geometry to the renderer. 
https://zerowing.idsoftware.com/svn/radiant/GtkRadiant/trunk/plugins/md3model/model.h
The md3model plugin defines ModelNode which is the node type used for static world models. ModelNode uses the functionality of Model and ModelInstance, which implement Cullable, Bounded and Renderable. 

I believe people have been working on building GtkRadiant on x86_64 systems, but I haven't seen anyone reporting success. There is no reason why it shouldn't work, in theory.

-SPoG


-----Original Message-----
From: gtkradiant-bounces at zerowing.idsoftware.com [mailto:gtkradiant-bounces at zerowing.idsoftware.com] On Behalf Of Enrico Zschemisch
Sent: 25 February 2006 23:03
To: gtkradiant at zerowing.idsoftware.com
Subject: Re: [Gtkradiant] Where to start plugin development?

Hi,

> The best place to start is by using the existing modules in the
> plugins/ directory as examples. There is a sample plugin to start
> with, and the other modules and plugins provide examples of what is
> possible with the current APIs.
Ok, I had a look at the sample and some other plugins. 
The plugins are all DLL/so files and there must be a function to register a
plugin. The plugin functionality is implemented with a class and it must be
a singleton?
I think I can use some of the plugins as a starting point. How can I
interface with the editor's GUI (and the "plugins" menu item)?
Is there *any* documentation about the editor internals? Maybe some doxygen
stuff?
If you have some time you could tell me how to add new geometry to the
editor :-)
I have not found a render()-method in the plugins :-/
How can I load textures/shaders?

> The plugin APIs in 1.5 are not complete - they currently only allow
> the limited amount of control required by the existing modules.
I think, this will be enough :-)

Another short question: Can I build and use GTKRadiant on a AMD64 Linux
system?

Thanks for your help :-)

Greetings, Enrico


-- 
Lust, ein paar Euro nebenbei zu verdienen? Ohne Kosten, ohne Risiko!
Satte Provisionen für GMX Partner: http://www.gmx.net/de/go/partner

_______________________________________________
Gtkradiant mailing list
Gtkradiant at zerowing.idsoftware.com
http://zerowing.idsoftware.com/cgi-bin/mailman/listinfo/gtkradiant



More information about the Gtkradiant mailing list