Skip to content

v3.0.9208

Choose a tag to compare

@abenedik abenedik released this 21 Mar 08:46
· 609 commits to main since this release
  • Fixed ManualInputEventsManager, where its events were not triggered when no EventsSource was registered. This bug was introduced in v3.0.9175 RC3. The IsProcessingEvents property has also been removed from ManualInputEventsManager.
  • Prevented setting NaN values to the camera's position and distance when zooming in and out. This may happen when the camera's near and far planes are far apart.
  • When calculating the camera's near and far planes, use the camera's MinNearPlaneDistance and MaxFarPlaneDistance when provided.
  • Fixed PositionAndScaleSceneNode method in ModelUtils and TransformMesh method in MeshUtils by normalizing the normals. Before, the normals may not be normalized when scaling the object.
  • Improved AndroidBitmapIO when it is used in multiple threads and prevented scaling bitmap images based on screen density. This can be disabled by setting the new PreventAndroidBitmapScale to false.
  • Improved AndroidTextureLoader by adding a new optional name property to set the name of the created GpuImage. Also, the LoadTextureAsync method now takes StandardMaterialBase type as a parameter instead of StandardMaterial, so it can also be used to create a SolidColorMaterial.
  • Set GpuImage.IsDataWritePostponed when image data is scheduled for background transfer.
  • Added GpuDynamicMemoryBlockPool.FreeMaterialMemoryBlocks method that can be used to free the material's memory block in a custom Effect (see Ab4d.SharpEngine.Samples.Common/Advanced/FogEffect.cs DisposeMaterial method)
  • VulkanDynamicDescriptorSetFactory is now public instead of internal.
  • Improved TriangleMesh for Positions (Vector3[]) and PositionTexture vertex layout. Before, the VertexBufferDescription was not correctly set. Also, CalculateBoundingBox, GetPositions, GetTextureCoordinates and GetVertexDataChannels methods did not work correctly for those two vertex layouts.
  • Improved SolidColorEffect to correctly render meshes with only Positions (Vector3[]) and meshes with PositionTexture vertex layout. Before, only meshes with PositionNormalTexture vertex layout were correctly rendered (this layout is also used for StandardMesh).
  • Added CreateOutlinePositionsMesh and CreateOutlineStandardMesh to MeshUtils. See the new "Advanced / Mesh outlines" sample.
  • Ab4d.SharpEngine, Ab4d.SharpEngine.Assimp, Ab4d.SharpEngine.glTF and Ab4d.SharpEngine.AvaloniaUI assemblies for .Net 8 and .Net 9 are now marked as IsTrimmable and IsAotCompatible (updated code to prevent AOT analyzer warnings).