Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

map imgui_internal.h, integrations #7

Closed
dcnieho opened this issue Oct 12, 2022 · 14 comments
Closed

map imgui_internal.h, integrations #7

dcnieho opened this issue Oct 12, 2022 · 14 comments
Labels
faq A frequent issue, remaining opened to facilitate discoverability

Comments

@dcnieho
Copy link
Contributor

dcnieho commented Oct 12, 2022

Hi! I just came across this project and really like where it is heading. I'm currently using pyimgui and its not fully feature complete (complete enough that its only a minor inconvenience) and more importantly many releases behind. Since its all manual effort, this trouble likely remains.

Your effort here looks like a really good idea. Direct port (so no own flavor) of the great imgui, yet in a way that you can somewhat easily stay up to date with releases and various branches (docking!). Nice. And keeping all the docs intact, very nice.

I had some thoughts, perhaps some are just wrong because i'm not an expert on all of this.

Maybe i have missed it when looking around, but could you map imgui_internal.h as well (perhaps i missed it when having a look)? This is important for users of imgui who want to customize a little further, from something as simple as setting an item as disabled, imgui.internal.push_item_flag(imgui.internal.ITEM_DISABLED, True), to building your whole own widgets. I like the idea of exposing that through a submodule like pyimgui does (see above example).

Second, since i already have a working program using pyimgui (not yet on github), i'm at this stage firstly interested in getting the imgui bit of this effort. I think that means i would need the integrations bit (e.g. the glfw+opengl backend, though others may want to use one of the other backends). Is that something you envision providing? I guess they can't simply be autogenerated since one would have to mix and match a bit (like a C++ consumer of dear imgui would include imgui_impl_glfw.cpp/.h and imgui_impl_opengl3.cpp/.h in their program)? Or should this instead be converted to pure Python somehow? On a related note, i would also be cool to convert the demo window to pure python, so the whole autogenerated lib can be tested there, visually.

Lastly, for the future, this nicely makes it relatively easy to wrap other libraries like you show with implot. It might be worth thinking about how that can be scalably provided, if you are interested. That people could add imnodes, one of the various file dialogues, etc. Perhaps through syntax like pip install lg_imgui_bundle[imgui,implot,imnodes,xxx], selecting which they want. This repo can then provide the various submodules, kinda like vcpkg does. I'm viewing this from a high level, i'm not familiar with the intricacies of how to achieve that. Worth thinking about though, i think.

Thanks for the great and interesting work!

@pthom
Copy link
Owner

pthom commented Oct 12, 2022

It's nice that you found this repository, since I did not communicate about it yet :-) I think you are the first one to discover it.

Your effort here looks like a really good idea. Direct port (so no own flavor) of the great imgui, yet in a way that you can somewhat easily stay up to date with releases and various branches (docking!). Nice. And keeping all the docs intact, very nice.

Yes, keeping the code layout and its doc was a main feature. I will communicate about the autogenerator in a few weeks.

Maybe i have missed it when looking around, but could you map imgui_internal.h as well

I will have a look at it a bit later.

I think that means i would need the integrations bit (e.g. the glfw+opengl backend, though others may want to use one of the other backends). Is that something you envision providing?

Actually, I do provide a backend via HelloImGui a library that I wrote.
I you run pip install ., then python playground/demodocking.py you should see a running port of one helloimgui example. Its backend uses glfw3 + OpenGL3.

If you have time, could you try that and tell me if it works on your side?

That people could add imnodes, one of the various file dialogues, etc. Perhaps through syntax like pip install lg_imgui_bundle[imgui,implot,imnodes,xxx], selecting which they want. This repo can then provide the various submodules, kinda like vcpkg does.

Yes, it is part of the intent !

Note:
I have not yet decided about the settings of the code generation for imgui, so the API might change in the future on the following aspects:

  • Should it use snake_case or not
  • How to handle modified values:
    presently I have to possibilities when porting say
bool SliderInt(char* label, int *value)

Either I "Box" the int, like this:

class BoxedInt 
    value: int

def slider_int(label: str, value: BoxedInt) -> bool:
    pass

or, I transmit the value by returning a tuple like this.

def slider_int(label: str, value: int) -> Tuple[bool, int]:
    pass

Presently the generated code uses snake cases, and transmits modifications via a tuple (in order to mimic pyimgui)

@dcnieho
Copy link
Contributor Author

dcnieho commented Oct 13, 2022

Hehe, i was reading pull requests at pyimgui, saw your work, checked out your projects, ended up here.

I see that you have already added mapping for imgui_internal. Super! Nice this auto-gen :)

I have tested. I'm running 3.10.7 on Windows 10. Just a clean venv, pip install . and run the demo, it all seems to work very well!

Super to hear that you are planning to make this extensible with more and more submodules. Hopefully that'll be a reasonable undertaking for you as main maintainer, since its all autogenerated.

I like the pyimgui compatibility, not only because that's where a bunch of your first customers will likely come from, but also because its more pythonic. The transformations compared to the C++ source are simple, rule-based and therefore predictable for the end user. So snake_case is a good idea. If i understand boxing correctly, then this is basically acting like a reference, modifying the value in-place, correct? There too it may be more pythonic to return the new value, a Python programmer wouldn't expect their values to be changed from underneath them.

I looked a bit at that last commit, and saw some things:
in pybind_imgui.cpp there are two typos/mis_auto_snake_casing:
color_convert_rg_bto_hsv
color_convert_hs_vto_rgb

imgui.pyi has the following imports

from enum import Enum
import enum

choose one?

I'll have a better look at HelloImGui next time i work on my C++ code again (totally different project). That may well be quite some months in the future :)

But i am planning to start working on a second python program using imgui probably next month. By when do you think this is reasonably stable (in terms of naming and such at least) so that i can start using it?

Thanks again for some really cool work!

@pthom
Copy link
Owner

pthom commented Oct 26, 2022

Hi,

I just released some ImGui Bundle v0.6.4. I think the API is now stable.
Could you give it a try and share with me some feedback on how the install went (which platform, did it install as a wheel from Pypi, etc).

@dcnieho
Copy link
Contributor Author

dcnieho commented Oct 31, 2022

Thanks!
I pip-installed on Windows 10, Python 3.10 in a clean venv. That worked without a hitch.
Then i copied all of \bindings\imgui_bundle\demos and ran the various files. Some did nothing and i see they have no main, so i guess thats expected.

  • running demo_widgets.py leaves an endless stream of ImGuiMd::Render : Markdown was not initialized! in my cmd. Same for demo_imgui_color_text_edit.py
  • running demo_imgui_md.py and clicking the image leads to ImGuiMd::OnOpenLink_Default url should start with http! That also happens when running inside demo_all.py
  • running demo_all.py and going to the Dear ImGui Demo, the headline only reads Dear ImGui Demo wi, i guess wi should be window?

So all in all, this is working super well!

@dcnieho
Copy link
Contributor Author

dcnieho commented Oct 31, 2022

Whoops, too fast, forgot to write about one larger issue. that HiDPI support. I saw your fac, but changing the global font scale (using the view menu in demo_all) leads to an ugly result: very blurry text.
Here's how i solved it in a my own imgui+glfw c++ program.

// 1. before opening the glfw window
float highDPIscaleFactor = 1.0;
float xscale, yscale;
glfwGetMonitorContentScale(glfwGetPrimaryMonitor(), &xscale, &yscale);
if (xscale > 1 || yscale > 1) {
    highDPIscaleFactor = xscale;
    glfwWindowHint(GLFW_SCALE_TO_MONITOR, GLFW_TRUE);
}

// 2. after creating imgui context (and before setup Platform/Renderer bindings, but i'm not sure if that's important)
if (highDPIscaleFactor > 1.f) {
    ImGuiStyle& style = ImGui::GetStyle();
    style.ScaleAllSizes(highDPIscaleFactor);
}

