Skip to content

Latest commit

 

History

History
25 lines (21 loc) · 1.21 KB

write-new-node.md

File metadata and controls

25 lines (21 loc) · 1.21 KB

Writing a new libnodegl node

The vast majority of the code is "node code", in files following the node_*.c pattern. Since nodes need to be able to introspect each others, all their respective "private" context are declared in a common (not publicly exposed) header internal.h. This header also contains the structures definitions and prototypes required to implement a new node.

In order to add a node, you need to:

  • in nodegl.h.in: declare a new NGL_NODE_* with an arbitrary unique FourCC
  • create a node_*.c file declaring a const struct node_class. Don't forget the Copyright header. See other node files, such as node_identity.c
  • in nodes_register.h: register the new node
  • reference the source file node in libnodegl/meson.build
  • run make nodegl-updatespecs (from the top-level Makefile) to update nodes.specs every time you update the parameters of the node
  • similarly, run make nodegl-updatedoc to update the reference documentation after every change to the parameters
  • refer to internal.h for the available callbacks to implement in your class map