Repository navigation
ImKit 4.1.0 — Node editor redesign, TileMap, Theme::layout
4.1.0 redesigns the node editor and adds show::TileMap, Theme::layout, Sprite, ProgressTrackView::thumb and PtzView::capabilities. Public structures grew at their end, so rebuild your application and every linked ImKit library with the 4.1 headers. Only the node editor changes its default look. The Dear ImGui revision and the dependencies are unchanged.
Documentation: 4.1 additions (new symbols by header), migration guide, changelog. Try it: extract the package for your platform and run bin/imkit_gallery.exe (Windows) or imkit_gallery.app (macOS). The package also holds the Node Editor Gallery. The introduction film is on the documentation site.
Changes
- Node editor
- Link colour follows the output socket's type. Sockets carry glyphs for role (
Data,Flow), container (Single,Array,Set,Map) and flags (Reference,Wildcard,Field,Optional,Unavailable). - Nodes have shapes (
NodeView::shape) and states: running, waiting, success, error, bypassed, disabled, cached, breakpoint and locked. - While a wire is dragged, sockets that can accept it get a ring and the others dim. The draft wire snaps to the nearest candidate within
snapDistance, and the host's verdict reason appears beside the cursor. MakeNodeStylePreset(Classic,Studio,Logic) andNodeStyle::hooks(NodeDrawHooks) change how nodes, sockets and links are drawn. Input stays with the editor.- Alt-click removes a socket's links, and Ctrl-drag moves them to another socket.
LinkView::validitydraws the host's verdict on existing links.EditorOptions::localetranslates the editor's strings.
- Link colour follows the output socket's type. Sockets carry glyphs for role (
show::TileMap(imkit/show/led.h): draws one cell per panel of a tiled display such as an LED wall. Cells are coloured by group (the data port or power circuit that feeds them) and joined inorderlike the cabling. The host receives the hovered and clicked tile and draws its own tooltip.Theme::layout(LayoutTokens): overrides control height, spacing, padding and component height ratios independently of density. A field left unset keeps the density's value, so existing themes draw as before.Sprite,SpriteSheet,SpriteState(imkit/decor.h): play a sheet of equally sized frames from a host-owned texture (Loop,Once,HoldLast).ProgressTrackView::thumbpasses the track rectangle and the head position to the host, which can draw an image at the leading edge of a progress fill.PtzView::capabilities(PtzCapabilities): hides the controls a camera does not have: pan, tilt, zoom, home, presets, preset store and speed. Every field defaults to true.- Fix: a node whose body submits no item, such as a locked empty node, no longer trips Dear ImGui's cursor-extension assertion.
Upgrading from 4.0
- Rebuild the application and every linked ImKit library with the 4.1 headers. A 4.0 object next to a 4.1 structure reads the wrong layout.
- Request
find_package(imkit 4.1 CONFIG REQUIRED). A request for 4.0 no longer matches 4.1.x. - If you use the node editor, check its new default look.
style.linkColor = LinkColorSource::Accentandstyle.status = StatusDisplay::Alwaysrestore the 4.0 link colour and status line. The other differences have no switch: a 16-unit reroute knot, a mark on unconnected required inputs, pill-shaped link labels and a resize grip that scales with the zoom. The migration guide lists them.
Control sizes, colours and motion are unchanged.
Assets
| File | Contents |
|---|---|
imgui-modern-kit-4.1.0-Windows-x64.zip, -Windows-arm64.zip |
SDK and Gallery for Windows |
imgui-modern-kit-4.1.0-Darwin-arm64.zip, -Darwin-x86_64.zip, -Darwin-universal2.zip |
SDK and Gallery for macOS (unsigned, not notarized) |
imkit-v4.1.0-source.zip |
Source at the release commit |
imkit-v4.1.0-validation-evidence.zip, imkit-v4.1.0-manifest.json, SHA256SUMS |
Evidence, manifest and checksums |
The film's music is "Laserpack" by Kevin MacLeod ft. DarkNES (incompetech.com), licensed under CC BY 4.0.
Verification
CI built, tested and packaged all five packages at the release commit and ran the consumer check on each. The Gallery's public-IO verification (45 checks) passed on Windows x64 Debug. These checks do not cover physical input devices, native IME, screen readers, mixed-DPI setups, third-party hosts or macOS notarization.
ImKit 4.1.0 — ノードエディタの再設計、TileMap、Theme::layout
4.1.0では、ノードエディタを再設計し、show::TileMap、Theme::layout、Sprite、ProgressTrackView::thumb、PtzView::capabilities を追加しました。公開構造体の末尾にメンバーが増えたため、アプリと、リンクするすべてのImKitライブラリを、4.1のヘッダーで再ビルドしてください。既定の見た目が変わるのはノードエディタだけです。Dear ImGuiのrevisionと依存は変わりません。
文書: 4.1追加API(ヘッダー別の追加シンボル)、移行ガイド、変更履歴。試す: お使いの環境向けのパッケージを展開し、bin/imkit_gallery.exe(Windows)または imkit_gallery.app(macOS)を起動してください。パッケージには、ノードエディタ専用のGalleryも含まれます。紹介動画はドキュメントサイトにあります。
変更点
- ノードエディタ
- 配線の色は、出力ソケットの型に従います。ソケットには、役割(
Data、Flow)、入れ物(Single、Array、Set、Map)、修飾(Reference、Wildcard、Field、Optional、Unavailable)を示す記号が付きます。 - ノードには、形(
NodeView::shape)と状態(実行中、待機、成功、エラー、Bypass、無効、キャッシュ、ブレークポイント、ロック)があります。 - 配線のドラッグ中は、受けられるソケットに輪が付き、そのほかは薄くなります。ドラッグ中の配線は、
snapDistance以内で最も近い候補に吸着し、ホストの判定の理由がカーソルの横に出ます。 MakeNodeStylePreset(Classic、Studio、Logic)とNodeStyle::hooks(NodeDrawHooks)で、ノード、ソケット、配線の描画を変えられます。入力はエディタが処理します。- Altクリックでソケットの配線を外し、Ctrlドラッグで別のソケットへ移します。
LinkView::validityで、既存の配線にホストの判定を描けます。EditorOptions::localeで、エディタの文言を翻訳できます。
- 配線の色は、出力ソケットの型に従います。ソケットには、役割(
show::TileMap(imkit/show/led.h): LEDウォールのようなタイル状の表示装置を、パネル1枚を1マスとして描きます。マスは、給電するデータポートや電源回路のグループごとに色分けし、グループ内をorderの順に線で結んでケーブルの順序を示します。ホストは、ポインタが乗ったマスとクリックしたマスを受け取り、ツールチップを自分で描きます。Theme::layout(LayoutTokens): コントロールの高さ、間隔、余白、部品ごとの高さの比率を、密度とは別に上書きします。未指定の項目は密度の値のままなので、既存のテーマの見た目は変わりません。Sprite、SpriteSheet、SpriteState(imkit/decor.h): ホストが所有する1枚のテクスチャに並べた、同じ大きさのコマのシートを再生します(Loop、Once、HoldLast)。ProgressTrackView::thumbは、トラックの矩形と先頭の位置をホストへ渡し、進捗の塗りの先端に画像を描けるようにします。PtzView::capabilities(PtzCapabilities): カメラが持たない操作(パン、チルト、ズーム、ホーム、プリセット、プリセットの保存、速度)を隠します。どのフィールドも、既定値はtrueです。- 修正: 本体に項目を1つも置かないノード(ロックされた空のノードなど)で、Dear ImGuiのカーソル拡張のアサートが出なくなりました。
4.0から更新するとき
- アプリと、リンクするすべてのImKitライブラリを、4.1のヘッダーで再ビルドします。4.0のオブジェクトと4.1の構造体を混ぜると、構造体の配置が食い違います。
find_package(imkit 4.1 CONFIG REQUIRED)を指定します。4.0を要求しても、4.1.xにはマッチしません。- ノードエディタを使う場合は、新しい既定の見た目を確認します。
style.linkColor = LinkColorSource::Accentとstyle.status = StatusDisplay::Alwaysで、4.0の配線の色とステータス行に戻せます。そのほかの違いには、切り替えがありません。16単位のRerouteのノット、未接続の必須入力の印、ピル形の配線ラベル、ズームに合わせて大きさが変わるリサイズのつまみです。移行ガイドに一覧があります。
コントロールの寸法、色、動きは変わりません。
配布物
| ファイル | 内容 |
|---|---|
imgui-modern-kit-4.1.0-Windows-x64.zip、-Windows-arm64.zip |
Windows向けのSDKとGallery |
imgui-modern-kit-4.1.0-Darwin-arm64.zip、-Darwin-x86_64.zip、-Darwin-universal2.zip |
macOS向けのSDKとGallery(署名・公証なし) |
imkit-v4.1.0-source.zip |
リリースコミットのソース |
imkit-v4.1.0-validation-evidence.zip、imkit-v4.1.0-manifest.json、SHA256SUMS |
検証の記録、マニフェスト、チェックサム |
動画の音楽は、Kevin MacLeod ft. DarkNES「Laserpack」(incompetech.com)で、CC BY 4.0です。
検証
CIが、リリースコミットで、5つのパッケージすべてのビルド、テスト、パッケージ化を行い、それぞれで利用側の確認を実行しました。GalleryのpublicなIOの検証(45項目)は、Windows x64 Debugで通りました。これらの検査は、物理の入力機器、ネイティブIME、スクリーンリーダー、複数DPI、他社ホスト、macOSの公証を対象にしていません。