Draft
Conversation
Migrated project from HexaGen.Legacy to HexaGen 1.1.22, updating all relevant using directives and code to use the new API structure. Refactored method signatures to accept ParseResult instead of CppCompilation, and updated metadata merging to use MergeOptions. Improved parameter handling in ManualFunctionGenRuleSpan to match new HexaGen conventions. Added new defines and type mappings in config.base.json. Commented out obsolete Visual Studio environment variable settings. General modernization and cleanup to align with the latest HexaGen library.
Updated HexaGen to 1.1.22.1. Moved IMGUI_USE_WCHAR32, IMGUI_ENABLE_FREETYPE, and CIMGUI_DEFINE_ENUMS_AND_STRUCTS defines from ImGuiCodeGenerator.cs to config.base.json for centralized configuration management.
- Bump ExampleAndroid to net9.0-android and update AndroidX packages - Update HexaGen.Runtime to 1.1.22 across all projects - Add Generated\Functions\ folder to Hexa.NET.ImGuizmo.csproj - Minor formatting and whitespace adjustments
Updated HexaGen NuGet package to version 1.1.23. Added timing logic in Program.cs to measure and display the duration of the generation process in seconds, providing clearer feedback on execution time.
This was referenced Dec 29, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces several updates across the codebase, focusing on upgrading dependencies, refactoring generator code for improved maintainability, and enhancing the configuration and build process. The most significant changes include updating to newer package versions, refactoring generator patches to use a unified parsing result, and improving the function generation logic. Additionally, there are minor enhancements to project files and build output.
Dependency and Target Framework Upgrades
HexaGen.Runtimepackage references to version1.1.22across all relevant projects for consistency and bug fixes. [1] [2] [3] [4] [5] [6] [7] [8]ExampleAndroid.csprojfromnet8.0-androidtonet9.0-androidand bumped AndroidX dependencies to newer versions. [1] [2]HexaGenpackage reference inGenerator.csprojfromHexaGen.Legacyto the latestHexaGenversion, and bumped related dependencies.Generator and Patching Refactor
ImGuiPrePatch,ImGuiDefinitionsPatch,ImGuizmoPrePatch,ImVectorPatch) to use a unifiedParseResultobject instead of directly usingCppCompilation, simplifying the patching interface and improving extensibility. [1] [2] [3] [4] [5]ManualFunctionGenRuleSpanto improve parameter handling, including support for string mappings and the use ofParameterMapping. [1] [2]Configuration and Build Improvements
config.base.jsonfor improved feature support, and mapped new type aliases. [1] [2]Program.csby timing the generation process and displaying the duration in seconds. [1] [2]Code Quality and Maintenance
ImGuiCodeGenerator.csimports, and commented out hardcoded environment variable settings for better portability. [1] [2]Project Structure
Hexa.NET.ImGuizmo.csprojto improve project organization.This pull request updates the HexaGen code generator to use the latest HexaGen APIs, modernizes several patch and generator classes to match new interfaces, and improves configuration and merging logic. The changes focus on upgrading dependencies, adapting to new HexaGen data models, and enhancing the flexibility and maintainabilityThis pull request includes several important updates across the codebase, focusing on upgrading dependencies, improving code generation infrastructure, and making various code and configuration improvements. The main highlights are the migration to newer package versions (notably HexaGen and HexaGen.Runtime), refactoring of the code generation pipeline to support new APIs, and enhancements to the build and patching process.
Dependency and Framework Upgrades:
HexaGenpackage inGenerator/Generator.csprojfromHexaGen.Legacyto the latestHexaGenversion, and upgradedHexaGen.Runtimeto version1.1.22across all relevant projects. [1] [2] [3] [4] [5] [6] [7] [8] [9]ExampleAndroid.csprojtonet9.0-androidand bumpedXamarin.AndroidXdependencies. [1] [2]Code Generation Pipeline Improvements:
ParseResultAPI instead of the olderCppCompilation, aligning with updated HexaGen APIs. [1] [2] [3] [4]ManualFunctionGenRuleSpanto support new mapping and type handling, improving string and span parameter support. [1] [2]MergeOptionsobject, specifically enabling function table merging in both ImGui and backend targets. [1] [2]Build and Configuration Enhancements:
Program.csfor better build feedback. [1] [2]config.base.jsonto support additional ImGui features and types. [1] [2]Code Cleanup and Modernization:
These changes collectively modernize the codebase, improve compatibility with the latest tools and libraries, and enhance the maintainability and extensibility of the code generation pipeline. of the codebase.
Dependency and API Upgrades:
HexaGen.Legacyto the latestHexaGenpackage inGenerator.csprojto leverage new APIs and features.Refactoring for New HexaGen APIs:
CppAstand directCppCompilationparameters with new HexaGen types likeParseResultand updated method signatures in generator and patch classes (ImGuiCodeGenerator,ImGuiDefinitionsPatch,ImGuizmoPrePatch,ImGuiPrePatch,ImVectorPatch,ManualFunctionGenRuleSpan). [1] [2] [3] [4] [5] [6] [7] [8]Configuration and Build Improvements:
Definesfrom hardcoded values in code toconfig.base.json, making build configuration more maintainable and visible. [1] [2]ImTextureIDandImFileHandleinconfig.base.jsonfor better type resolution.Metadata Merging Enhancements:
MergeOptionsobject, enabling fine-grained control (such as merging function tables) inImGuiPostPatchandImGuiBackendsTarget. [1] [2]These changes collectively modernize the codebase, improve maintainability, and align the generator with the latest HexaGen framework.