Commit 65c3f3c
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
- buildSrc/src/main/resources/generator/api/ast
- example/src/main/java
- imgui-binding/src
- generated/java/imgui/extension/implot
- flag
- main/java/imgui/extension/implot
- include
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
316 | 316 | | |
317 | 317 | | |
318 | 318 | | |
319 | | - | |
| 319 | + | |
320 | 320 | | |
321 | | - | |
| 321 | + | |
322 | 322 | | |
323 | 323 | | |
324 | 324 | | |
325 | | - | |
| 325 | + | |
326 | 326 | | |
327 | 327 | | |
328 | 328 | | |
| |||
0 commit comments