10 Commits

Author SHA1 Message Date
Mario Zechner
102b030db3 [tests] More improvements to serializer generator. 2025-07-13 02:52:50 +02:00
Mario Zechner
429ed9dd3b [tests] Complete C++ SkeletonSerializer auto-generation from Java
- Implement comprehensive C++ serializer generator (tests/generate-cpp-serializer.ts)
- Direct transformation of Java SkeletonSerializer to C++ header-only implementation
- Handle all C++-specific API differences:
  * Field access patterns (obj.field → obj->field, private fields → obj->_field)
  * Null check removal for reference-returning methods (getBones, getEdges)
  * Nested array null check elimination (getVertices, getDrawOrders)
  * Enum serialization via switch statements replacing .name() calls
  * Custom function replacement system for C++-specific implementations
- Add specialized C++ implementations:
  * writeColor: handle public Color fields (r,g,b,a without underscore)
  * writeSkin: iterate AttachmentMap::Entries and call writeSkinEntry
  * writeSkinEntry: handle AttachmentMap::Entry instead of Java SkinEntry
- Auto-generate both pointer and reference versions of all write methods
- Create JsonWriter.h as header-only port of Java JsonWriter
- Update HeadlessTest.cpp to use generated SkeletonSerializer
- Add comprehensive type analysis and enum mapping from analysis-result.json
- Implement exclusion system for filtering unwanted types/methods
- Fix Java generator nested array null checks that were incorrectly hardcoded

Generated C++ serializer produces identical JSON output to Java reference implementation.
2025-07-13 02:06:44 +02:00
Mario Zechner
3183c0b383 [tests] Auto-generation of Java SkeletonSerializer 2025-07-12 02:24:14 +02:00
Mario Zechner
ab9f6f6099 [c] Update todo with items for bugs/features 2025-07-11 02:24:21 +02:00
Mario Zechner
a5029e13e0 [c] Refactoring docs, to be removed 2025-07-10 19:26:48 +02:00
Mario Zechner
8f831bd245 [c] More fixes to C wrapper generator, everything compiles, smoke test works 2025-07-10 04:44:35 +02:00
Mario Zechner
dcc0e20361 [c] Fixed C wrapper generator 2025-07-10 04:22:20 +02:00
Mario Zechner
b9424e0745 Temporary docs/ to keep track of refactoring work 2025-07-09 19:12:38 +02:00
Mario Zechner
4fd23d3abe [c] Codegen improvements. 2025-07-08 23:34:17 +02:00
Mario Zechner
fdbb180409 Refined plan for: spine-bool-stdbool 2025-07-08 22:11:31 +02:00