MyGit

v1.89.9

ocornut/imgui

版本发布时间: 2023-09-04 21:24:26

ocornut/imgui最新发布版本:v1.90.5(2024-04-11 22:25:22)

1.89.9: September release! 🌲

Reading the changelog is a good way to keep up to date with the things Dear ImGui has to offer, and maybe will give you ideas of some features that you've been ignoring until now!

📣 Click version number above to display full release note contents, sometimes randomly clipped by GitHub..


Homepage: https://github.com/ocornut/imgui Release notes: https://github.com/ocornut/imgui/releases FAQ: https://www.dearimgui.com/faq/ Getting Started: https://github.com/ocornut/imgui/wiki/Getting-Started Issues: https://github.com/ocornut/imgui/issues

Did you know? We have a Wiki! It has sections such as this Getting Started and Useful Extensions Gallery! 👌

Thank you! ❤️

Dear ImGui is funded by your contributions and needs them to sustain and grow. We can do regular B2B Invoicing. If your company uses Dear ImGui, consider reaching out. See Sponsors page for details.

Ongoing work on Dear ImGui is currently financially supported by:

Special thanks to @GamingMinds-DanielC, @sakiodre, @PathogenDavid for their help with github answers.

Reaching 50000 GitHub stars: (49993 as I'm typing those words) image

Huge thank you to all past and present supporters! Also thanks to PVS Studio (great static analyzer) for providing us with a license for this project.

Changes

This is a followup to v1.89, v1.89.1, v1.89.2, v1.89.3, v1.89.4, v1.89.5, v1.89.6, v1.89.7, v1.89.8. We are trying to make more frequent releases. Because: some people are relying on tagging and auto-generated bindings for other languages. And: it sets a beat and may encourage teams to update more frequently.

I have been stubbornly deferring tagging 1.90 for while because I wanted to include the range-select feature in it, but it's not done... But there are about 650 lines of changelog between 1.89 and 1.89.9.

Breaking Changes:

Other Changes:

image

Changes from 1.89.8 to 1.89.9 related to the docking branch (multi-viewport and docking features):

Changes from 1.89.8 to 1.89.9 related to the prototype range-select branch:

This is a new API that hasn't been discussed much in public yet. Ignore if you are not one of the few users. If you happen to be using this please do get in contact. I know I said this API would have been stabilized by now, but it's not! I expect to make some more changes before 1.90. Hopefully this is on track to be stable and merged in 1.90.

Open for details of MultiSelect changes
  • RangeSelect/MultiSelect: (BREAKING) Renamed SetNextItemSelectionData() to SetNextItemSelectionUserData().

  • RangeSelect/MultiSelect: (BREAKING) Use ImGuiSelectionUserData type (= ImS64) instead of void* for selection user data.

  • RangeSelect/MultiSelect: (BREAKING) RequestSetRange's parameter are RangeFirstItem...RangeLastItem (which are always ordered, unlike RangeSrcItem...RangeDstItem). Removed RangeDstItem. Removed RangeDirection.

  • RangeSelect/MultiSelect: (BREAKING) Removed RangeSrcPassedBy in favor of favoring user to call IncludeByIndex(RangeSrcItem) which is easier/simpler to honor.

  • RangeSelect/MultiSelect: (BREAKING) Renamed ImGuiMultiSelectFlags_NoMultiSelect to ImGuiMultiSelectFlags_SingleSelect as it seems easier to grasp + fixed behavior.

  • RangeSelect/MultiSelect: Added ImGuiMultiSelectFlags_SelectOnClickRelease to allow dragging an unselected item without altering selection + update drag and drop demo.

  • RangeSelect/MultiSelect: Assert if SetNextItemSelectionUserData() is called not in the context of a BeginMultiSelect() block.

  • RangeSelect/MultiSelect: Tweak debug log to print decimal+hex values for item data.

  • RangeSelect/MultiSelect: Clear selection when leaving a scope with a nav directional request (may make optional).

  • RangeSelect/MultiSelect: Demo: Assets Browser: Added assets browser demo.

  • RangeSelect/MultiSelect: Demo: Dual List Box: Added simple dual list box demo. (#6648)

  • RangeSelect/MultiSelect: Demo: added simpler demo using Clipper. Clarify RangeSrcPassedBy doc.

  • RangeSelect/MultiSelect: Demo: rework ExampleSelection with an ExampleSelectionAdapter layer, allowing to share more code across examples using different storage design.

  • RangeSelect/MultiSelect: Demo: rework deletion demo code.

    Previously:

    ImGui::SetNextItemSelectionData((void*)(intptr_t)idx);
    

    Now:

    ImGui::SetNextItemSelectionUserData(idx); 
    

    Previously:

    if (ms_io->RequestSetRange)
    {
        int first = (int)ms_io->RangeSrcItem;
        int last = (int)ms_io->RangeDstItem
        if (first > last)
            swap(first, last);
        for (int idx = first; idx <= last; idx++)
            SetSelection(idx, ms_io->RangeSelected);
    }
    

    Now:

    if (ms_io->RequestSetRange)
        for (int idx = ms_io->RangeFirstItem; idx <= ms_io->RangeLastItem; idx++)
            SetSelection(idx, ms_io->RangeSelected);
    

    Previously: (required inside loop and after loop, when using clipper)

     if (!ms_io->RangeSrcPassedBy && clipper.DisplayStart > ms_io->RangeSrcItem)
         ms_io->RangeSrcPassedBy = true;
    

    Now:

     if (ms_io->RangeSrcItem != -1)
         clipper.IncludeItemByIndex((int)ms_io->RangeSrcItem); // Ensure RangeSrc item is not clipped.
    

New exciting projects!

Since 1.89 we semi-sneakily soft launched two new entire projects!

Dear ImGui Automation/Test Engine & Test Suite https://github.com/ocornut/imgui_test_engine

Dear Bindings: alternative binding generator for C and other languages by @ShironekoBen (as an alternative to good old cimgui). https://github.com/dearimgui/dear_bindings

Gallery

Below a selection of screenshots from Gallery threads...

@simco50: "A simple CPU/GPU profiler with a timeline UI having both CPU and GPU tracks in the same synchronized view. Continuously records and saves N frames and can be paused to analyze." https://github.com/simco50/TimelineProfiler

TimelineProfiler

Intel XeSS Demo https://github.com/intel/xess 260038114-2b8c0114-2f37-4cbb-87c5-1a85d77b23cd

PrusaSlicer (Prusa Slic3r) using Dear ImGui within their 3d viewport: https://www.prusa3d.com/page/prusaslicer_424/ Slic3r

@samuel-watson: "This is a non-game related example. Dear ImGui is used as the GUI for a scientific application to support the design of cluster randomised trials (a type of experimental design). [...] It runs in the browser and is compiled using Emscripten to generate the html, JS, and WASM files. " The app is currently hosted at https://www.clustertrial.app/ and the code is available at the GitHub repo. clusterapp_screenshot

@lukaasm: "Next addition to our game/engine tooling suite: ParticleEditor ( based on modified version of https://github.com/thedmd/imgui-node-editor )" ParticleEditor

@rodan: "Magic Carpet 2 porting effort." https://github.com/rodan/magic_carpet_2 mc2

@cfnptr: "Screenshot from my pet game engine editor. With a visual studio code inspired theme :)" Screenshot from 2023-08-18 15-40-41

YAZE (Yet Another Zelda3 Editor) by @scawful https://github.com/scawful/yaze yaze-01

Property Watcher: A runtime variable watch window for Unreal Engine using ImGui, by @guitarfreak https://github.com/guitarfreak/PropertyWatcher 263518750-2d26cc5b-a054-4200-ac5c-80d698e44d73


Also see previous releases details. Note that GitHub are now clamping release notes sometimes really badly, click on a header/title to read full notes

相关地址:原始地址 下载(tar) 下载(zip)

查看:2023-09-04发行的版本