Skip to content

Implementing Shared Library loading on Windows - #149

Open
mallory-scotton wants to merge 56 commits into
mainfrom
ms/shared-library
Open

mallory-scotton wants to merge 56 commits into
mainfrom
ms/shared-library

Conversation

@mallory-scotton

@mallory-scotton mallory-scotton commented Sep 18, 2026 •

Copy link
Copy Markdown
Member

Type of Change

  • 🐞 Bug Fix (non-breaking change which fixes an issue)
  • ✨ New Feature (non-breaking change which adds functionality)
  • 💥 Breaking Change (fix or feature that would cause existing functionality to not work as expected)
  • 🧹 Refactor (code cleanup, architectural improvement, or progressive abstraction)
  • 📖 Documentation Update
  • 🧪 Tests / CI / Build System (CMake) Update

Description

Implementation of the module system, this include also the sub-system and utility classes needed to achieve it:

  • Implementation of SizedAllocatorBase, SizedHeapAllocator and DefaultAllocator
  • Implementation of the Vector<T> and String classes
  • Fixing Hot-Reloading hot-paths on global malloc
    • Implementation of the localShadowMalloc per DLL
    • Implementation of the module system
  • Added Shared Library loading (only for windows)
  • Improving memory management
  • Removing useless RHI/Platforms that are not implementable yet
  • Added new ADR for the previous work on the architecture layout

Added some new configuration for the workspace, CI, etc...

I also did some modification on CONTRIBUTING.md and REFERENCES.md with the up-to-date informations.

Checklist

  • My code follows the gp-engine C++ Coding Standard.
  • I have compiled the engine successfully using the modern C++23 toolchain (GCC 13+, Clang 16+, or MSVC 19.38+) and CMake.
  • I have performed a self-review of my code and added comments, especially in complex areas like shader programming or math-heavy algorithms.
  • I have updated the relevant API reference or learning path documentation (if applicable).
  • My changes generate no new compiler warnings in the build log.
  • I have read and agree to the Code of Conduct and Contributing Guidelines.

GP Contributor License Agreement

I give to the Graphical Playground Team, LLC permission to license my contributions on any terms
they like. I am giving them this license in order to make it possible for them to accept my
contributions into their project.

As far as the law allows, my contributions come as is, without any warranty or condition, and I
will not be liable to anyone for any damages related to this software or this license, under any
kind of legal claim.

…eserve functions for improved container memory management
@mallory-scotton
mallory-scotton requested review from a team as code owners September 18, 2026 07:47
@mallory-scotton mallory-scotton added confirmed Issue has been verified and reproduced documentation Improvements or additions to documentation enhancement Improvement to an existing feature labels Sep 18, 2026
@github-actions github-actions Bot added the topic:thirdparty Involves a third-party library or dependency label Sep 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

confirmed Issue has been verified and reproduced documentation Improvements or additions to documentation enhancement Improvement to an existing feature high priority Requires immediate attention needs testing Requires testing before it can be closed needs work More work needed before it can be merged or closed performance Related to speed, memory usage, or efficiency platform:android Specific to the Android platform platform:ios Specific to the iOS platform platform:linuxbsd Specific to the Linux or BSD platform platform:macos Specific to the macOS platform platform:ps5 Specific to the PlayStation 5 platform platform:switch Specific to the Nintendo Switch platform platform:visionos Specific to the Apple visionOS platform platform:windows Specific to the Windows platform topic:buildsystem Involves the build system topic:core Involves core engine functionality topic:platforms Involves platform-specific behavior or porting topic:rendering Involves the rendering pipeline or visual output topic:tests Involves unit or integration tests topic:thirdparty Involves a third-party library or dependency

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

1 participant