Search code examples
rokubrightscriptscenegraph

Possible to dynamically parse SceneGraph from XML?


I would like to build a Roku SceneGraph experience built incrementally from XML components shipped off from a remote server. That is to say, enable a Roku channel to drive a SceneGraph experience using components that are not all included as part of the XML and brs files under the component/ folder shipping with the channel, but rather, downloaded from the Internet dynamically.

The analogy is a web browser with html as the declarative markup language (although that is not my specific goal).

I saw reference to SceneGraph files being compiled on channel startup based on what is present under component/. There doesn't seem to be a way to generate a roSGNode from XML, for instance.

I did a bit of research but came up empty handed. Curious to know if anyone else thought this space through before?


Solution

  • In short I don't think a SceneGraph channel can dynamically load XML-defined components that aren't stored as part of the channel package.

    However that doesn't necessarily mean you can't build a dynamic channel.

    You might be able to at least run Brightscript code that are sent server-side by using the Run() or Eval() functions https://sdkdocs.roku.com/display/sdkdoc/Runtime+Functions

    A lot can be done programmatically with Brightscript, e.g. you can add components and fields for those components.