Scenome 21.9 — 3/7/2021
Release details are described below.
Table 1.1. Description of Changes.
|Completed Phase 4 of the conversion to iterator-based algorithms. This required revisiting the <DataCapture> API and preparing it for changes required during the process of converting Scenome Scripting Language to use iterator-based algorithms. These changes allow completely dynamic data capture between <VariableNode> objects, which is very important for many types of shaders. For example: this allows changes in one node to automatically propogate throughout the document, without executing a command. This makes the application much more responsive in many use cases.|
|Added custom property editing infra for the <DataCapture> objects. Previously, not very many <DataCapture> objects used custom properties because they were difficult to implement. The new system allows you to edit the properties of the texture readback data capture objects (such as <Float32ArrayDataCaptureReadTexture>), and the value generation objects (such as <Float32ArrayDataCaptureArray>).|
|Added support for reading back sub-images. This is a very useful addition. Now if you create a <Texture> readback, you can double click the <VariableNode> in which the <DataCapture> object is resident and you can configure the sub-rectangle capture parameters. For example: you can set the start x/y position and the size of the region to read back. At present this only allows read back of the first MIP map, but this will be updated in a subsequent release.|
|Added support for reading back sub-images to SSL::Render3D data interfaces. You can read back all common formats into scalar arrays or vector arrays.|
|Added filtering the to Data Capture Wizard to only display types that are useful and compatible with the specified <DataCapture> type.|
|Added additional types such as <Float32ArrayDataCaptureArray> to the Data Capture Wizard.|
|Added a missing nullptr guard to the Data Capture Wizard.|
|Added support for disabling the OK button in the <ControlPopupDialog> This allows you to write wizards where the OK button remains disabled unless certain requirements are met.|
|Expanded <DataCaptureIndices> to include parameters for data capture algorithm. This will allow fine-grained control over how to capture data in node-to-node capture scenarios. For example: you can configure the data capture scenario to capture a region of one array and copy that region to a region of another array.|
|Finished iterator support for <Float32MatrixArray> and <Float64MatrixArray>. This required the removal of the Flags data member, which was only rarely used.|
|Added 'ScalarCount' data member to <ExpressionInfo>. This computes the scalar count for a scalar, scalar array, vector, vector array, matrix, or matrix array <VariableNode> type. The scalar count is the total number of scalars. For example: <Float32VectorArrayNode> has a scalar count of [4 × array count]. <Float32MatrixNode> has a scalar count of [4 × 4].|