Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@nots1dd
Copy link
Contributor

@nots1dd nots1dd commented May 6, 2025

Current codebase for Anvilock is written in C and although it was written with good intention of making it modular and robust, it's lifetime practically didn't seem sustainable enough especially considering that I am bad at writing good and safe C code.

The branch unstable is meant for the complete rewrite and porting of Anvilock in modern C++ (>= C++20). The main aim aside from the advantages of C++ is to make it more maintainable and have a more modular project that eventually is capable of:

  • Possible switch from Freetype to Cairo for 2D graphics
  • Better OpenGL (graphics) logical semantics and configurations

The port of Anvilock to C++ currently for this draft should aim to do the following:

  • Current logical port (almost upto face value)
  • Improvised logging and context
  • Make the codebase more readable and cleaner to work with
  • Add unittests (optional)
  • Make config.toml better
  • Incorporate a better CMake build system (current one just works and is not the best)
  • Add docs for everything
  • Have streamlined codebase practices

@AltSumpreme AltSumpreme mentioned this pull request May 6, 2025
nots1dd added 16 commits May 11, 2025 22:00
Coding practice from now on dictates the use of ifndef and define
directives instead of just using pragma once for headers.
…debase

This commit is a step towards a more type safe codebase. All errors
(including conversions, double promotion, etc.) are treated as errors.
This is a very naive way of doing it, in the future ideally this should
be async to avoid blocking time texture rendering.
…g of widgets

Goal for this is to a more structured way of maintaining widgets at
compile time only.
For better directory naming heuristics + makes life easier for a global
build in the future
@nots1dd nots1dd changed the title Porting Anvilock over to C++20 Porting Anvilock over to C++23 Jul 10, 2025
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.

3 participants