November 8, 2024
SDK 40
New Engine features:
- GLSL user stucture SSBO views (references).
- Real-time GPU ASTC encoder for 4×4, 4×5, and 5×5 blocks.
- Bindless buffer support has been added via the BufferTable interface.
- Bindless resource support has been added to macOS and iOS.
- Full Brep render on macOS and iOS via Mesh shader.
- ts_chword.sh, ts_echo.sh, ts_exec.sh asks to install clang++ if it is not available.
- interface/flow plugin for block-based editors.
- interface/element plugin for the single CanvasElement insertion into Controls system.
- tests/graphics/cube_filter sample showcases real-time Cube texture diffuse convolution.
- tests/graphics/decoder_jpeg sample showcases real-time GPU JPEG texture loading.
- tests/graphics/encoder_astc sample showcases real-time GPU ASTC texture encoding.
- tests/graphics/multi_window sample showcases multi-window rendering.
- tests/platform/reference sample showcases shader references.
- tests/platform/alpha sample showcases anti-aliased alpha tests.
- tests/platform/atomic sample showcases buffer atomic operations.
- tests/platform/bindless sample showcases bindless buffer and texture tables.
- tests/platform/blending sample showcases uniform Blend color parameter.
- tests/platform/buffer sample showcases cross-API access to an array of buffers.
- tests/platform/indirect sample showcases MDI per-instance parameters.
- tests/platform/multisample sample showcases AA window target.
- tests/platform/preprocessor sample showcases macro-based function generalization.
- tests/parallel/spatial_tree sample has optional BVH tree visualization.
- tests/core/radix sample showcases the radix sort algorithm.
- The project generation tool can create new draft project files for Core and Engine SDK and convert Makefile-based projects to Xcode, VS, CMake, and Gradle projects.
- ts_image supports GPU ASTC texture compression with “gpu” command line argument flag.
- ts_shader supports texture and sample argument buffer generation with flags command line argument.
- Set and Map containers can use const char* keys for fast constant table initializations.
- radixSort algorithm has been added to TellusimSort.h
- String::split() methods split the string by provided delimiters.
- String::tprintf() method provides type-based printf system with {0}, {1}, … argument accessors.
- The draw statistics methods have been added to the Canvas interface.
- Comparison operators for FontStyle, StrokeStyle, and GradientStyle structures have been added.
- BufferTable interface for bindless Buffer data has been added.
- Command and Compute functions that receive an Array<Sampler|Texture|Buffer|Tracing|*Table> arguments have been added.
- ShaderCompler flags for generated shader output control (MTLIndirect enables argument buffers for all textures and samplers on Metal).
- BrepModel interface for low-level Brep rendering has been added.
- EncoderASTC interface for GPU ASTC texture compression has been added.
- Dedicated HDR ASTC color formats have been added.
- LDR ASTC formats have u8n and u8ns postfixes.
- Dynamic storage buffer argument has been removed from Kernel, Pipeline, and Traversal interface. The more flexible replacement is the BindFlags enum.
- Improved Kernel, Pipeline, and Traversal interfaces support BufferTable and TextureTable bindings, Shader::Mask, and BindingFlags.
- Swizzled viewport rendering feature has been removed from Pipeline.
- CanvasStrip has dedicated methods for creating quadratic and cubic curves.
- ControlArea supports content scaling and absolute children transformations.
- AtomicCompareExchange operation has been fixed.
- Swizzled accessors to bindless buffers have been added to HLSL shader generator.
- HLSL and MSL shader translators support bindless arrays for buffers and textures.
- Correct structure and array access for atomic and load/store operations in HLSL.
- Fast MeshAttribute and MeshIndices allocation for addAttribute() and addIndices() methods.
- ControlSplit renders lines via the CanvasStrip element.
- WinApp Window supports all mouse buttons and wheel events.
- Emscripten Window supports mouse wheel events.
- Correct WebGPU window initialization due to the latest WebGPU API update.
- Metal private resources are Heap allocated.
- Material shader pragmas can control the pipeline type (Vertex or Mesh shader mode).
- SceneTexture supports non-uniform block compression sizes.