News
Scenome 22.27 — 7/10/2022
Release details are described below.
- Scenome Scripting Language API.
Added support for additional glGet queries in <Render3D> data interfaces.
New data interfaces are as follows:
<Render3D>::QueryDeviceParameterInt32( ... ) <Render3D>::QueryDeviceParameterIndexedInt32( ... ) <Render3D>::>QueryDeviceParameterInt64( ... ) <Render3D>::>QueryDeviceParameterIndexedInt64( ... ) <Render3D>::>QueryDeviceParameterFloat32( ... ) <Render3D>::>QueryDeviceParameterIndexedFloat32( ... ) <Render3D>::>QueryDeviceParameterFloat64( ... ) <Render3D>::>QueryDeviceParameterIndexedFloat64( ... ) - Shader Application. Fixed a memory leak in the data capture wizard. In some cases, this leak caused the application to crash on shutdown.
- Scenome Applications. <VariableNode>, <StructInstanceNode>, and <StructInstanceArrayNode> were modified so that the <DataCaptureList> now mostly manages container object pointers for itself and for any resident <DataCapture> objects. Container object pointers are now set when you call my_variable_node.DataCaptureList.AddObject( obj ). These pointers are no longer saved to disk, but are restored from the <DataCaptureList> object container object pointer in the <DataCaptureList> and during deserialization. This is handled internally and cannot be modified in Scenome Scripting Language code. You can still set the container object pointer when you transfer <DataCapture> objects from one document to another. This modification addresses some key memory safety issues.
- Scenome Applications.
Update the <Texture> command Copy Declaration To Clipboard. Previously
this command created a sampler declaration such as uniform samplerCubeArray my_sampler
and copied it to the Windows® clipboard so that you could paste it into your shader. This
command now generates the sampler declaration, sampling code, and imageLoad( ... )/imageStore( ... )
code if the <Texture> is configured for use an an image sampler instead of a standard sampler. This should make it much
easier to get code running in situations where you have created a new <Texture> node, but are not sure how to get
started writing code for it, or don't want to search the OpenGL® documentation.
// Code generated for a standard sampler: uniform samplerCubeArray IPF_8888_ARGB; vec4 texel_data = texture( IPF_8888_ARGB, vec4( vec3 texcoord, float array_index ) ); // Code generated for an image sampler: layout( rgba8 ) uniform imageCubeArray IPF_8888_ARGB; vec4 texel_data = imageLoad( IPF_8888_ARGB, ivec3( ivec2 texcoord, int face_index ) ); imageStore( IPF_8888_ARGB, ivec3( ivec2 texcoord, int array_index ), vec4 data );