Skip to content

Rebase onto dev#22

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

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

Conversation

@i8degrees
Copy link
Copy Markdown
Owner

Review and merge

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)
This aids in debugging proper action flow when proxied through
nom::GroupAction or nom::SequenceAction (i.e.: they are not being
destroyed befofre RemoveAction is called).
This test was becoming a headache to debug, with all the confusing
variable naming, etc.
This helps simplify the overall update logic, but most importantly,
prevents a nasty issue from cropping back up: when things are cloned,
we lose direct access the object's member variables (i.e.: grabbing
a variable from the action we created), and instead must indirectly
access it through the nom::ActionPlayer::action method instead.
  Thus, the concern for the end-use of the API is remembering to do
so -- I've already screwed this up on multiple occasions :-P
  On the downside, this allows action mutation to occur on a greater
scale once the action is in play, which could lead to new bugs down
the road... but alas, I'm comfortable with giving this a try.

* In order for this change to work with the semantics of
nom::RemoveAction, GroupAction && SequenceAction have been updated
to not remove the actions within their containers, but to simply
iterate onwards to the next appropriate object.

* GroupAction, SequenceAction: Collapse ::next_frame && ::prev_frame
logic into internal ::update method. This removes needless code
duplication.

All unit tests are known to be passing on virgo.local && windev.local.
i8degrees and others added 30 commits April 26, 2026 19:18
[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
- `common_deps`
- `build_deps linux`
- `build_deps osx`
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