Replaced CML math library with HLSL++ to improve math performance with SSE/AVX/NEON vector-instructions (close #78).
Replaced UnexpectedEnumArgumentException with UnexpectedArgumentException applicable to different types. Check macros was renamed accordingly from META_UNEXPECTED_ENUM_ARG_* to META_UNEXPECTED_ARG_*.
Removed const modifiers from exception members to enable generation of move constructors.
Data libraries:
RawVector template class was added as a replacement of cml::vector for dense-packed components storage used in vertex attributes.
Point template class now use underlying HLSL++ vector; multiplication/division operators were fixed.
Rect and RectSize, Volume and VolumeSize classes were refactored. Made class fields private, available through accessors.
Constants template class was added with math constants.
Graphics libraries:
Color template class was rewritten from scratch and now can use both integer and floating point components via underlying HLSL++ vector storage.
ArcBallCamera issues were found by improved unit-tests and fixed.
SphereMesh generation was simplified with matrix-free implementation.
Fixed missing debug names of graphics resources (regression of previous refactoring).
Fixed mip-levels count in depth texture descriptor for DirectX12.
Fixed limited rendering FPS with VSync turned OFF on Nvidia GPUs with latest drivers (Jan 2021).
Enabled naming of Tracy GPU contexts (unforturnately, now it works only when TRACY_ON_DEMAN is disabled).
Unit-tests coverage was expanded from 5.7% to 13%:
RawVector, Point new template classes were covered with unit-tests.
Rect and RectSize, Volume and VolumeSize existing template classes were covered with unit-tests.
Color template class was covered with unit-tests.
UnitType template class was covered with unit tests.
UserInterface::Context class unit convertors were covered with unit tests.
FakeRenderContext class was added to UI unit-testing infrastructure.
Replace deprecated ParseAndAddCatchTests CMake function with catch_discover_tests to fix Catch warnings.
Migrated tutorials and samples to using HLSL++ vector math, used instead of CML.
Removed explicit alignment of uniform structure fields, which is not required anymore for HLSL++ types, since they already use 16-bytes aligned data storage.
Updated tutorials documentation to reflect code changes.
Build Infrastructure:
Do not fail build when some unit tests fail or Sonar Scanner jobs fail with error.
Publish Sonar Scanner error reproducer to build artifacts in case of scan failure.
Fix Sonar Scanner cache invalidation by adding plugin version to cache key.
Methane Kit v0.5 Pre-Release Update 5
UnexpectedEnumArgumentException
withUnexpectedArgumentException
applicable to different types. Check macros was renamed accordingly fromMETA_UNEXPECTED_ENUM_ARG_*
toMETA_UNEXPECTED_ARG_*
.RawVector
template class was added as a replacement ofcml::vector
for dense-packed components storage used in vertex attributes.Point
template class now use underlying HLSL++ vector; multiplication/division operators were fixed.Rect
andRectSize
,Volume
andVolumeSize
classes were refactored. Made class fields private, available through accessors.Constants
template class was added with math constants.Color
template class was rewritten from scratch and now can use both integer and floating point components via underlying HLSL++ vector storage.ArcBallCamera
issues were found by improved unit-tests and fixed.SphereMesh
generation was simplified with matrix-free implementation.RawVector
,Point
new template classes were covered with unit-tests.Rect
andRectSize
,Volume
andVolumeSize
existing template classes were covered with unit-tests.Color
template class was covered with unit-tests.UnitType
template class was covered with unit tests.UserInterface::Context
class unit convertors were covered with unit tests.FakeRenderContext
class was added to UI unit-testing infrastructure.ParseAndAddCatchTests
CMake function withcatch_discover_tests
to fix Catch warnings.