Skip to content

Commit 65c3f3c

Browse files
phraktleclaude
andcommitted
feat(api): bump ImPlot from 2023-era 1f7a8c0 to v1.0; migrate to ImPlotSpec
Upstream implot v1.0 (https://github.com/epezent/implot/releases/tag/v1.0) is a breaking release that replaces per-call (flags, offset, stride) args on every Plot* function with a single ImPlotSpec value-type, and removes the SetNextX-style helpers. The headline new feature is per-index colors and marker sizes via ImPlotSpec arrays (PR epezent/implot#672). Binding changes: - Advance include/implot submodule 1f7a8c0 -> v1.0 (524f9fc) - Regenerate ast-implot.json - Add ImPlotSpec: scalar @BindingField props plus hand-written native setters for the 5 array-pointer fields (LineColors, FillColors, MarkerSizes, MarkerLineColors, MarkerFillColors). Backing buffers are owned in native memory (ImGui::MemAlloc) and freed on destroy() or on reassignment. - Rewrite every Plot* signature: the (flags, offset, stride) tail is replaced by `@OptArg @ArgValue(callPrefix="*") ImPlotSpec spec`, which marshals to `*reinterpret_cast<ImPlotSpec*>(spec.ptr)` at the C++ call site. Progressive-cutoff overloads still expose spec-less variants (relying on C++ default `= ImPlotSpec()`). - Add PlotPolygon, PlotBubbles, NextMarker (new in v1.0) - Remove SetNextLineStyle / SetNextFillStyle / SetNextMarkerStyle / SetNextErrorBarStyle (obsoleted in v1.0 -- configure ImPlotSpec instead) - Trim ImPlotStyle: drop LineWeight/Marker/MarkerSize/MarkerWeight/ FillAlpha/ErrorBarSize/ErrorBarWeight/DigitalBitHeight/ DigitalBitGap (all moved into ImPlotSpec); add new DigitalPadding/DigitalSpacing - Flag enums shift accordingly: ImPlotMarker_None is now -2 (ImPlotMarker_Auto = -1 is new); ImPlotCol drops the 5 per-item entries (Line/Fill/MarkerOutline/MarkerFill/ErrorBar); ImPlotStyleVar drops the 9 matching vars; ImPlotLegendFlags gains Reverse; ImPlotPieChartFlags gains Exploding + NoSliceBorder; new ImPlotBubblesFlags / ImPlotPolygonFlags enums are AST-driven. Example: ExampleImPlot grows a "Per-Index Colors (v1.0 PR #672)" plot showing rainbow LineColors + MarkerFillColors + ramping MarkerSizes. Note: this is source-incompatible for any caller of the affected Plot* methods or the removed SetNextX helpers. The incompatibility mirrors upstream implot's own v1.0 break and is the minimum footprint to expose the new ImPlotSpec-based API. Dear ImGui submodule is intentionally left at v1.90.9-docking. implot v1.0 guards its 1.92-era uses (ImTextureRef, ImFontBaked, CalcFontSize) behind `#ifdef IMGUI_HAS_TEXTURES` / `IMGUI_VERSION_NUM` and compiles cleanly against 1.90.9. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 219f032 commit 65c3f3c

14 files changed

Lines changed: 4443 additions & 5297 deletions

File tree

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -316,13 +316,13 @@ If using Java 9 modules, ImGui Java has Automatic Module Names:
316316
All extensions are already included in the binding and can be used as it is.
317317
See examples in the `example` module for more information about how to use them.
318318

319-
- [ImNodes](https://github.com/Nelarius/imnodes/tree/b2ec254ce576ac3d42dfb7aef61deadbff8e7211) | [Example](https://github.com/SpaiR/imgui-java/blob/main/example/src/main/java/ExampleImNodes.java) <br>
319+
- [ImNodes](https://github.com/Nelarius/imnodes/tree/857cc860af05ac0f6a4039c2af33d982377b6cf4) | [Example](https://github.com/SpaiR/imgui-java/blob/main/example/src/main/java/ExampleImNodes.java) <br>
320320
A small, dependency-free node editor for Dear ImGui. (A good choice for simple start.)
321-
- [imgui-node-editor](https://github.com/thedmd/imgui-node-editor/tree/021aa0ea4da13fed864bafb2a92d4c5205076866) | [Example](https://github.com/SpaiR/imgui-java/blob/main/example/src/main/java/ExampleImGuiNodeEditor.java) <br>
321+
- [imgui-node-editor](https://github.com/thedmd/imgui-node-editor/tree/687a72f940c76cf5064e13fe55fa0408c18fcbe4) | [Example](https://github.com/SpaiR/imgui-java/blob/main/example/src/main/java/ExampleImGuiNodeEditor.java) <br>
322322
Node Editor using ImGui. (A bit more complex than ImNodes, but has more features.)
323323
- [ImGuizmo](https://github.com/CedricGuillemet/ImGuizmo/tree/f7bbbe39971d9d45816417a70e9b53a0f698c56e) | [Example](https://github.com/SpaiR/imgui-java/blob/main/example/src/main/java/ExampleImGuizmo.java) <br>
324324
Immediate mode 3D gizmo for scene editing and other controls based on Dear ImGui.
325-
- [implot](https://github.com/epezent/implot/tree/v0.17) | [Example](https://github.com/SpaiR/imgui-java/blob/main/example/src/main/java/ExampleImPlot.java) <br>
325+
- [implot](https://github.com/epezent/implot/tree/v1.0) | [Example](https://github.com/SpaiR/imgui-java/blob/main/example/src/main/java/ExampleImPlot.java) <br>
326326
Advanced 2D Plotting for Dear ImGui.
327327
- [ImGuiColorTextEdit](https://github.com/BalazsJako/ImGuiColorTextEdit/tree/0a88824f7de8d0bd11d8419066caa7d3469395c4) | [Example](https://github.com/SpaiR/imgui-java/blob/main/example/src/main/java/ExampleImGuiColorTextEdit.java) <br>
328328
Syntax highlighting text editor for ImGui.

0 commit comments

Comments
 (0)