January 13, 2016, 18:26 (GMT) |
Split off from the bvm::Function class the basic instruction list functionality. The point of this is to keep type definitions out of the core bvm eval code. TypeDesc is only used for the outermost layer of bvm::Function in order to copy arguments to and results from the eval stack. OpCodes themselves are agnostic to higher type definitions and just work with raw data. |
January 13, 2016, 13:54 (GMT) |
TypeDesc registration in NodeGraph for reusable type definitions. Eventually this could allow actual user typedefs (through the API), but primarily this is to make complex type definitions possible without having to do a full definition every time, and simply use the type name. |
January 13, 2016, 11:19 (GMT) |
Merge branch 'master' into object_nodes |
January 13, 2016, 10:02 (GMT) |
Fix a memleak of the return value user counter from mesh_ptr. The returned mesh_ptr result needs to be cleared to ensure the user counter is also freed. To avoid deleting the mesh data as well a new function 'reset' was added, which frees the user counter but only resets the data pointer without freeing it. |
January 12, 2016, 13:48 (GMT) |
Another geometry node for loading another objects 'final derived' mesh. Modifiers should be able to work on meshes directly as much as possible, without direct reference to an object. The space transform should ultimately be passed along with the DM (TODO, currently requires explicit inputs). |
January 12, 2016, 13:46 (GMT) |
Prepend a value node on all (non-constant) node inputs without a link. In principle the input value could be used directly in codegen, but this approach means one less condition to check and has the same effect. |
January 12, 2016, 13:39 (GMT) |
Fix for incorrect output type displace element.index. |
January 12, 2016, 11:22 (GMT) |
Added a simple operator and panel for one-click debug display of bvm node visualizations. This was formerly part of an addon, but is useful enough to include directly in the branch for debugging purposes. It uses the existing graphviz dump functions to write into a temp dot file, then runs graphviz on it and opens the resulting image in the standard system image viewer. This is tailored for linux systems, but that shouldn't be a big issue since most developers (who are the target audience) use this platform anyway. |
January 12, 2016, 10:40 (GMT) |
Use the new node block structure in code generation, to determine dependencies of symbols. |
January 11, 2016, 14:24 (GMT) |
More elegant construction of implicit node blocks, by copying argument node first. |
January 9, 2016, 16:40 (GMT) |
Represent nested node blocks in the graphviz debug dump. |
January 9, 2016, 14:01 (GMT) |
Cleanup: class for debug dumping functions for node graphs. |
January 9, 2016, 13:07 (GMT) |
Moved the block definition from codegen to the node graph optimization. This now involves making actual copies of nodes, so that each block has a unique instance of each node and ambiguity is avoided. |
January 8, 2016, 16:31 (GMT) |
Generalized algorithm for constructing node blocks based on local arguments. Nodes can have expression inputs and override argument nodes with local variables. This means that a local block must be created for each expression input. The boundaries of such blocks are defined implicitly by upstream nodes which define their own local arguments (or ultimately by the graph arguments). The current version is still not quite generic enough to allow arbitrary nesting of blocks, but it should ensure that expressions don't include all the parent nodes which don't depend on local arguments and therefore should be calculated in the parent block (a form of constant folding). |
January 7, 2016, 11:11 (GMT) |
Use a global node index assignment to enable sorted sets for nodes. This simplifies code generation because we can use a set with efficient lookup which also keeps a valid ordering of nodes as dictated by links. Since any generated code uses only subsets of nodes, the ordering still is valid for any BasicBlock. |
January 7, 2016, 10:11 (GMT) |
Moved BasicBlock out of the Compiler struct. |
January 7, 2016, 09:41 (GMT) |
Fix for missing stack indices in expression blocks. When creating an expression block, the parent block stack indices must initialize the local index map, so that external variables can be accessed. |
January 6, 2016, 12:46 (GMT) |
New node for finding the closest point on a mesh. This will be useful for shrinkwrap-type modifier behavior. |
January 6, 2016, 10:29 (GMT) |
Cleanup: Moved some classes out of the typedesc utility file. |
January 6, 2016, 10:25 (GMT) |
Fix incorrect header naming. |
|