Scenome 21.10 — 3/14/2021
Release details are described below.
Table 1.1. Description of Changes.
|Completed Phase 5 of the conversion to iterator-based algorithms. <Float32ArrayAlgorithms> and <Float64ArrayAlgorithms> are completely converted, and all SSL call sites have been refactored. This required extensive data conditioning and testing.|
|Cleaned up extended type support in TEST_UNIFORM_BUFFER_READ_WRITE.GLSL so that 64-bit tests are invoked when GL_NV_gpu_shader5, GL_AMD_gpu_shader_int64, or GL_ARB_gpu_shader_int64 are available on the host device.|
|Fixed inconsistent behavior in the texture format wizard. Previously, this dialog sometimes allowed you to select color channels that were out of range for the source data. For example, if converting FP32 to 8888 RGBA, it was possible to select R, G, B, or A source channels even though FP32 only has a single channel of data. In this case, only the R channel option should be available.|
|In the <Image> object data interface, removed guards that restricted views of an <Image> to matching view types. For example, previously for a floating point format such as IPF_FP32 or IPF_FP32x4, calls to SSL::GetUint8View would fail. You can now take a view of any type from an <Image> of any format. In practice this is mostly useful for taking uint8 views of <Image> objects.|
|Added a flag to the GPU_ResourceMode enumeration so we can have <ShaderResourceNode> objects indicate that they store data used in debug scenarios. This has not been exposed in the property sheets or data interfaces.|
|Added the capability to compute and enumerate the min/max values during <Texture> readback operations. It's incredibly useful to have the min/max available for shader debugging. It makes it a snap to quantize data and get a result on screen, and it also gives critical information about whether or not a shader is in the neighborhood of being correct.|
|Added constructor data interfaces for <MemoryPointer> derived types such as <Float32Pointer>. This provides very useful syntax sugar for initializing a <MemoryPointer> object with a scalar value.|
|Changed SSL:GetPointer to SSL::BindPointer. We'll add SSL::GetPointer so that you can combine construction and initialization in a single statement. This will significantly help with productivity and terseness in Scenome Scripting Language code bases.|
|Significant clean up and simplification in TYPE_IMAGE_FORMAT_UTIL.GLSL. This was achieved using the array view features.|