This of course does not handle the case of dragging the gui between screens with different dpi, but its something at least. I solved that as well in a pyimgui program, as follows:
I store the scaling of the monitor the window opened on and a ref to the monitor in question. Whenever the window is moved i check in a glfw position callback if it has been moved to a different monitor and if so, if the scaling of that monitor is different:

def pos_callback(self, window: glfw._GLFWwindow, x: int, y: int):
        if not glfw.get_window_attrib(self.window, glfw.ICONIFIED):
            self.screen_pos = (x, y)

            # check if we moved to another monitor
            mon, mon_id = utils.get_current_monitor(*self.screen_pos, *self.screen_size)
            if mon_id != self.monitor:
                self.monitor = mon_id
                # update scaling
                xscale, yscale = glfw.get_monitor_content_scale(mon)
                if scale := max(xscale, yscale):
                    self.size_mult = scale
                    # resize window if needed
                    if self.size_mult != self.last_size_mult:
                        self.new_screen_size = int(self.screen_size[0]/self.last_size_mult*self.size_mult), int(self.screen_size[1]/self.last_size_mult*self.size_mult)

# utils.get_current_monitor:
def get_current_monitor(wx, wy, ww, wh):
    import ctypes
    # so we always return something sensible
    monitor = glfw.get_primary_monitor()
    bestoverlap = 0
    for mon in glfw.get_monitors():
        monitor_area = glfw.get_monitor_workarea(mon)
        mx, my = monitor_area[0], monitor_area[1]
        mw, mh = monitor_area[2], monitor_area[3]

        overlap = \
            max(0, min(wx + ww, mx + mw) - max(wx, mx)) * \
            max(0, min(wy + wh, my + mh) - max(wy, my))
        
        if bestoverlap < overlap:
            bestoverlap = overlap
            monitor = mon

    return monitor, ctypes.cast(ctypes.pointer(monitor), ctypes.POINTER(ctypes.c_long)).contents.value

Then whenever the scale changes (self.size_mult != self.last_size_mult) in my main loop, i set the scaling with a manual port of style.ScaleAllSizes to python since pyimgui hasn't wrapped that function, and i reload my fonts at scaling*<some base size>, so they look crisp and clear.

@pthom
Copy link
Owner

pthom commented Oct 31, 2022

Thank you very much for the detailed feedback. This is very useful to me. I'll come back to you in a few days

@pthom
Copy link
Owner

pthom commented Nov 15, 2022

Hello,

Version v0.6.5 is available.
It solves the HiDPI issue (but not when moving windows from monitor to monitor).

It also solves the demo issues you mentioned, and adds lots of goodies.

@dcnieho
Copy link
Contributor Author

dcnieho commented Nov 15, 2022

Hi! I have 0.6.5 pip-installed in Python 3.10.7, Windows 10.

I tried running some demos included in the distribution, in the demos subfolder (so from \venv\Lib\site-packages\imgui_bundle\demos). They don't work, I see for instance the following when i run demo_node_editor.py:
image
If you look carefully you see something, but doesn't look right at all.

For good measure i've tried a complete clean venv, same result.

@pthom
Copy link
Owner

pthom commented Nov 15, 2022

Ohhhhh...

On my side, it does works, but I cannot fully reproduce your environment, since my Windows machine is actually a Windows ARM version (I'm running on a Mac M1 with parallels).

Could you try to install from source and tell me if that works. I'm very interested in the results, and I would prefer it fail also in source mode, so that we can investigate.

Could you please try this:

  1. Clone
git clone https://github.com/pthom/imgui_bundle.git
cd imgui_bundle
git checkout v0.6.5
git submodule update --init --recursive
  1. Test if the C++ side also fails:
mkdir build
cd build
cmake ..

Then, open build/imgui_bundle.sln and build it (on my side, I build a windows ARM64 version. Your binaries will differ from mine).

Build it, and try the 5 demo_xxx projects. Please tell me if they work or not.

  1. Test if the python bindings work:
pip install -v .
imgui_bundle_demo
  1. Things you can try:
  • Maybe a reboot (if you are unlucky enough to have a GPU that needs a reboot)
  • In the C++ version, try with Sdl instead of Glfw:
    Edit demos_cpp\demo_imgui_node_editor\demo_imgui_node_editor.main.cpp and add runnerParams.backendType = HelloImGui::BackendType::Sdl; just before calling Run:
    runnerParams.backendType = HelloImGui::BackendType::Sdl;

    HelloImGui::Run(runnerParams);
    return 0;
}
  • Revert the change that I added in order to take into account HiDPI
    external\hello_imgui\src\hello_imgui\internal\backend_impls\abstract_runner.cpp, line 128
    // High DPI handling on windows & linux
    // cf https://github.com/pthom/imgui_bundle/issues/7
    {
        float scaleFactor = mBackendWindowHelper->GetWindowDpiScaleFactor(mWindow);
        params.appWindowParams.outWindowDpiFactor = scaleFactor;
        if (scaleFactor > 1.f)
        {
            ImGuiStyle& style = ImGui::GetStyle();
            style.ScaleAllSizes(scaleFactor);
        }
    }

and then, try to run again the C++ demos.

Any info from your side will greatly interest me!

@dcnieho
Copy link
Contributor Author

dcnieho commented Nov 15, 2022

I followed your steps and compiled with this in release mode:

-- Building for: Visual Studio 17 2022
-- Selecting Windows SDK version 10.0.20348.0 to target Windows 10.0.19045.
-- The C compiler identification is MSVC 19.33.31630.0
-- The CXX compiler identification is MSVC 19.33.31630.0

Four of the c++ demos work fine (fonts are nice and crisp and properly sized on my screen with 250% scaling!) except some small cosmetic issues:

  • the node editor demo, when first opened, is zoomed into the two nodes like crazy, their text is huge and together they fill almost the whole window. Zooming out things look good. The status bar text is properly scaled, so its just that viewer
  • the text editor: when hovering the scroll bars the text input caret cursor remains like i am hovering over the text, instead of normal pointer cursor you'd expect when hovering scrollbars

The demo_implot_markdown however shows the same pretty much black screen.

  1. pip install in a clean venv failed:
