Skip to content

Release v0.1.1

Pre-release
Pre-release

Choose a tag to compare

@baumic baumic released this 15 Oct 20:01
· 82 commits to main since this release

Rhea v0.1.1

Rhea v0.1.1 fixes build and API compatibility problems in the automated tests and Poseidon renderer samples following the first public release.
It also makes tests opt-in and documents how to build and run them separately.

Rhea remains experimental. APIs, resource formats, and build configuration may change, and backward compatibility is not guaranteed.
An editor is not included.

Changes

Test configuration and Psio tests

  • Tests are disabled by default (RHEA_BUILD_TESTS=OFF). Enable them explicitly with -DRHEA_BUILD_TESTS=ON.
  • Test targets respect the test option, including when a parent project already provides GoogleTest.
  • Corrected GoogleTest/GoogleMock target references and handling of an installed GoogleTest package.
  • Fixed outdated include paths in the Psio network tests.
  • Updated network test fixtures for the current backend API and corrected ownership errors, including a double deletion in the HTTP stream tests.
  • TLS socket tests are built only when OpenSSL support is available.
  • Corrected the Hermes test registration.

For an existing build directory, a previously cached RHEA_BUILD_TESTS=ON remains enabled. Pass -DRHEA_BUILD_TESTS=OFF explicitly to change it.

Poseidon renderer samples

The Triangle, Cube, and TexturedCube samples now use the current Psio and Poseidon APIs:

  • Updated window creation, input handling, and frame execution.
  • Replaced obsolete scene APIs with RenderWorld camera and renderable handles, viewport-owned render contexts, and explicit resource ownership.
  • Updated camera positioning, transforms, and keyboard camera controls.
  • Added sample shaders for Direct3D 11 and OpenGL, with explicit vertex input layouts and 32-bit mesh indices.
  • Added automatic copying of shader assets beside the executables.
  • Replaced the missing external image dependency in TexturedCube with a generated checkerboard texture.
  • Added --backend, --frames, and --assets launch options.

See the Poseidon sample guide for build instructions, controls, and launch options.

Renderer-only builds

  • Added Psio to renderer-only configurations without requiring the Rhea runtime.
  • Skipped Fabric registry generation when the Rhea Engine is disabled, removing the Python requirement for renderer-only builds.
  • Guarded SDL-specific OpenGL code so Windows builds with SDL disabled can compile.

Validation

  • All three Poseidon samples built successfully in Release configuration with MSVC on Windows.
  • Each sample completed a five-frame smoke run using Direct3D 11 and OpenGL with the Win32 platform backend, for six successful runs. These checks exercised initialization, shader compilation, frame execution, and normal shutdown.
  • The updated samples were additionally reported working in a manual run. No per-sample or per-backend interactive test matrix was recorded.
  • Twelve selected Psio URL and HTTP tests passed, along with the SimpleParser and MathRotation test executables.
  • The existing engine test configuration continued to configure successfully after the CMake changes.

The complete automated test suite has not been validated. TLS tests and network tests requiring local or external servers were not covered by these checks. Linux and macOS were not validated for the updated Poseidon samples.

Getting started

BasicApp remains the recommended introduction to Rhea. Follow Getting Started for the engine sample, or the Poseidon sample guide to explore the renderer independently.

The README documents the separate test build and execution commands. Some network tests require additional server setup; enabling tests does not imply that every test can run unattended.

Feedback

Report problems through the GitHub issue tracker. Include the release or commit, operating system, compiler, graphics backend, build options, relevant logs, and steps to reproduce the issue.

License

Rhea is distributed under the MIT License. Third-party components retain their respective licenses; see LICENSE and THIRD_PARTY_NOTICES.md.