PokéRogue
    Preparing search index...

    Interface RenderNodes

    Provides methods for configuring WebGL render nodes on a Game Object. Render nodes are modular units responsible for different phases of the rendering pipeline (submitting draw calls, transforming vertices, handling textures). Each Game Object has a set of default render nodes, but you can override them with custom nodes for advanced rendering effects. This component is WebGL only.

    interface RenderNodes {
        customRenderNodes: object;
        defaultRenderNodes: object;
        renderNodeData: object;
        initRenderNodes(defaultNodes: Map<string, string>): void;
        setRenderNodeData(
            renderNode: string | RenderNode,
            key: string,
            value: any,
        ): this;
        setRenderNodeRole(
            key: string,
            renderNode: string | RenderNode | null,
            renderNodeData?: object,
            copyData?: boolean,
        ): this;
    }

    Implemented by

    Index
    customRenderNodes: object

    Customized WebGL render nodes of this Game Object. RenderNodes are responsible for managing the rendering process of this Game Object. A default set of RenderNodes is coded into the engine, but the renderer will check this object first to see if a custom node has been set.

    defaultRenderNodes: object

    The default RenderNodes for this Game Object. RenderNodes are responsible for managing the rendering process of this Game Object. These are the nodes that are used if no custom ones are set.

    RenderNodes are identified by a unique key for their role.

    Common role keys include:

    • 'Submitter': responsible for running other node roles for each element.
    • 'Transformer': responsible for providing vertex coordinates for an element.
    • 'Texturer': responsible for handling textures for an element.
    renderNodeData: object

    An object to store render node specific data in, to be read by the render nodes this Game Object uses.

    Render nodes store their data under their own name, not their role.

    • Initializes the render nodes for this Game Object.

      This method is called when the Game Object is added to the Scene. It is responsible for setting up the default render nodes this Game Object will use.

      Parameters

      • defaultNodes: Map<string, string>

        The default render nodes to set for this Game Object.

      Returns void

    • Sets or removes a property in the data object for a specific render node within renderNodeData.

      If key is not set, it is created. If it is set, it is updated.

      If value is undefined and key exists, the key is removed.

      Parameters

      • renderNode: string | RenderNode

        The render node to set the data for. If a string, it should be the name of the render node.

      • key: string

        The key of the property to set.

      • value: any

        The value to set the property to.

      Returns this

      This Game Object instance.

    • Sets the RenderNode for a given role.

      Also sets the relevant render node data object, if specified.

      If the node cannot be set, no changes are made.

      Parameters

      • key: string

        The key of the role to set the render node for.

      • renderNode: string | RenderNode | null

        The render node to set on this Game Object. Either a string, or a RenderNode instance. If null, the render node is removed, along with its data.

      • OptionalrenderNodeData: object

        An object to store render node specific data in, to be read by the render nodes this Game Object uses.

      • OptionalcopyData: boolean

        Should the data be copied from the renderNodeData object? Default false.

      Returns this

      This Game Object instance.