Build log:
(venv) C:\Users\huml-dkn\Desktop\imgui_bundle>pip install -v .
Using pip 22.2.2 from C:\Users\huml-dkn\Desktop\imgui_bundle\venv\lib\site-packages\pip (python 3.10)
Processing c:\users\huml-dkn\desktop\imgui_bundle
  Running command pip subprocess to install build dependencies
  Ignoring ninja: markers 'platform_system != "Windows"' don't match your environment
  Collecting setuptools>=42
    Downloading setuptools-65.5.1-py3-none-any.whl (1.2 MB)
       ---------------------------------------- 1.2/1.2 MB 15.7 MB/s eta 0:00:00
  Collecting wheel
    Downloading wheel-0.38.4-py3-none-any.whl (36 kB)
  Collecting pybind11>=2.9.2
    Downloading pybind11-2.10.1-py3-none-any.whl (216 kB)
       ---------------------------------------- 216.1/216.1 kB ? eta 0:00:00
  Collecting cmake>=3.22
    Downloading cmake-3.24.3-py2.py3-none-win_amd64.whl (31.5 MB)
       --------------------------------------- 31.5/31.5 MB 43.5 MB/s eta 0:00:00
  Collecting scikit-build>=0.14.1
    Downloading scikit_build-0.16.2-py3-none-any.whl (78 kB)
       ---------------------------------------- 78.1/78.1 kB ? eta 0:00:00
  Collecting patch>=1.16
    Downloading patch-1.16.zip (12 kB)
    Preparing metadata (setup.py): started
    Preparing metadata (setup.py): finished with status 'done'
  Collecting packaging
    Using cached packaging-21.3-py3-none-any.whl (40 kB)
  Collecting distro
    Using cached distro-1.8.0-py3-none-any.whl (20 kB)
  Collecting pyparsing!=3.0.5,>=2.0.2
    Using cached pyparsing-3.0.9-py3-none-any.whl (98 kB)
  Using legacy 'setup.py install' for patch, since package 'wheel' is not installed.
  Installing collected packages: patch, cmake, wheel, setuptools, pyparsing, pybind11, distro, packaging, scikit-build
    Running setup.py install for patch: started
    Running setup.py install for patch: finished with status 'done'
  Successfully installed cmake-3.24.3 distro-1.8.0 packaging-21.3 patch-1.16 pybind11-2.10.1 pyparsing-3.0.9 scikit-build-0.16.2 setuptools-65.5.1 wheel-0.38.4

  [notice] A new release of pip available: 22.2.2 -> 22.3.1
  [notice] To update, run: python.exe -m pip install --upgrade pip
  Installing build dependencies ... done
  Running command Getting requirements to build wheel
  running egg_info
  creating bindings\imgui_bundle.egg-info
  writing bindings\imgui_bundle.egg-info\PKG-INFO
  writing dependency_links to bindings\imgui_bundle.egg-info\dependency_links.txt
  writing entry points to bindings\imgui_bundle.egg-info\entry_points.txt
  writing requirements to bindings\imgui_bundle.egg-info\requires.txt
  writing top-level names to bindings\imgui_bundle.egg-info\top_level.txt
  writing manifest file 'bindings\imgui_bundle.egg-info\SOURCES.txt'
  reading manifest file 'bindings\imgui_bundle.egg-info\SOURCES.txt'
  adding license file 'LICENSE'
  writing manifest file 'bindings\imgui_bundle.egg-info\SOURCES.txt'
  Getting requirements to build wheel ... done
  Running command Preparing metadata (pyproject.toml)
  running dist_info
  creating C:\Users\huml-dkn\AppData\Local\Temp\pip-modern-metadata-63gdwgv8\imgui_bundle.egg-info
  writing C:\Users\huml-dkn\AppData\Local\Temp\pip-modern-metadata-63gdwgv8\imgui_bundle.egg-info\PKG-INFO
  writing dependency_links to C:\Users\huml-dkn\AppData\Local\Temp\pip-modern-metadata-63gdwgv8\imgui_bundle.egg-info\dependency_links.txt
  writing entry points to C:\Users\huml-dkn\AppData\Local\Temp\pip-modern-metadata-63gdwgv8\imgui_bundle.egg-info\entry_points.txt
  writing requirements to C:\Users\huml-dkn\AppData\Local\Temp\pip-modern-metadata-63gdwgv8\imgui_bundle.egg-info\requires.txt
  writing top-level names to C:\Users\huml-dkn\AppData\Local\Temp\pip-modern-metadata-63gdwgv8\imgui_bundle.egg-info\top_level.txt
  writing manifest file 'C:\Users\huml-dkn\AppData\Local\Temp\pip-modern-metadata-63gdwgv8\imgui_bundle.egg-info\SOURCES.txt'
  reading manifest file 'C:\Users\huml-dkn\AppData\Local\Temp\pip-modern-metadata-63gdwgv8\imgui_bundle.egg-info\SOURCES.txt'
  adding license file 'LICENSE'
  writing manifest file 'C:\Users\huml-dkn\AppData\Local\Temp\pip-modern-metadata-63gdwgv8\imgui_bundle.egg-info\SOURCES.txt'
  creating 'C:\Users\huml-dkn\AppData\Local\Temp\pip-modern-metadata-63gdwgv8\imgui_bundle-0.6.5.dist-info'
  Preparing metadata (pyproject.toml) ... done
Collecting numpy>=1.15
  Using cached numpy-1.23.4-cp310-cp310-win_amd64.whl (14.6 MB)
Collecting munch>=2.0.0
  Using cached munch-2.5.0-py2.py3-none-any.whl (10 kB)
