+1 650 396 9674

Release details are described below:

Change Log
Added popups for "Connections", "Functions", and "Presets" to all node command menus. Added "Data Sources" popup where applicable. Added "Lamdas..." command to all node command menus.
Added "Run Workloads..." to File menu. Makes it much easier to execute workloads that are not necessarily related to an application command.
Migrated application command "Run Tests..." from Help menu to File menu.
Fixed bug in APP_SERVICE_PROGRAM_PROFILE_WIZARD.SSL. Previous -1 was allow to be passed as an initial value to the wizard. This caused the wizard to show the profile drop down as empty with 'no value'. This value is now clamped to 0.
Modified the Graph app custom pre-build step to only insert the "Create Node From Type..." and "Recent Types..." macros. Previously we also inserted the "Data Sources" popup but this has been added to all node command menus in all applications.
Changed all data interface names such as <RectangleGeometryModifier> to <RectanglePrimitive> to match their C++ type names. While the previous data interface names were a bit more elegant sounding, this caused unnecessary type name checking and overriding in the Scenome Scripting Language code base. To support more elegant names, it would be better to make a complete type name change in the future.
In APP_OUTLINE_SCRIPTS.SSL, added code to read/write the node documentation to/from a comma-delimited documment. Previously all the help was stored in separate files which made it difficult to modify.
In TYPE_PROGRAM_CONSTANT_INFO_UTIL.SSL, used "..." to create lines between columnar values so that it's easier for the eyes to follow.

In TYPE_NODE_PRESETS_UTIL.SSL, made sure all nodes saved as preset templates are named "event_presets". For any <VariableNode> type, this means the .Variable value is set to "event_presets".
Replaced vector type .Print() data interface with .Out(). We typically print to the console by calling .Out() for everything. It was confusing that vector types such as <Float32Vector> used .Print().
In TYPE_NODELINK_SCRIPTS.SSL, replaced an obsolete call to .Get2DShadersPath() with the correct call to .GetShaderReferencePath().
In CLASSES_SHADER_DOCUMENT_RESOURCES.SSL, fixed a bug caused by terminating an if() statement with a semicolon: if( something );.
Replaced calls to SetProgramConstantBool() with calls to SetProgramConstantBool32().
Added PrintBitPattern() data interfaces to <Float64Algorithms> and all similar, ex: <Int32Algorithms>. This is occasionally useful for debugging very tricky memory comparison problems.
Improved the way help is launched. If you hit F1 while the mouse is over a command, the application launches command help. Previously if the application was unable to determine the mouse context, it launched general help. Now the application launches node help when a node is selected if it cannot figure out the mouse context.
Added a feature that allows the user to easily define regions of GLSL code that are not compatible with GLSLang. For example, GLSLang does not support shader subroutines. Typically you want this GLSL code to run when you're in the Shader application, but not during shader rebuild operations since it can't be processed by GLSLang. The file \Scenomics\Includes\SPA_Version.glsl now contains two preprocessor statements:

This code defines and immediately undefines the constant GLSLANG_IGNORE. During shader source processing that takes place before the code is submitted to GLSLang, we skip the line #undef GLSLANG_IGNORE. This causes the code to not be processed by GLSLang. You can fence off code from GLSLang using #ifndef GLSLANG_IGNORE.
In APP_SHELL_SCRIPTS.SSL, in macro AddCommonComponentLink. Cleaned up this macro so that it presents each common component only once. Moved code from inside the macro to a series of functions in APP_SHELL_UTIL.SSL.
In TYPE_CAMERA_ALGORITHMS.SSL. Fixed a bug that caused the camera to not be added to the document.
In TYPE_CONNECTOR_NODE_UTIL.SSL. Fixed a bug that caused the <NodeSelectDialog> to appear with out title or description text.
In TYPE_MODIFIER_SCRIPTS. Fixed an inconsistent macro guid.
In TYPE_SAMPLER_PALETTE_NODE_SCRIPTS.SSL. Added code to macro BindTextureAsSampler to remove empty textures from consideration as validation connections. An empty texture either has an empty <ImageList>, does not specify any render format, or both.
In TYPE_SHADER_BUFFER_BIND_NODE_SCRIPT.SSL, and TYPE_UNIFORM_BUFFER_BIND_NODE_SCRIPT.SSL. Changed code that presented warnings but still allowed the macro to continue executing to simply return. The original goal of allowing this code to be flexible was somewhat misguided. This code really needs to fail early with clear messages.
In TYPE_VARIABLE_ARRAY_NODE_SCRIPTS.SSL. Changed the maximum subscript count from 32 to 8. The underlying C++ code sets a maximum of 8.
Minor property sheet cleanups.