I wanted to start a running thread regarding my team’s current objective. As the first step in creating the scripting engine, we are trying to solve the following issue, brought up in this thread.
We’re currently trying to locate the render() function, and also isolate how values are recalculated. We’ve followed a few paths, and this is what we have so far. Any input would be MUCH appreciated.
PART 1: Locating the render() function.
render(), it turns out, is a pure virtual function on the Target abstract class. There are a few other classes derived from Target, and these have their own render functions. the Render object appears to have some connection to the Target class, as well.
PART 2: Following set_time
The set_time function is called on context, and that loops through all layers in the context. It modifies a parameter for storing the time on the Layer object. Parameters are stored in std::map objects, which are typedef’d to ParamList and DynamicParamList.
We reached the end of the line on everything for the set_time path except two things. One or both of those almost certainly link to the recalculation of parameters, though that code does not live in Layer. One of these is a mutable bool flag, dirty_time_, which is modified in four places on Layer. However, its value is never CHECKED on Layer. That would indicate that either it is depreciated (unlikely), or is being monitored by another function.
The other loose thread is the fact that Layer has multiple signals, one of which is for when a parameter changes. Since the time is being stored as a parameter, that may also be linked to calling a render.
I’ll try and keep this up to date as we keep looking, and again, any input or assistance would be most welcome.