Collecting six
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Building wheels for collected packages: imgui-bundle
  Running command Building wheel for imgui-bundle (pyproject.toml)


  --------------------------------------------------------------------------------
  -- Trying "Ninja (Visual Studio 17 2022 x64 v143)" generator
  --------------------------------
  ---------------------------
  ----------------------
  -----------------
  ------------
  -------
  --
  Not searching for unused variables given on the command line.
  -- The C compiler identification is MSVC 19.33.31630.0
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working C compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.33.31629/bin/Hostx86/x64/cl.exe - skipped
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- The CXX compiler identification is MSVC 19.33.31630.0
  CMake Warning (dev) at C:/Users/huml-dkn/AppData/Local/Temp/pip-build-env-kbp4ytft/overlay/Lib/site-packages/cmake/data/share/cmake-3.24/Modules/CMakeDetermineCXXCompiler.cmake:162 (if):
    Policy CMP0054 is not set: Only interpret if() arguments as variables or
    keywords when unquoted.  Run "cmake --help-policy CMP0054" for policy
    details.  Use the cmake_policy command to set the policy and suppress this
    warning.

    Quoted variables like "MSVC" will no longer be dereferenced when the policy
    is set to NEW.  Since the policy is not set the OLD behavior will be used.
  Call Stack (most recent call first):
    CMakeLists.txt:4 (ENABLE_LANGUAGE)
  This warning is for project developers.  Use -Wno-dev to suppress it.

  CMake Warning (dev) at C:/Users/huml-dkn/AppData/Local/Temp/pip-build-env-kbp4ytft/overlay/Lib/site-packages/cmake/data/share/cmake-3.24/Modules/CMakeDetermineCXXCompiler.cmake:183 (elseif):
    Policy CMP0054 is not set: Only interpret if() arguments as variables or
    keywords when unquoted.  Run "cmake --help-policy CMP0054" for policy
    details.  Use the cmake_policy command to set the policy and suppress this
    warning.

    Quoted variables like "MSVC" will no longer be dereferenced when the policy
    is set to NEW.  Since the policy is not set the OLD behavior will be used.
  Call Stack (most recent call first):
    CMakeLists.txt:4 (ENABLE_LANGUAGE)
  This warning is for project developers.  Use -Wno-dev to suppress it.

  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.33.31629/bin/Hostx86/x64/cl.exe - skipped
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- Configuring done
  -- Generating done
  -- Build files have been written to: C:/Users/huml-dkn/Desktop/imgui_bundle/_cmake_test_compile/build
  --
  -------
  ------------
  -----------------
  ----------------------
  ---------------------------
  --------------------------------
  -- Trying "Ninja (Visual Studio 17 2022 x64 v143)" generator - success
  --------------------------------------------------------------------------------

  Configuring Project
    Working directory:
      C:\Users\huml-dkn\Desktop\imgui_bundle\_skbuild\win-amd64-3.10\cmake-build
    Command:
      cmake 'C:\Users\huml-dkn\Desktop\imgui_bundle' -G Ninja '-DCMAKE_INSTALL_PREFIX:PATH=C:\Users\huml-dkn\Desktop\imgui_bundle\_skbuild\win-amd64-3.10\cmake-install\bindings\imgui_bundle' -DPYTHON_VERSION_STRING:STRING=3.10.7 -DSKBUILD:INTERNAL=TRUE '-DCMAKE_MODULE_PATH:PATH=C:\Users\huml-dkn\AppData\Local\Temp\pip-build-env-kbp4ytft\overlay\Lib\site-packages\skbuild\resources\cmake' '-DPYTHON_EXECUTABLE:PATH=C:\Users\huml-dkn\Desktop\imgui_bundle\venv\Scripts\python.exe' '-DPYTHON_INCLUDE_DIR:PATH=C:\Program Files\Python310\Include' '-DPYTHON_LIBRARY:PATH=C:\Program Files\Python310\libs\python310.lib' '-DPython_EXECUTABLE:PATH=C:\Users\huml-dkn\Desktop\imgui_bundle\venv\Scripts\python.exe' '-DPython_ROOT_DIR:PATH=C:\Users\huml-dkn\Desktop\imgui_bundle\venv' '-DPython_INCLUDE_DIR:PATH=C:\Program Files\Python310\Include' -DPython_FIND_REGISTRY:STRING=NEVER '-DPython3_EXECUTABLE:PATH=C:\Users\huml-dkn\Desktop\imgui_bundle\venv\Scripts\python.exe' '-DPython3_ROOT_DIR:PATH=C:\Users\huml-dkn\Desktop\imgui_bundle\venv' '-DPython3_INCLUDE_DIR:PATH=C:\Program Files\Python310\Include' -DPython3_FIND_REGISTRY:STRING=NEVER -DCMAKE_BUILD_TYPE:STRING=Release

  -- The C compiler identification is MSVC 19.33.31630.0
  -- The CXX compiler identification is MSVC 19.33.31630.0
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working C compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.33.31629/bin/Hostx86/x64/cl.exe - skipped
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.33.31629/bin/Hostx86/x64/cl.exe - skipped
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  'C:/Users/huml-dkn/Desktop/imgui_bundle/venv/Scripts/python.exe' '-c' 'import pybind11; print(pybind11.get_cmake_dir())'
  -- Found PythonInterp: C:/Users/huml-dkn/Desktop/imgui_bundle/venv/Scripts/python.exe (found suitable version "3.10.7", minimum required is "3.6")
  -- Found PythonLibs: C:/Program Files/Python310/libs/python310.lib
  -- Performing Test HAS_MSVC_GL_LTCG
  -- Performing Test HAS_MSVC_GL_LTCG - Success
  -- Found pybind11: C:/Users/huml-dkn/AppData/Local/Temp/pip-build-env-kbp4ytft/overlay/Lib/site-packages/pybind11/include (found version "2.10.1")
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
  -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
  -- Looking for pthread_create in pthreads
  -- Looking for pthread_create in pthreads - not found
  -- Looking for pthread_create in pthread
  -- Looking for pthread_create in pthread - not found
  -- Found Threads: TRUE
  -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
  -- Including Win32 support
  -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
  -- Looking for __GLIBC__
  -- Looking for __GLIBC__ - not found
  -- Looking for immintrin.h
  -- Looking for immintrin.h - found
  -- Looking for stdint.h
  -- Looking for stdint.h - found
  -- Performing Test HAVE_WIN32_CC
  -- Performing Test HAVE_WIN32_CC - Success
  -- Looking for d3d9.h
  -- Looking for d3d9.h - found
  -- Looking for d3d11_1.h
  -- Looking for d3d11_1.h - found
  -- Performing Test HAVE_D3D12_H
  -- Performing Test HAVE_D3D12_H - Success
  -- Looking for ddraw.h
  -- Looking for ddraw.h - found
  -- Looking for dsound.h
  -- Looking for dsound.h - found
  -- Looking for dinput.h
  -- Looking for dinput.h - found
  -- Looking for dxgi.h
  -- Looking for dxgi.h - found
  -- Performing Test HAVE_XINPUT_H
  -- Performing Test HAVE_XINPUT_H - Success
  -- Performing Test HAVE_XINPUT_GAMEPAD_EX
  -- Performing Test HAVE_XINPUT_GAMEPAD_EX - Failed
  -- Performing Test HAVE_XINPUT_STATE_EX
  -- Performing Test HAVE_XINPUT_STATE_EX - Failed
  -- Performing Test HAVE_WINDOWS_GAMING_INPUT_H
  -- Performing Test HAVE_WINDOWS_GAMING_INPUT_H - Success
  -- Looking for tpcshrd.h
  -- Looking for tpcshrd.h - found
  -- Looking for roapi.h
  -- Looking for roapi.h - found
  -- Looking for mmdeviceapi.h
  -- Looking for mmdeviceapi.h - found
  -- Looking for audioclient.h
  -- Looking for audioclient.h - found
  -- Looking for sensorsapi.h
  -- Looking for sensorsapi.h - found
  -- Looking for shellscalingapi.h
  -- Looking for shellscalingapi.h - found
  -- Found Git: C:/Program Files/Git/cmd/git.exe (found version "2.28.0.windows.1")
  --
  -- SDL2 was configured with the following options:
  --
  -- Platform: Windows-10.0.19045
  -- 64-bit:   TRUE
  -- Compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.33.31629/bin/Hostx86/x64/cl.exe
  -- Revision: SDL-release-2.24.0-614-g41d38c0f6
  --
  -- Subsystems:
  --   Atomic:  ON
  --   Audio:   ON
  --   Video:   ON
  --   Render:  ON
  --   Events:  ON
  --   Joystick:        ON
  --   Haptic:  ON
  --   Hidapi:  ON
  --   Power:   ON
  --   Threads: ON
  --   Timers:  ON
  --   File:    ON
  --   Loadso:  ON
  --   CPUinfo: ON
  --   Filesystem:      ON
  --   Sensor:  ON
  --   Locale:  ON
  --   Misc:    ON
  --
  -- Options:
  --   SDL2_DISABLE_INSTALL        (Wanted: ON): OFF
  --   SDL2_DISABLE_SDL2MAIN       (Wanted: OFF): OFF
  --   SDL2_DISABLE_UNINSTALL      (Wanted: OFF): OFF
  --   SDL_3DNOW                   (Wanted: ON): OFF
  --   SDL_ALSA                    (Wanted: OFF): OFF
  --   SDL_ALSA_SHARED             (Wanted: OFF): OFF
  --   SDL_ALTIVEC                 (Wanted: ON): OFF
  --   SDL_ARMNEON                 (Wanted: OFF): OFF
  --   SDL_ARMSIMD                 (Wanted: OFF): OFF
  --   SDL_ARTS                    (Wanted: OFF): OFF
  --   SDL_ARTS_SHARED             (Wanted: OFF): OFF
  --   SDL_ASAN                    (Wanted: OFF): OFF
  --   SDL_ASSEMBLY                (Wanted: ON): OFF
  --   SDL_ASSERTIONS              (Wanted: auto): auto
  --   SDL_BACKGROUNDING_SIGNAL    (Wanted: OFF): OFF
  --   SDL_CLOCK_GETTIME           (Wanted: OFF): OFF
  --   SDL_COCOA                   (Wanted: OFF): OFF
  --   SDL_DBUS                    (Wanted: OFF): OFF
  --   SDL_DIRECTFB                (Wanted: OFF): OFF
  --   SDL_DIRECTFB_SHARED         (Wanted: OFF): OFF
  --   SDL_DIRECTX                 (Wanted: ON): ON
  --   SDL_DISKAUDIO               (Wanted: ON): ON
  --   SDL_DUMMYAUDIO              (Wanted: ON): ON
  --   SDL_DUMMYVIDEO              (Wanted: ON): ON
  --   SDL_ESD                     (Wanted: OFF): OFF
  --   SDL_ESD_SHARED              (Wanted: OFF): OFF
  --   SDL_FOREGROUNDING_SIGNAL    (Wanted: OFF): OFF
  --   SDL_FUSIONSOUND             (Wanted: OFF): OFF
  --   SDL_FUSIONSOUND_SHARED      (Wanted: OFF): OFF
  --   SDL_GCC_ATOMICS             (Wanted: OFF): OFF
  --   SDL_HIDAPI                  (Wanted: ON): ON
  --   SDL_HIDAPI_JOYSTICK         (Wanted: ON): ON
  --   SDL_HIDAPI_LIBUSB           (Wanted: OFF): OFF
  --   SDL_IBUS                    (Wanted: OFF): OFF
  --   SDL_INSTALL_TESTS           (Wanted: OFF): OFF
  --   SDL_JACK                    (Wanted: OFF): OFF
  --   SDL_JACK_SHARED             (Wanted: OFF): OFF
  --   SDL_KMSDRM                  (Wanted: OFF): OFF
  --   SDL_KMSDRM_SHARED           (Wanted: OFF): OFF
  --   SDL_LIBC                    (Wanted: OFF): OFF
  --   SDL_LIBSAMPLERATE           (Wanted: OFF): OFF
  --   SDL_LIBSAMPLERATE_SHARED    (Wanted: OFF): OFF
  --   SDL_METAL                   (Wanted: OFF): OFF
  --   SDL_MMX                     (Wanted: ON): OFF
  --   SDL_NAS                     (Wanted: OFF): OFF
  --   SDL_NAS_SHARED              (Wanted: OFF): OFF
  --   SDL_OFFSCREEN               (Wanted: ON): ON
  --   SDL_OPENGL                  (Wanted: ON): ON
  --   SDL_OPENGLES                (Wanted: ON): ON
  --   SDL_OSS                     (Wanted: OFF): OFF
  --   SDL_PIPEWIRE                (Wanted: OFF): OFF
  --   SDL_PIPEWIRE_SHARED         (Wanted: OFF): OFF
  --   SDL_PTHREADS                (Wanted: OFF): OFF
  --   SDL_PTHREADS_SEM            (Wanted: OFF): OFF
  --   SDL_PULSEAUDIO              (Wanted: OFF): OFF
  --   SDL_PULSEAUDIO_SHARED       (Wanted: OFF): OFF
  --   SDL_RENDER_D3D              (Wanted: ON): ON
  --   SDL_RENDER_METAL            (Wanted: OFF): OFF
  --   SDL_RPATH                   (Wanted: OFF): OFF
  --   SDL_RPI                     (Wanted: OFF): OFF
  --   SDL_SNDIO                   (Wanted: OFF): OFF
  --   SDL_SNDIO_SHARED            (Wanted: OFF): OFF
  --   SDL_SSE                     (Wanted: ON): ON
  --   SDL_SSE2                    (Wanted: ON): ON
  --   SDL_SSE3                    (Wanted: ON): ON
  --   SDL_SSEMATH                 (Wanted: ON): OFF
  --   SDL_STATIC_PIC              (Wanted: OFF): OFF
  --   SDL_SYSTEM_ICONV            (Wanted: ON): OFF
  --   SDL_TESTS                   (Wanted: OFF): OFF
  --   SDL_VENDOR_INFO             (Wanted: ): OFF
  --   SDL_VIRTUAL_JOYSTICK        (Wanted: ON): ON
  --   SDL_VIVANTE                 (Wanted: OFF): OFF
  --   SDL_VULKAN                  (Wanted: ON): ON
  --   SDL_WASAPI                  (Wanted: ON): ON
  --   SDL_WAYLAND                 (Wanted: OFF): OFF
  --   SDL_WAYLAND_LIBDECOR        (Wanted: OFF): OFF
  --   SDL_WAYLAND_LIBDECOR_SHARED (Wanted: OFF): OFF
  --   SDL_WAYLAND_QT_TOUCH        (Wanted: OFF): OFF
  --   SDL_WAYLAND_SHARED          (Wanted: OFF): OFF
  --   SDL_X11                     (Wanted: OFF): OFF
  --   SDL_X11_SHARED              (Wanted: OFF): OFF
  --   SDL_X11_XCURSOR             (Wanted: OFF): OFF
  --   SDL_X11_XDBE                (Wanted: OFF): OFF
  --   SDL_X11_XFIXES              (Wanted: OFF): OFF
  --   SDL_X11_XINPUT              (Wanted: OFF): OFF
  --   SDL_X11_XRANDR              (Wanted: OFF): OFF
  --   SDL_X11_XSCRNSAVER          (Wanted: OFF): OFF
  --   SDL_X11_XSHAPE              (Wanted: OFF): OFF
  --   SDL_XINPUT                  (Wanted: ON): ON
  --
  --  CFLAGS:        /DWIN32 /D_WINDOWS
  --  EXTRA_CFLAGS:
  --  EXTRA_LDFLAGS:
  --  EXTRA_LIBS:    user32;gdi32;winmm;imm32;ole32;oleaut32;version;uuid;advapi32;setupapi;shell32;dinput8
  --
  --  Build Shared Library: OFF
  --  Build Static Library: ON
  --  Build Static Library with Position Independent Code: OFF
  --
  ccache not found cannot use
  -- Library hello_imgui
  -- Configuring done
  -- Generating done
  CMake Warning:
    Manually-specified variables were not used by the project:

      Python3_EXECUTABLE
      Python3_FIND_REGISTRY
      Python3_INCLUDE_DIR
      Python3_ROOT_DIR
      Python_EXECUTABLE
      Python_FIND_REGISTRY
      Python_INCLUDE_DIR
      Python_ROOT_DIR


  -- Build files have been written to: C:/Users/huml-dkn/Desktop/imgui_bundle/_skbuild/win-amd64-3.10/cmake-build
  [1/394] Building CXX object CMakeFiles\imgui_toggle.dir\external\imgui_toggle\imgui_toggle.cpp.obj
  [2/394] Building CXX object CMakeFiles\imgui_knobs.dir\external\imgui-knobs\imgui-knobs.cpp.obj
  [3/394] Building CXX object CMakeFiles\imgui_node_editor.dir\external\imgui-node-editor\imgui_canvas.cpp.obj
  [4/394] Building CXX object CMakeFiles\imgui.dir\external\imgui\misc\cpp\imgui_stdlib.cpp.obj
  [5/394] Building C object external\glfw\src\CMakeFiles\glfw.dir\context.c.obj
  [6/394] Building C object external\glfw\src\CMakeFiles\glfw.dir\platform.c.obj
  [7/394] Building C object external\glfw\src\CMakeFiles\glfw.dir\input.c.obj
  [8/394] Building CXX object CMakeFiles\imspinner.dir\external\imspinner\imspinner.cpp.obj
  [9/394] Building C object external\glfw\src\CMakeFiles\glfw.dir\window.c.obj
  [10/394] Building C object external\glfw\src\CMakeFiles\glfw.dir\init.c.obj
  [11/394] Building C object external\glfw\src\CMakeFiles\glfw.dir\vulkan.c.obj
  [12/394] Building C object external\glfw\src\CMakeFiles\glfw.dir\osmesa_context.c.obj
  [13/394] Building CXX object CMakeFiles\implot.dir\external\implot\implot_demo.cpp.obj
  [14/394] Building CXX object CMakeFiles\imgui.dir\external\imgui\imgui_tables.cpp.obj
  [15/394] Building C object external\glfw\src\CMakeFiles\glfw.dir\win32_init.c.obj
  [16/394] Building C object external\glfw\src\CMakeFiles\glfw.dir\egl_context.c.obj
  [17/394] Building C object external\glfw\src\CMakeFiles\glfw.dir\monitor.c.obj
  [18/394] Building C object external\glfw\src\CMakeFiles\glfw.dir\wgl_context.c.obj
  [19/394] Building C object external\glfw\src\CMakeFiles\glfw.dir\win32_monitor.c.obj
  [20/394] Building CXX object CMakeFiles\imgui_node_editor.dir\external\imgui-node-editor\imgui_node_editor_api.cpp.obj  [21/394] Building CXX object CMakeFiles\imgui.dir\external\imgui\imgui_draw.cpp.obj
  [22/394] Building CXX object CMakeFiles\imgui_node_editor.dir\external\imgui-node-editor\crude_json.cpp.obj
  [23/394] Building C object external\glfw\src\CMakeFiles\glfw.dir\win32_time.c.obj
  [24/394] Building C object external\glfw\src\CMakeFiles\glfw.dir\win32_joystick.c.obj
  [25/394] Building C object external\glfw\src\CMakeFiles\glfw.dir\null_window.c.obj
  [26/394] Building C object external\glfw\src\CMakeFiles\glfw.dir\win32_window.c.obj
  [27/394] Building C object external\glfw\src\CMakeFiles\glfw.dir\null_monitor.c.obj
  [28/394] Building C object external\glfw\src\CMakeFiles\glfw.dir\win32_thread.c.obj
  [29/394] Generating include/SDL_hidapi.h
  [30/394] Building C object external\glfw\src\CMakeFiles\glfw.dir\null_init.c.obj
  [31/394] Building C object external\glfw\src\CMakeFiles\glfw.dir\win32_module.c.obj
  [32/394] Generating include/SDL_copying.h
  [33/394] Building CXX object CMakeFiles\imgui.dir\external\imgui\imgui_widgets.cpp.obj
  [34/394] Generating include/SDL_error.h
  [35/394] Generating include/SDL_clipboard.h
  [36/394] Building C object external\glfw\src\CMakeFiles\glfw.dir\null_joystick.c.obj
  [37/394] Generating include/SDL_events.h
  [38/394] Generating include/SDL_egl.h
  [39/394] Generating include/SDL_filesystem.h
  [40/394] Generating include/SDL_endian.h
  [41/394] Generating include/SDL_cpuinfo.h
  [42/394] Generating include/SDL_haptic.h
  [43/394] Generating include/SDL_guid.h
  [44/394] Generating include/SDL_blendmode.h
  [45/394] Generating include/SDL_gesture.h
  [46/394] Generating include/SDL_assert.h
  [47/394] Linking C static library external\glfw\src\glfw3.lib
  [48/394] Generating include/SDL.h
  [49/394] Generating include/SDL_audio.h
  [50/394] Generating include/SDL_atomic.h
  [51/394] Generating include/SDL_gamecontroller.h
  [52/394] Generating include/SDL_main.h
  [53/394] Generating include/SDL_bits.h
  [54/394] Generating include/SDL_locale.h
  [55/394] Generating include/SDL_keyboard.h
  [56/394] Generating include/SDL_hints.h
  [57/394] Generating include/SDL_loadso.h
  [58/394] Generating include/SDL_keycode.h
  [59/394] Building CXX object CMakeFiles\implot.dir\external\implot\implot.cpp.obj
  [60/394] Generating include/SDL_joystick.h
  [61/394] Generating include/SDL_mutex.h
  [62/394] Generating include/SDL_log.h
  [63/394] Generating include/SDL_messagebox.h
  [64/394] Generating include/SDL_metal.h
  [65/394] Generating include/SDL_name.h
  [66/394] Generating include/SDL_misc.h
  [67/394] Generating include/SDL_opengl_glext.h
  [68/394] Generating include/SDL_mouse.h
  [69/394] Generating include/SDL_opengl.h
  [70/394] Generating include/SDL_opengles2.h
  [71/394] Generating include/SDL_opengles.h
  [72/394] Generating include/SDL_opengles2_gl2ext.h
  [73/394] Generating include/SDL_opengles2_khrplatform.h
  [74/394] Generating include/SDL_opengles2_gl2platform.h
  [75/394] Generating include/SDL_power.h
  [76/394] Generating include/SDL_quit.h
  [77/394] Generating include/SDL_platform.h
  [78/394] Generating include/SDL_rect.h
  [79/394] Building CXX object CMakeFiles\imgui.dir\external\imgui\imgui_demo.cpp.obj
  [80/394] Generating include/SDL_opengles2_gl2.h
  [81/394] Generating include/SDL_pixels.h
  [82/394] Generating include/SDL_rwops.h
  [83/394] Generating include/SDL_shape.h
  [84/394] Generating include/SDL_system.h
  [85/394] Generating include/SDL_syswm.h
  [86/394] Generating include/SDL_scancode.h
  [87/394] Generating include/SDL_sensor.h
  [88/394] Generating include/SDL_surface.h
  [89/394] Generating include/SDL_render.h
  [90/394] Building CXX object CMakeFiles\imgui_color_text_edit.dir\external\ImGuiColorTextEdit\TextEditor.cpp.obj
  [91/394] Generating include/SDL_test_compare.h
  [92/394] Generating include/SDL_stdinc.h
  [93/394] Generating include/SDL_test_fuzzer.h
  [94/394] Generating include/SDL_test_common.h
  [95/394] Generating include/SDL_test_harness.h
  [96/394] Generating include/SDL_test_assert.h
  [97/394] Generating include/SDL_test.h
  [98/394] Generating include/SDL_test_images.h
  [99/394] Generating include/SDL_test_crc32.h
  [100/394] Generating include/SDL_test_md5.h
  [101/394] Generating include/SDL_test_random.h
  [102/394] Generating include/SDL_test_memory.h
  [103/394] Generating include/SDL_version.h
  [104/394] Generating include/SDL_timer.h
  [105/394] Generating include/SDL_thread.h
  [106/394] Generating include/SDL_types.h
  [107/394] Generating include/SDL_test_font.h
  [108/394] Generating include/SDL_touch.h
  [109/394] Generating include/begin_code.h
  [110/394] Generating include/SDL_test_log.h
  [111/394] Generating include/close_code.h
  [112/394] Generating include/SDL_video.h
  [113/394] Generating include/SDL_vulkan.h
  [114/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\ps2\SDL_render_ps2.c.obj
  [115/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\opengles2\SDL_shaders_gles2.c.obj
  [116/394] Building CXX object CMakeFiles\imgui_node_editor.dir\external\imgui-node-editor\imgui_node_editor.cpp.obj
  [117/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\SDL_d3dmath.c.obj
  [118/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\libm\s_tan.c.obj
  [119/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\libm\s_sin.c.obj
  [120/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\opengles\SDL_render_gles.c.obj
  [121/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\psp\SDL_render_psp.c.obj
  [122/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\power\SDL_power.c.obj
  [123/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\locale\SDL_locale.c.obj
  [124/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\misc\SDL_url.c.obj
  [125/394] Building C object external\hello_imgui\external\CMakeFiles\glad.dir\OpenGL_Loaders\glad\src\glad.c.obj
  [126/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\libm\s_fabs.c.obj
  [127/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\libm\s_floor.c.obj
  [128/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\SDL_yuv_sw.c.obj
  [129/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\libm\s_scalbn.c.obj
  [130/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\opengles2\SDL_render_gles2.c.obj
  [131/394] Building CXX object CMakeFiles\im_file_dialog.dir\external\ImFileDialog\ImFileDialog.cpp.obj
  [132/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\SDL_render.c.obj
  [133/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\software\SDL_drawpoint.c.obj
  [134/394] Building CXX object CMakeFiles\imgui.dir\external\imgui\imgui.cpp.obj
  [135/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\software\SDL_blendpoint.c.obj
  [136/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\vitagxm\SDL_render_vita_gxm_memory.c.obj
  [137/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\direct3d11\SDL_shaders_d3d11.c.obj
  [138/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\direct3d12\SDL_shaders_d3d12.c.obj
  [139/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\vitagxm\SDL_render_vita_gxm.c.obj
  [140/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\software\SDL_drawline.c.obj
  [141/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\vitagxm\SDL_render_vita_gxm_tools.c.obj  [142/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\software\SDL_blendfillrect.c.obj
  [143/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\software\SDL_triangle.c.obj
  [144/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\direct3d11\SDL_render_d3d11.c.obj
  [145/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\opengl\SDL_render_gl.c.obj
  [146/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\direct3d\SDL_shaders_d3d.c.obj
  [147/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\direct3d\SDL_render_d3d.c.obj
  [148/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\opengl\SDL_shaders_gl.c.obj
  [149/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\software\SDL_render_sw.c.obj
  [150/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\stdlib\SDL_crc16.c.obj
  [151/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\direct3d12\SDL_render_d3d12.c.obj
  [152/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\stdlib\SDL_crc32.c.obj
  [153/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\stdlib\SDL_mslibc.c.obj
  [154/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\software\SDL_blendline.c.obj
  [155/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\stdlib\SDL_strtokr.c.obj
  [156/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\stdlib\SDL_stdlib.c.obj
  [157/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\stdlib\SDL_qsort.c.obj
  [158/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\render\software\SDL_rotate.c.obj
  [159/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\stdlib\SDL_iconv.c.obj
  [160/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\stdlib\SDL_malloc.c.obj
  [161/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\stdlib\SDL_string.c.obj
  [162/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\SDL_blit_copy.c.obj
  [163/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\stdlib\SDL_getenv.c.obj
  [164/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\thread\SDL_thread.c.obj
  [165/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\SDL_blit.c.obj
  [166/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\timer\SDL_timer.c.obj
  [167/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\SDL_blit_0.c.obj
  [168/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\SDL_fillrect.c.obj
  [169/394] Building CXX object CMakeFiles\imgui_bundle.dir\src\imgui_bundle\imgui_bundle.cpp.obj
  [170/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\sensor\SDL_sensor.c.obj
  [171/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\SDL_blit_A.c.obj
  [172/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\SDL_bmp.c.obj
  [173/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\SDL_blit_auto.c.obj
  [174/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\SDL_blit_slow.c.obj
  [175/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\audio\disk\SDL_diskaudio.c.obj
  [176/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\SDL_blit_N.c.obj
  [177/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\SDL_rect.c.obj
  [178/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\SDL_egl.c.obj
  [179/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\SDL_clipboard.c.obj
  [180/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\audio\dummy\SDL_dummyaudio.c.obj
  [181/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\SDL_blit_1.c.obj
  [182/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\SDL_shape.c.obj
  [183/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\SDL_RLEaccel.c.obj
  [184/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\SDL_pixels.c.obj
  [185/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\joystick\virtual\SDL_virtualjoystick.c.obj
  [186/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\SDL_stretch.c.obj
  [187/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\SDL_surface.c.obj
  [188/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\SDL_vulkan_utils.c.obj
  [189/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\dummy\SDL_nullevents.c.obj
  [190/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\dummy\SDL_nullframebuffer.c.obj
  [191/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\SDL_video.c.obj
  [192/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\SDL_yuv.c.obj
  [193/394] Linking CXX static library imgui.lib
  [194/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\video\yuv2rgb\yuv_rgb.c.obj
  [195/394] Building C object CMakeFiles\imgui_md.dir\external\imgui_md\md4c\src\md4c.c.obj
  [196/394] Linking CXX static library imgui_color_text_edit.lib
  [197/394] Building CXX object CMakeFiles\imgui_md.dir\external\imgui_md\imgui_md\imgui_md.cpp.obj
  [198/394] Linking CXX static library imgui_node_editor.lib
  [199/394] Linking CXX static library imgui_knobs.lib
  [200/394] Linking CXX static library im_file_dialog.lib
  [201/394] Linking CXX static library imgui_toggle.lib
  [202/394] Linking CXX static library imspinner.lib
  [203/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\atomic\SDL_atomic.c.obj
  [204/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\atomic\SDL_spinlock.c.obj
  [205/394] Building C object external\SDL\CMakeFiles\SDL2main.dir\src\main\windows\SDL_windows_main.c.obj
  [206/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\SDL_log.c.obj
  [207/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\audio\SDL_audiocvt.c.obj
  [208/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\audio\SDL_audio.c.obj
  [209/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\SDL_utils.c.obj
  [210/394] Linking C static library external\SDL\SDL2main.lib
  [211/394] Building CXX object CMakeFiles\imgui_md.dir\external\imgui_md\imgui_md_wrapper.cpp.obj
  [212/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\SDL_hints.c.obj
  [213/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\SDL_error.c.obj
  [214/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\SDL_dataqueue.c.obj
  [215/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\SDL_assert.c.obj
  [216/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\SDL.c.obj
  [217/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\SDL_guid.c.obj
  [218/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\audio\SDL_audiodev.c.obj
  [219/394] Building CXX object CMakeFiles\_imgui_bundle.dir\bindings\module.cpp.obj
  [220/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\cpuinfo\SDL_cpuinfo.c.obj
  [221/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\SDL_list.c.obj
  [222/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\audio\SDL_mixer.c.obj
  [223/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\audio\SDL_audiotypecvt.c.obj
  [224/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\audio\SDL_wave.c.obj
  [225/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\dynapi\SDL_dynapi.c.obj
  [226/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\events\SDL_displayevents.c.obj
  [227/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\events\SDL_gesture.c.obj
  [228/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\events\SDL_clipboardevents.c.obj
  [229/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\libm\s_cos.c.obj
  [230/394] Building CXX object CMakeFiles\_imgui_bundle.dir\bindings\pybind_imgui.cpp.obj
  FAILED: CMakeFiles/_imgui_bundle.dir/bindings/pybind_imgui.cpp.obj
  C:\PROGRA~1\MIB055~1\2022\COMMUN~1\VC\Tools\MSVC\1433~1.316\bin\Hostx86\x64\cl.exe  /nologo /TP -DHELLOIMGUI_HAS_OPENGL -DHELLOIMGUI_USE_GLAD -DHELLOIMGUI_USE_GLFW -DHELLOIMGUI_USE_GLFW_OPENGL3 -DHELLOIMGUI_USE_SDL -DHELLOIMGUI_USE_SDL_OPENGL3 -DIMGUI_IMPL_OPENGL_LOADER_GLAD -DVERSION_INFO=0.6.5 -D_imgui_bundle_EXPORTS -IC:\Users\huml-dkn\Desktop\imgui_bundle\src -IC:\Users\huml-dkn\Desktop\imgui_bundle\external\hello_imgui\src\hello_imgui -IC:\Users\huml-dkn\Desktop\imgui_bundle\external\hello_imgui\src\hello_imgui\.. -IC:\Users\huml-dkn\Desktop\imgui_bundle\external\imgui -IC:\Users\huml-dkn\Desktop\imgui_bundle\_skbuild\win-amd64-3.10\cmake-build\external\SDL\include -IC:\Users\huml-dkn\Desktop\imgui_bundle\_skbuild\win-amd64-3.10\cmake-build\external\SDL\include-config-release -IC:\Users\huml-dkn\Desktop\imgui_bundle\external\glfw\include -IC:\Users\huml-dkn\Desktop\imgui_bundle\external\hello_imgui\external\SYSTEM -IC:\Users\huml-dkn\Desktop\imgui_bundle\external\hello_imgui\external\OpenGL_Loaders\glad\include -IC:\Users\huml-dkn\Desktop\imgui_bundle\external\implot\.. -IC:\Users\huml-dkn\Desktop\imgui_bundle\external\ImGuiColorTextEdit\.. -IC:\Users\huml-dkn\Desktop\imgui_bundle\external\imgui-node-editor\.. -IC:\Users\huml-dkn\Desktop\imgui_bundle\external\imgui-knobs\.. -IC:\Users\huml-dkn\Desktop\imgui_bundle\external\ImFileDialog\.. -IC:\Users\huml-dkn\Desktop\imgui_bundle\external\imspinner\.. -IC:\Users\huml-dkn\Desktop\imgui_bundle\external\imgui_toggle\.. -IC:\Users\huml-dkn\Desktop\imgui_bundle\external\imgui_md\imgui_md\.. -IC:\Users\huml-dkn\Desktop\imgui_bundle\external\imgui_md\md4c\src -external:IC:\Users\huml-dkn\AppData\Local\Temp\pip-build-env-kbp4ytft\overlay\Lib\site-packages\pybind11\include -external:I"C:\Program Files\Python310\Include" -external:W0 /DWIN32 /D_WINDOWS /GR /EHsc /O2 /Ob2 /DNDEBUG -MD /GL /bigobj /MP -std:c++17 /showIncludes /FoCMakeFiles\_imgui_bundle.dir\bindings\pybind_imgui.cpp.obj /FdCMakeFiles\_imgui_bundle.dir\ /FS -c C:\Users\huml-dkn\Desktop\imgui_bundle\bindings\pybind_imgui.cpp
  C:\Users\huml-dkn\Desktop\imgui_bundle\bindings\pybind_imgui.cpp(1502): fatal error C1001: Internal compiler error.
  (compiler file 'D:\a\_work\1\s\src\vctools\Compiler\CxxFE\sl\p1\c\convert.h', line 1492)
   To work around this problem, try simplifying or changing the program near the locations listed above.
  If possible please provide a repro here: https://developercommunity.visualstudio.com
  Please choose the Technical Support command on the Visual C++
   Help menu, or open the Technical Support help file for more information
  [231/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\events\SDL_dropevents.c.obj
  [232/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\events\SDL_mouse.c.obj
  [233/394] Building CXX object CMakeFiles\_imgui_bundle.dir\bindings\pybind_imgui_knobs.cpp.obj
  [234/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\libm\s_atan.c.obj
  [235/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\libm\k_sin.c.obj
  [236/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\events\SDL_keyboard.c.obj
  [237/394] Building CXX object CMakeFiles\_imgui_bundle.dir\bindings\pybind_im_file_dialog.cpp.obj
  [238/394] Building C object external\SDL\CMakeFiles\SDL2-static.dir\src\events\SDL_events.c.obj
  [239/394] Building CXX object CMakeFiles\_imgui_bundle.dir\bindings\pybind_imspinner.cpp.obj
  [240/394] Building CXX object CMakeFiles\implot.dir\external\implot\implot_items.cpp.obj
  [241/394] Building CXX object CMakeFiles\_imgui_bundle.dir\bindings\pybind_imgui_md.cpp.obj
  [242/394] Building CXX object CMakeFiles\_imgui_bundle.dir\bindings\pybind_imgui_bundle.cpp.obj
  [243/394] Building CXX object CMakeFiles\_imgui_bundle.dir\bindings\pybind_imgui_color_text_edit.cpp.obj
  [244/394] Building CXX object CMakeFiles\_imgui_bundle.dir\bindings\pybind_imgui_node_editor.cpp.obj
  [245/394] Building CXX object CMakeFiles\_imgui_bundle.dir\bindings\pybind_hello_imgui.cpp.obj
  [246/394] Building CXX object CMakeFiles\_imgui_bundle.dir\bindings\pybind_implot.cpp.obj
  [247/394] Building CXX object CMakeFiles\_imgui_bundle.dir\bindings\pybind_imgui_internal.cpp.obj
  ninja: build stopped: subcommand failed.
  Traceback (most recent call last):
    File "C:\Users\huml-dkn\AppData\Local\Temp\pip-build-env-kbp4ytft\overlay\Lib\site-packages\skbuild\setuptools_wrap.py", line 640, in setup
      cmkr.make(make_args, install_target=cmake_install_target, env=env)
    File "C:\Users\huml-dkn\AppData\Local\Temp\pip-build-env-kbp4ytft\overlay\Lib\site-packages\skbuild\cmaker.py", line 670, in make
      self.make_impl(clargs=clargs, config=config, source_dir=source_dir, install_target=install_target, env=env)
    File "C:\Users\huml-dkn\AppData\Local\Temp\pip-build-env-kbp4ytft\overlay\Lib\site-packages\skbuild\cmaker.py", line 701, in make_impl
      raise SKBuildError(

  An error occurred while building with CMake.
    Command:
      cmake --build . --target install --config Release --
    Install target:
      install
    Source directory:
      C:\Users\huml-dkn\Desktop\imgui_bundle
    Working directory:
      C:\Users\huml-dkn\Desktop\imgui_bundle\_skbuild\win-amd64-3.10\cmake-build
  Please check the install target is valid and see CMake's output for more information.
  error: subprocess-exited-with-error

  × Building wheel for imgui-bundle (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> See above for output.

  note: This error originates from a subprocess, and is likely not a problem with pip.
  full command: 'C:\Users\huml-dkn\Desktop\imgui_bundle\venv\Scripts\python.exe' 'C:\Users\huml-dkn\Desktop\imgui_bundle\venv\lib\site-packages\pip\_vendor\pep517\in_process\_in_process.py' build_wheel 'C:\Users\huml-dkn\AppData\Local\Temp\tmpf1ljk1n0'
  cwd: C:\Users\huml-dkn\Desktop\imgui_bundle
  Building wheel for imgui-bundle (pyproject.toml) ... error
  ERROR: Failed building wheel for imgui-bundle
Failed to build imgui-bundle
ERROR: Could not build wheels for imgui-bundle, which is required to install pyproject.toml-based projects

[notice] A new release of pip available: 22.2.2 -> 22.3.1
[notice] To update, run: python.exe -m pip install --upgrade pip
  1. when trying with SDL background the program fails to start:
<...>\build\demos_cpp\demo_imgui_node_editor\Release>demo_imgui_node_editor.exe
throw runtime_error: RunnerSdlOpenGl3::Impl_InitBackend error directx not available              at C:\Users\huml-dkn\Desktop\imgui_bundle\external\hello_imgui\src\hello_imgui\internal\backend_impls\runner_sdl_opengl3.cpp:42

When deleting the code block you quoted from
external\hello_imgui\src\hello_imgui\internal\backend_impls\abstract_runner.cpp, line 128:

  • demo_haiku_implot_heart c++ still works, but scaling is now wrong (everything too small) of course
  • demo_implot_markdown c++ works again, also with everything scaled too small

I do not quite see how that code block could mess things up, but i hope this is useful info.

@pthom
Copy link
Owner

pthom commented Nov 15, 2022

Ohhh... I guess you are a victim of the same internal compiler error as me.

Extract from your logs:

230/394] Building CXX object CMakeFiles\_imgui_bundle.dir\bindings\pybind_imgui.cpp.obj
  FAILED: CMakeFiles/_imgui_bundle.dir/bindings/pybind_imgui.cpp.obj
-c C:\Users\huml-dkn\Desktop\imgui_bundle\bindings\pybind_imgui.cpp
  C:\Users\huml-dkn\Desktop\imgui_bundle\bindings\pybind_imgui.cpp(1502): 
fatal error C1001: Internal compiler error.
  (compiler file 'D:\a\_work\1\s\src\vctools\Compiler\CxxFE\sl\p1\c\convert.h', line 1492)
   To work around this problem, try simplifying or changing the program near the locations listed above.
  If possible please provide a repro here: https://developercommunity.visualstudio.com
  Please choose the Technical Support command on the Visual C++
   Help menu, or open the Technical Support help file for more information

See https://developercommunity.visualstudio.com/t/MSVC-1933316300-Internal-Compiler-Err/10175047

Your compiler can fail with this simple hello-world like code:

struct ImVec2
{
    float                                   x, y;
    ImVec2(float _x, float _y)    : x(_x), y(_y) { }
};


bool blah2()
{
    auto f = [](const ImVec2 & size = ImVec2(0, 0)) -> bool
    {
        return true;
    };
    return f;
}

This is a bug I reported to microsoft.
They told me they have released an update. I could not test it, as I need to run a preview of MSVC on my ARM machine.

PS: Could you also test to build on the main branch?

@dcnieho
Copy link
Contributor Author

dcnieho commented Nov 16, 2022

I just updated msvc to 17.4.1, and no more internal compiler error.

from python, v0.6.5, without the hidpi block all works fine with imgui_bundle_demo, with the hidpi block imgui_bundle_demo is black.

Last i just tried ref 5bb4e04 on main, updated the submodules as well. Same black screen problem, for the c++ only the demo_widgets_docking demo is black, for python, imgui_bundle_demo is black.

p.s., see here what i mean with the node editor demo showing things a bit big. opening it the first time, this is what i am greeted with:
image

@pthom
Copy link
Owner

pthom commented Nov 16, 2022

Hum... Not easy to solve if I cannot reproduce the issue.

Would you be willing to give me sometime so that we can discuss this by telephone, and may be solve this via screen sharing? I think that a one hour session should be enough.
I can be available today between 4PM and 8PM (paris time zone), and tomorrow between 10AM and 12AM (paris time zone).

If so, please contact my by email: pthomet@gmail.com

@pthom
Copy link
Owner

pthom commented Nov 18, 2022

The black screen issue is fixed by commit b67da43 (still in dev branch)

@pthom pthom added the faq A frequent issue, remaining opened to facilitate discoverability label Dec 6, 2022
@pthom pthom closed this as completed Jan 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
faq A frequent issue, remaining opened to facilitate discoverability
Projects
None yet
Development

No branches or pull requests

2 participants