Skip to content

Plugin Structure

tobspr edited this page Nov 12, 2015 · 7 revisions

Plugin Structure

Plugin files

Every plugin should be located in Plugins/<PluginName>/ whereas <PluginName> denotes the identifier of the plugin. The identifier may consist only out of lowercase and uppercase letters, and the numbers 0-9.

There are certain files which are required for every plugin:

Plugins/<PluginName>/
        +  __init__.py
        +  Plugin.py
        +  config.yaml

The __init__.py file should just be empty. It serves for the only reason to be able to import the plugin. The config.yaml file should contain your [Plugin Configuration](Plugin Configuration). The Plugin.py should contain your plugin base class, see [Plugin API](Plugin API).

Directory Structure

Additionally to the required files, there exists a proposed directory structure, where the pipeline expects your plugin files (you can also find this structure in the PluginPrefab):

Plugins/<PluginName>/
        + Resources
            + some_resource.png
        + Shader
            + some_include_file.inc.glsl
            + Stages
                + Stage1.frag.glsl
                + Stage2.frag.glsl

You should place required textures (and models) in Resources. Your shader include files should be stored in Shader/, and your stage shaders should be stored in Shader/Stages/.