Skip to content

Rebase onto dev#22

Open
i8degrees wants to merge 338 commits into
feature/AudioEnginefrom
dev
Open

Rebase onto dev#22
i8degrees wants to merge 338 commits into
feature/AudioEnginefrom
dev

Conversation

@i8degrees
Copy link
Copy Markdown
Owner

Review and merge

* GroupAction, SequenceAction: Change debug logging category to
NOM_LOG_CATEGORY_ANIMATION && remove test category output.
* GroupAction, SequenceAction: Update documentation comments.

* AnimationTest: Remove ActionTimeComparisonResult enumeration &&
::compare_action_timestamps function; these are superseded by
equivalent functionality in nom::ActionPlayer.

* AnimationTest: Fix test failures in WaitForDurationAction2s due
to the FPS not being set.

As of this commit, all animation tests are known to be passing on
virgo.local. Several tests are broken under windev.local, due to an
unknown cause; debug assertions hint at stack corruption around
'rect', 'gtest_ar_' and 'RECT2_POS' variables across various tests
from the incomplete test run.
Now that I've switched over to using the Switch File Deluxe package,
the duplicate files issue that I had previously is resolved.
This allows us to use const File instances within header files.

* Clean up header a bit; forward declare IFile && relocate
platform-specific headers to File.cpp.
Add a few internal reference document links to DispatchQueue &&
IActionObject.
::bounds -> ::clip_bounds
::set_bounds -> ::set_clip_bounds

* Clean up internal handling logic in ::set_clip_bounds.
This resolves the the run-time check failure #2 (stack corruption)
bugs introduced in git commit 337f28f.

All animation tests are known to be passing on both windev.local and
virgo.local as of this git revision.
::timing_mode -> ::timing_curve
::set_timing_mode -> ::set_timing_curve
This prevents these files from being included in find (and replace)
results.
* Remove logging result output in QuadEaseInOut test.
* Remove the duplicated && conflicted-scope variables in the
SineEaseOut test.
* ActionTimingCurves.cpp: Add copyright notice for easing algorithms.
* ActionTimingCurves.hpp: Update documentation comments.
* macros.cmake: Relocate add_animation_test func to
tests/src/graphics/CMakeLists.txt
NOM_LOG_CATEGORY_ANIMATION -> NOM_LOG_CATEGORY_ACTION
NOM_LOG_CATEGORY_TRACE_ANIMATION -> NOM_LOG_CATEGORY_TRACE_ACTION
* Timer: Remove ::seconds -- ::to_milliseconds replaces this
signature.

* HighResolutionTimer: Change argument names of conversion funcs:
::to_milliseconds(elapsed_hires_ticks) ->
	::to_milliseconds(hires_ticks)
&&
::to_seconds(elapsed_hires_ticks) ->
	::to_seconds(hires_ticks)

(Clarification)
…_actions

These assertions would cause the ActionPlayer::run_action func that
allows specifying the particular DispatchQueue instance to fail under
valid conditions.
This provides a more consistent API.

* IActionObject: Rename curr_frame_ to elapsed_frames_

All action tests are known to pass on both windev.local and
virgo.local as of this commit.
The action's stored texture is released now upon a call to ::release --
an explicit call made by RemoveAction. This lets us not need to
explicitly check to see if the action is running before rendering. This
is convenient when we wish to render only when the action is executing.
Since we don't actually intend on using this anytime soon, it's less
maintenance burden on us ... especially considering that the animation
logic isn't quite right, anyhow.
This provides more accurate FPS output results.
This makes it a test failure when the actual test duration is below the
minimum expectations.

* Rename WaitForDurationAction2s to WaitForDurationAction
* WaitForDurationAction: Allow testing of the action at variable
speed.
(To ease future maintenance burden)
i8degrees and others added 30 commits April 24, 2026 23:40
[mod] cmake/macros.cmake
[new] cmake/functions.cmake
  - nom_install_resources macro are now two functions;
  `install_resource_file` and `install_resource_dir`
  - `nom_add_library` is now a macro

[new] version.cmake
[mod] CMakeLists.txt
  - The call to `project` now includes version variables that are set in
  `version.cmake`. The `VERSION` & `SONAME` versioning now works as expected
  in `nom_add_library` function.
  - Re-enable build of `NOM_BUILD_ACTIONS_UNIT`
  - NOM_INSTALL_GENERATED_DOCS is now an cmake option
  - Check for `ENV{OPENALDIR}` under linux deps
[mod] src/CMakeLists.txt
  - Add guard hooks for building when audio engine is toggled
[mod] tests/CMakeLists.txt
  - Add guard hooks for building when audio engine is toggled
  - Use new `install_resource` functions
[mod] examples/CMakeLists.txt
  - Add `nomlib-audio` to library deps
  - Add guard hooks for OPENAL / audio
  - Use `install_resource` functions
[mod] tests/src/audio/CMakeLists.txt
  - Add guard hooks for compilation when audio engine is enabled
No linking stage just yet, but soon.
[mod] cmake/macros.cmake
[new] cmake/functions.cmake
  - nom_install_resources macro are now two functions;
  `install_resource_file` and `install_resource_dir`
  - `nom_add_library` is now a macro

[new] version.cmake
[mod] CMakeLists.txt
  - The call to `project` now includes version variables that are set in
  `version.cmake`. The `VERSION` & `SONAME` versioning now works as expected
  in `nom_add_library` function.
  - Re-enable build of `NOM_BUILD_ACTIONS_UNIT`
  - NOM_INSTALL_GENERATED_DOCS is now an cmake option
  - Check for `ENV{OPENALDIR}` under linux deps
[mod] src/CMakeLists.txt
  - Add guard hooks for building when audio engine is toggled
[mod] tests/CMakeLists.txt
  - Add guard hooks for building when audio engine is toggled
  - Use new `install_resource` functions
[mod] examples/CMakeLists.txt
  - Add `nomlib-audio` to library deps
  - Add guard hooks for OPENAL / audio
  - Use `install_resource` functions
[mod] tests/src/audio/CMakeLists.txt
  - Add guard hooks for compilation when audio engine is enabled
- Exclude auto-generated files (cmake) -- `.in` -- from install phase of
engine header dev files

- Additionally, install cmake config module -- `nomlib-config.cmake` at
`PREFIX`/lib/cmake/nomlib

- `cmake/functions.cmake` **nom_resource_file** - Always exclude dotfiles, i.e.: `.*` from its final installation path
- `cmake/functions.cmake` **nom_resource_dir** - Always exclude dotfiles, i.e.: `.*` from its final installation path
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant