imgui icon indicating copy to clipboard operation
imgui copied to clipboard

Gallery: Post your screenshots / code here (PART 6)

Open ocornut opened this issue 6 years ago • 57 comments

This is Part 6. I am splitting issues to reduce loading times and locked the old ones. Screenshots Part 1 #123 Screenshots Part 2 #539 Screenshots Part 3 #772 Screenshots Part 4 #973 Screenshots Part 5 #1269 Screenshots Part 6 #1607 Screenshots Part 7 #1902 Screenshots Part 8 #2265 Screenshots Part 9 #2529 Screenshots Part 10 #2847 Screenshots Part 11 #3075 Screenshots Part 12 #3488 Screenshots Part 13 #3793 Screenshots Part 14 #4451 Also see: Software using dear imgui (you can help complete the list!)

You can post your screenshots here!

ocornut avatar Feb 10 '18 11:02 ocornut

I managed to massage a frame buffer onto the ESP32 and implemented a rasterizer (basically a reworked version of sronsse's sr), so now alpha blending and text works!

a

~~Sadly it takes about 10 seconds to fully render a frame :/ I'll have to see if there's anything I can cut out of ImGui to get it to render faster, seeing as the UI only needs to be super simplistic for this application.~~ Apparently updating GUI is only taking 100ms, it's drawing to the screen that's taking forever aha

ino: https://github.com/LAK132/ImDuino/blob/master/ImDuino.ino rasterizer: https://github.com/LAK132/ImDuino/blob/master/softraster.cpp

LAK132 avatar Feb 13 '18 07:02 LAK132

@LAK132 that code sronsse posted is unfortunately way too slow, you’d easily get a x100 boost with more optimised code and taking some of my suggestion in the previous comment. At least make the optimization for axis aligned quads (both textured and non-textured paths) and you can easily ignore most of the generic rasterization code for 95% of those triangles.

Also disabling rounding, disabling alpha for background and specialize code for transparent vs not transparent.

ocornut avatar Feb 13 '18 08:02 ocornut

Removing Serial got it from 10 to 4 seconds and rewriting tft.drawPixel(x, y, screenBuffer.col[x][y]); in the TFT API allowed me to get it from 4 seconds to 400 milliseconds, I think I have about 200ms I can shave off the rasterizer. Super happy that this works so well :D

ADMIN EDIT We moved this discussion to #1613

LAK132 avatar Feb 13 '18 10:02 LAK132

This Terrain Editor https://www.youtube.com/watch?v=rOtFH_WblfM

terrain editor

One nice thing which was suggested in #1117 is that they seem to blur the scene behind the imgui windows.

ocornut avatar Feb 13 '18 14:02 ocornut

rcrl - Read-Compile-Run-Loop: tiny and powerful interactive C++ compiler (REPL)

gif showcase

onqtam avatar Feb 13 '18 19:02 onqtam

Graphite with four shaders from ShaderToy. Shaders can be directly copy-pasted from ShaderToy and edited (using ImGuiColorTextEdit).

fourshadertoys

BrunoLevy avatar Feb 13 '18 20:02 BrunoLevy

(Apologies for the double post, I initially created a new thread for that #1620, but considering how we use those gallery threads for general relaying of cool stuff, this is more appropriate)

JavaScript bindings for Dear ImGui using Emscripten and TypeScript by @flyover Github https://github.com/flyover/imgui-js Readme https://flyover.github.io/imgui-js/

There's a web demo which even supports gamepad. https://flyover.github.io/imgui-js/example/

Interestingly the web demo has a sandbox window when you can input imgui code and it's get evaluated live (it's easy to break the library with mismatch Begin/End pairs at the moment, something which I would like to improve in the future) image

ocornut avatar Feb 15 '18 15:02 ocornut

Glidetrace - 3dfx glide2x api capture and replay tools https://github.com/dpethes/glidetrace glidetrace_tr https://www.youtube.com/watch?v=GKxL8X_Pntg

It uses a glide2x imgui impl. I use glide wrappers at the moment, but it should work on the 20+ year old Voodoo boards just fine (such retro!). The black rectangles around textured stuff (letters, cursor) are there because I haven't figured out the correct color/alpha combiner setup for rendering yet.

dpethes avatar Feb 18 '18 20:02 dpethes

Received from Frontier a sandbox ui using outlined font: physicssandboximgui

"The PhysicsSandbox was our first serious use of imgui. XX replaced the old (very old and primitive) debug UI with it and expanded it considerably.

Of particular note is the text outline, which really helps with reading the text even in difficult situations. We haven't sent this as a patch to you because if I recall correctly, the implementation has a considerable performance impact. It's perfectly fine for our uses though.

Once the game ships I'll try and get you some screenshots of the in-game debug menus, as those are more elaborate."

Will probably want to investigate some of the reasonable ways to use outlines at some point. (Perhaps it could be as simple as pre-processing the RGBA font atlas and retrieving outlined font that cannot be recolored, as opposed to using a more generic solution that allows recoloring but probably incur extra cost on the pixel shader)

ocornut avatar Feb 22 '18 18:02 ocornut

FWIW, SDF solutions work very well for font outlining. eg, @Flix01 made this - https://gist.github.com/Flix01/254005101903fe1bc22fe0b9f3ed3931

meshula avatar Feb 22 '18 18:02 meshula

Working on an editor for https://github.com/Librelancer/Librelancer

CallumDev avatar Mar 10 '18 06:03 CallumDev

Limit Theory http://forums.ltheory.com/viewtopic.php?f=30&t=6459

The amount of details here is particularly interesting:

  • The text color changes make a big difference to the overall overall impression
  • Nice fonts and prominent usage of icons (e.g. FontAwesome
  • Custom title bar elements (close button shows a cross, was actually about to make that change in master myself, will do soon). It's possible that they may just be using the menu bar to display those icons.

Will ask them for some details.

xmmbubg

zxmncna

jdlzzeg

dy3oiyr

0yfsgho

ocornut avatar Mar 10 '18 10:03 ocornut

gray theme imgui_gray

   ImVec4* colors = ImGui::GetStyle().Colors;
    ImGui::GetStyle().FramePadding = ImVec2(4.0f,2.0f);
    ImGui::GetStyle().ItemSpacing = ImVec2(8.0f,2.0f);
    ImGui::GetStyle().WindowRounding = 2.0f;
    ImGui::GetStyle().ChildRounding = 2.0f;
    ImGui::GetStyle().FrameRounding = 0.0f;
    ImGui::GetStyle().ScrollbarRounding = 0.0f;
    ImGui::GetStyle().GrabRounding = 1.0f;
    ImGui::GetStyle().WindowBorderSize = 1.0f;
    ImGui::GetStyle().FrameBorderSize = 1.0f;
    colors[ImGuiCol_Text]                   = ImVec4(0.00f, 0.00f, 0.00f, 0.85f);
    colors[ImGuiCol_TextDisabled]           = ImVec4(0.60f, 0.60f, 0.60f, 1.00f);
    colors[ImGuiCol_WindowBg]               = ImVec4(0.94f, 0.94f, 0.94f, 1.00f);
    colors[ImGuiCol_ChildBg]                = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);
    colors[ImGuiCol_PopupBg]                = ImVec4(1.00f, 1.00f, 1.00f, 0.98f);
    colors[ImGuiCol_Border]                 = ImVec4(0.00f, 0.00f, 0.00f, 0.44f);
    colors[ImGuiCol_BorderShadow]           = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);
    colors[ImGuiCol_FrameBg]                = ImVec4(1.00f, 1.00f, 1.00f, 1.00f);
    colors[ImGuiCol_FrameBgHovered]         = ImVec4(0.64f, 0.65f, 0.66f, 0.40f);
    colors[ImGuiCol_FrameBgActive]          = ImVec4(0.64f, 0.65f, 0.66f, 0.40f);
    colors[ImGuiCol_TitleBg]                = ImVec4(0.82f, 0.82f, 0.82f, 1.00f);
    colors[ImGuiCol_TitleBgActive]          = ImVec4(0.71f, 0.70f, 0.70f, 1.00f);
    colors[ImGuiCol_TitleBgCollapsed]       = ImVec4(1.00f, 1.00f, 1.00f, 0.51f);
    colors[ImGuiCol_MenuBarBg]              = ImVec4(0.86f, 0.86f, 0.86f, 1.00f);
    colors[ImGuiCol_ScrollbarBg]            = ImVec4(0.98f, 0.98f, 0.98f, 0.53f);
    colors[ImGuiCol_ScrollbarGrab]          = ImVec4(0.69f, 0.69f, 0.69f, 0.80f);
    colors[ImGuiCol_ScrollbarGrabHovered]   = ImVec4(0.49f, 0.49f, 0.49f, 0.80f);
    colors[ImGuiCol_ScrollbarGrabActive]    = ImVec4(0.49f, 0.49f, 0.49f, 1.00f);
    colors[ImGuiCol_CheckMark]              = ImVec4(0.43f, 0.43f, 0.43f, 1.00f);
    colors[ImGuiCol_SliderGrab]             = ImVec4(0.63f, 0.63f, 0.63f, 0.78f);
    colors[ImGuiCol_SliderGrabActive]       = ImVec4(0.43f, 0.44f, 0.46f, 0.78f);
    colors[ImGuiCol_Button]                 = ImVec4(0.61f, 0.61f, 0.62f, 0.40f);
    colors[ImGuiCol_ButtonHovered]          = ImVec4(0.57f, 0.57f, 0.57f, 0.52f);
    colors[ImGuiCol_ButtonActive]           = ImVec4(0.61f, 0.63f, 0.64f, 1.00f);
    colors[ImGuiCol_Header]                 = ImVec4(0.64f, 0.64f, 0.65f, 0.31f);
    colors[ImGuiCol_HeaderHovered]          = ImVec4(0.58f, 0.58f, 0.59f, 0.55f);
    colors[ImGuiCol_HeaderActive]           = ImVec4(0.52f, 0.52f, 0.52f, 0.55f);
    colors[ImGuiCol_Separator]              = ImVec4(0.56f, 0.56f, 0.56f, 1.00f);
    colors[ImGuiCol_SeparatorHovered]       = ImVec4(0.17f, 0.17f, 0.17f, 0.89f);
    colors[ImGuiCol_SeparatorActive]        = ImVec4(0.17f, 0.17f, 0.17f, 0.89f);
    colors[ImGuiCol_ResizeGrip]             = ImVec4(0.80f, 0.80f, 0.80f, 0.56f);
    colors[ImGuiCol_ResizeGripHovered]      = ImVec4(0.39f, 0.39f, 0.40f, 0.67f);
    colors[ImGuiCol_ResizeGripActive]       = ImVec4(0.39f, 0.39f, 0.40f, 0.67f);
    colors[ImGuiCol_CloseButton]            = ImVec4(0.59f, 0.59f, 0.59f, 0.50f);
    colors[ImGuiCol_CloseButtonHovered]     = ImVec4(0.98f, 0.39f, 0.36f, 1.00f);
    colors[ImGuiCol_CloseButtonActive]      = ImVec4(0.98f, 0.39f, 0.36f, 1.00f);
    colors[ImGuiCol_PlotLines]              = ImVec4(0.39f, 0.39f, 0.39f, 1.00f);
    colors[ImGuiCol_PlotLinesHovered]       = ImVec4(1.00f, 0.43f, 0.35f, 1.00f);
    colors[ImGuiCol_PlotHistogram]          = ImVec4(0.78f, 0.78f, 0.78f, 1.00f);
    colors[ImGuiCol_PlotHistogramHovered]   = ImVec4(0.56f, 0.56f, 0.56f, 1.00f);
    colors[ImGuiCol_TextSelectedBg]         = ImVec4(0.71f, 0.72f, 0.73f, 0.57f);
    colors[ImGuiCol_ModalWindowDarkening]   = ImVec4(0.20f, 0.20f, 0.20f, 0.35f);
    colors[ImGuiCol_DragDropTarget]         = ImVec4(0.16f, 0.16f, 0.17f, 0.95f);

codz01 avatar Mar 13 '18 05:03 codz01

A soft for generate a mesh from a distance field. the slice path is fully controled by the glsl directly :) but work always in progress at this moment :)

2018-03-23_06-03-23

2018-03-25_17-54-49

aiekick avatar Mar 13 '18 17:03 aiekick

Pushed a small change a few days ago to use a cross in the closing button instead of the infamous circle:

image image

The highlight fill (which is circular to accommodate for rounded windows) is using the button background colors so ImGuiCol_CloseButton, ImGuiCol_CloseButtonActive, ImGuiCol_CloseButtonHovered have been completely removed (this is a breaking change), as part of simplifying styles.

ocornut avatar Mar 14 '18 13:03 ocornut

Some shots from the tooling used by @citruslee for their demos: Rise and Shine http://www.pouet.net/prod.php?which=68178 Solitude http://www.pouet.net/prod.php?which=69740 Terabyte http://www.pouet.net/prod.php?which=67145

minerva-04 minerva-05

ocornut avatar Mar 15 '18 12:03 ocornut

Graphite with several GUI styles (dark and light, fixed layout and floating windows)

graphite_gui_styles

graphite_legacy_black

BrunoLevy avatar Mar 18 '18 15:03 BrunoLevy

Bitfield checkbox matrix:

image

Code: https://gist.github.com/JSandusky/af0e94011aee31f7b05ed2257d347637

Uses a bool BitField(const char* label, unsigned* bits, unsigned* hoveredBitIndex); signature. Hovered bit index is useful for tooltip to show names (ie. user defined flags).

JSandusky avatar Mar 26 '18 06:03 JSandusky

This video from Airbus https://www.youtube.com/watch?v=Te3qptOwTK4 Shows a VR project ("VR dragonfly"?) using dear imgui at the 20 seconds mark: airbus vr thing

ocornut avatar Mar 26 '18 17:03 ocornut

Wanted to share mine: I have Electron rendering to an OpenGL texture, which I am displaying in ImGui.

image

ImOnALampshade avatar Apr 02 '18 08:04 ImOnALampshade

clparticles OpenCL calculated particles, rendered with OpenGL. Video: https://youtu.be/VTs5xOGDT5w Repo: https://github.com/hsimpson/clparticles

Screenshot of clparticles

hsimpson avatar Apr 06 '18 00:04 hsimpson

Panorama "simple Linux system monitor" https://github.com/ronen25/panorama panorama 2 Interesting to see somehow desktop-looking apps popping here and there.

ocornut avatar May 02 '18 17:05 ocornut

From Harfang3D (https://www.harfang3d.com) harfang-201805

ocornut avatar May 07 '18 10:05 ocornut

Dungeons of Everchange HD

http://www.darkgnosis.com/game/dungeons-of-everchange-hd/

Using ImGui mostly as debug part of game, with some exclusions as popup texts.

game_debug

And particle editor for the game, using some custom controls (tab & graph):

particle_editor

which can produce these kind of effects:

20171004 allin1

darkgnostic avatar May 07 '18 11:05 darkgnostic

progress_shot_04_03_2018

Shot of the editor for my engine using ImGui. Dev Log here ( for anyone interested ): https://www.youtube.com/watch?v=fHUdVhmsi6s&t=855s

MrFrenik avatar May 08 '18 21:05 MrFrenik

Nodable by @berdal84 https://github.com/berdal84/Nodable https://www.youtube.com/watch?v=1TWPsUd66XY This software is a command line prompt able to evaluate literal expressions by constructing an execution tree in realtime. When user type an expression the program split it into tokens and build the execution tree. image

ocornut avatar May 14 '18 09:05 ocornut

Qt3D-Studio 2.0 beta seems to use ImGui for the debugging and profiling. Update: Yes it is, since this commit.

Qt3DStudio_Viewer_profiling.png

Alzathar avatar May 16 '18 14:05 Alzathar

Spotted during Electronic Arts conference at E3, during the Unravel Two presentation: unravel-01

ocornut avatar Jun 09 '18 18:06 ocornut

Not so cool like many of the projects posted here. But uses ImGui.
Controlling an OpenCV Mat using ImGui. output

pixsample

aang7 avatar Jun 10 '18 00:06 aang7

In a video that is currently 9th on YouTube trending!

screenshot

The program if anyone is interested: https://github.com/LAK132/SourceExplorer

LAK132 avatar Jun 11 '18 05:06 LAK132

Nodable by @berdal84 https://github.com/berdal84/Nodable Nodable is a node-able bidirectionnal editor (Text-to-Graph and Graph-to-Text). 2018_06_12_animation @ocornut sorry for the double post, maybe could you merge it with your previous one ?

berdal84 avatar Jun 12 '18 18:06 berdal84

Spotted in Fallout76 - "The Making of Fallout 76 - Noclip Documentary"

image

Nukem9 avatar Jun 12 '18 23:06 Nukem9

I have used imgui-rs (the Rust interface) in HyperNSGA, which was part of my diploma thesis to visualize the evolutionary development and optimization of spiking neural networks (using compositional pattern producing networks and NSGA) and to interact in realtime with the optimization process:

Imgui

mneumann avatar Jun 13 '18 10:06 mneumann

A dark and purple theme.

https://github.com/fallrisk/purpur-fetthenne-theme

screenshot_20180622_141505

  colors[ImGuiCol_Text]                   = ImVec4(1.00f, 1.00f, 1.00f, 1.00f);
  colors[ImGuiCol_TextDisabled]           = ImVec4(0.50f, 0.50f, 0.50f, 1.00f);
  colors[ImGuiCol_WindowBg]               = ImVec4(0.27f, 0.27f, 0.28f, 1.00f);
  colors[ImGuiCol_ChildBg]                = ImVec4(0.27f, 0.27f, 0.28f, 1.00f);
  colors[ImGuiCol_PopupBg]                = ImVec4(0.08f, 0.08f, 0.08f, 1.00f);
  colors[ImGuiCol_Border]                 = ImVec4(0.27f, 0.27f, 0.28f, 1.00f);
  colors[ImGuiCol_BorderShadow]           = ImVec4(0.00f, 0.00f, 0.00f, 0.00f);
  colors[ImGuiCol_FrameBg]                = ImVec4(0.18f, 0.18f, 0.19f, 1.00f);
  colors[ImGuiCol_FrameBgHovered]         = ImVec4(0.61f, 0.35f, 0.71f, 1.00f);
  colors[ImGuiCol_FrameBgActive]          = ImVec4(0.61f, 0.35f, 0.71f, 1.00f);
  colors[ImGuiCol_TitleBg]                = ImVec4(0.27f, 0.27f, 0.28f, 1.00f);
  colors[ImGuiCol_TitleBgActive]          = ImVec4(0.27f, 0.27f, 0.28f, 1.00f);
  colors[ImGuiCol_TitleBgCollapsed]       = ImVec4(0.27f, 0.27f, 0.28f, 1.00f);
  colors[ImGuiCol_MenuBarBg]              = ImVec4(0.27f, 0.27f, 0.28f, 1.00f);
  colors[ImGuiCol_ScrollbarBg]            = ImVec4(0.27f, 0.27f, 0.28f, 1.00f);
  colors[ImGuiCol_ScrollbarGrab]          = ImVec4(0.13f, 0.13f, 0.13f, 1.00f);
  colors[ImGuiCol_ScrollbarGrabHovered]   = ImVec4(0.36f, 0.38f, 0.39f, 1.00f);
  colors[ImGuiCol_ScrollbarGrabActive]    = ImVec4(0.36f, 0.38f, 0.39f, 1.00f);
  colors[ImGuiCol_CheckMark]              = ImVec4(0.56f, 0.27f, 0.68f, 1.00f);
  colors[ImGuiCol_SliderGrab]             = ImVec4(0.56f, 0.27f, 0.68f, 1.00f);
  colors[ImGuiCol_SliderGrabActive]       = ImVec4(0.56f, 0.27f, 0.68f, 1.00f);
  colors[ImGuiCol_Button]                 = ImVec4(0.36f, 0.38f, 0.39f, 1.00f);
  colors[ImGuiCol_ButtonHovered]          = ImVec4(0.61f, 0.35f, 0.71f, 1.00f);
  colors[ImGuiCol_ButtonActive]           = ImVec4(0.56f, 0.27f, 0.68f, 1.00f);
  colors[ImGuiCol_Header]                 = ImVec4(0.27f, 0.27f, 0.28f, 1.00f);
  colors[ImGuiCol_HeaderHovered]          = ImVec4(0.27f, 0.27f, 0.28f, 1.00f);
  colors[ImGuiCol_HeaderActive]           = ImVec4(0.27f, 0.27f, 0.28f, 1.00f);
  colors[ImGuiCol_Separator]              = ImVec4(0.43f, 0.43f, 0.50f, 0.50f);
  colors[ImGuiCol_SeparatorHovered]       = ImVec4(0.61f, 0.35f, 0.71f, 1.00f);
  colors[ImGuiCol_SeparatorActive]        = ImVec4(0.56f, 0.27f, 0.68f, 1.00f);
  colors[ImGuiCol_ResizeGrip]             = ImVec4(0.36f, 0.38f, 0.39f, 1.00f);
  colors[ImGuiCol_ResizeGripHovered]      = ImVec4(0.61f, 0.35f, 0.71f, 1.00f);
  colors[ImGuiCol_ResizeGripActive]       = ImVec4(0.56f, 0.27f, 0.68f, 1.00f);
  colors[ImGuiCol_PlotLines]              = ImVec4(0.61f, 0.61f, 0.61f, 1.00f);
  colors[ImGuiCol_PlotLinesHovered]       = ImVec4(0.60f, 0.36f, 0.76f, 0.40f);
  colors[ImGuiCol_PlotHistogram]          = ImVec4(0.61f, 0.35f, 0.71f, 1.00f);
  colors[ImGuiCol_PlotHistogramHovered]   = ImVec4(0.56f, 0.27f, 0.68f, 1.00f);
  colors[ImGuiCol_TextSelectedBg]         = ImVec4(0.26f, 0.59f, 0.98f, 0.35f);
  colors[ImGuiCol_ModalWindowDarkening]   = ImVec4(0.80f, 0.80f, 0.80f, 0.35f);
  colors[ImGuiCol_DragDropTarget]         = ImVec4(1.00f, 1.00f, 0.00f, 0.90f);
  colors[ImGuiCol_NavHighlight]           = ImVec4(0.26f, 0.59f, 0.98f, 1.00f);
  colors[ImGuiCol_NavWindowingHighlight]  = ImVec4(1.00f, 1.00f, 1.00f, 0.70f);

  ImGuiStyle& style = ImGui::GetStyle();

  style.FrameRounding = 3;

fallrisk avatar Jun 22 '18 21:06 fallrisk

ImGui in outer space ! Early Universe Reconstruction (coop. with Paris Institute of Astrophysics and Paris Observatory).

Visualized with Graphite Download (Linux/Mac/Windows sources, windows executable): https://gforge.inria.fr/frs/?group_id=1465 Documentation: http://alice.loria.fr/software/graphite/doc/html/

eur_imgui

BrunoLevy avatar Jun 24 '18 08:06 BrunoLevy

A CPU/GPU profiler called Tracy Video: https://www.youtube.com/watch?v=fB5B46lbapc Sources: https://bitbucket.org/wolfpld/tracy/src/master/

tracy

From a technical talk about the Vulkan port of Rise of the Tomb Raider https://youtu.be/ptakmFGcIRU?t=638 rise of the tomb raider

A technical blog post for the game iRacing (about damage and collision systems) https://www.iracing.com/road-new-damage/ iracing

Directus3d Engine https://github.com/PanosK92/Directus3D directus3d screenshot-v0 3_preview3

A node editor (can't remember where I found/got this one, but it was from a public source) dejchjfw4aehdap jpg orig

ocornut avatar Jun 24 '18 21:06 ocornut

This is Part 6. Locking this now. Moving to Part 7. Screenshots Part 1 #123 Screenshots Part 2 #539 Screenshots Part 3 #772 Screenshots Part 4 #973 Screenshots Part 5 #1269 Screenshots Part 6 #1607 Screenshots Part 7 #1902 Screenshots Part 8 #2265 Also see: Software using dear imgui (you can help complete the list!)

ocornut avatar Jun 25 '18 08:06 ocornut

Wanted to share mine: I have Electron rendering to an OpenGL texture, which I am displaying in ImGui.

image

How did you achieve this ?

al-sabr avatar Mar 13 '19 19:03 al-sabr

Separate electron process rendering offscreen into shared memory (see my profile for a node module for the shared memory), which I use to update an OpenGL texture. Displayed in Imgur through an Image button (so that mouse drag events don’t get eaten by Imgui). Input is forwarded through a network socket.

I actually switched to Ultralight, which is a more purpose built implementation. Electron is pretty heavy and bulky, and is notorious for using lots of system resources. Ultralight has been a lot better at that, but has its own issues (like no HTML5 video, there’s some issues I’ve had with scrollable divs, and a few random crashes on windows). It is still very much in beta and it’s been a while since the last update, but it does seem to be actively maintained if a bit slowly.

I want to make this project open source, but Ultralights is proprietary and kind of prevents that, since anyone who would want to use my implementation would have to pay for a license. I’m probably going to switch again to an OSS renderer like Gecko (Firefox) or using WebKit directly (which ultralight is a wrapper around)

On Wed, Mar 13, 2019 at 12:26 PM gdeverlant [email protected] wrote:

Wanted to share mine: I have Electron rendering to an OpenGL texture, which I am displaying in ImGui.

[image: image] https://user-images.githubusercontent.com/7727197/38189147-9c5ae4a0-3613-11e8-89f5-beabdea5d64c.png

How did you achieve this ?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ocornut/imgui/issues/1607#issuecomment-472570362, or mute the thread https://github.com/notifications/unsubscribe-auth/AHXoXUkec989EMT5LLB891Qmsg-whoBrks5vWVD4gaJpZM4SA551 .

ImOnALampshade avatar Mar 14 '19 00:03 ImOnALampshade

@ImOnALampshade What about the possibility to use [CEF|(https://bitbucket.org/chromiumembedded/cef)? There is a recent example using CEF and Ogre3D here. There was also an attempt using ImGui as reported in the issue #1140.

Do you think this could replace Ultralight?

Alzathar avatar Mar 14 '19 02:03 Alzathar

Yeah I definitely do, and I'd like for it to replace ultralight. Unfortunately I don't have the time to use something like that for my purposes, but I would like to. Ultralight is just very easy to integrate, so I'd recommend it for beginners / people without a lot of time, even if it has to be paid for in commercial settings. On Wed, Mar 13, 2019 at 7:06 PM Alzathar [email protected] wrote:

@ImOnALampshade https://github.com/ImOnALampshade What about the possibility to use [CEF|(https://bitbucket.org/chromiumembedded/cef)? There is a recent example using CEF and Ogre3D here https://github.com/kenkit/cef_osr. There was also an attempt using ImGui as reported in the issue #1140 https://github.com/ocornut/imgui/issues/1140.

Do you think this could replace Ultralight?

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/ocornut/imgui/issues/1607#issuecomment-472675646, or mute the thread https://github.com/notifications/unsubscribe-auth/AHXoXTeKXMAT0r-6fQvAO2taRMTKZSNwks5vWa6SgaJpZM4SA551 .

ImOnALampshade avatar Mar 14 '19 08:03 ImOnALampshade

Separate electron process rendering offscreen into shared memory (see my profile for a node module for the shared memory), which I use to update an OpenGL texture. Displayed in Imgur through an Image button (so that mouse drag events don’t get eaten by Imgui). Input is forwarded through a network socket. I actually switched to Ultralight, which is a more purpose built implementation. Electron is pretty heavy and bulky, and is notorious for using lots of system resources. Ultralight has been a lot better at that, but has its own issues (like no HTML5 video, there’s some issues I’ve had with scrollable divs, and a few random crashes on windows). It is still very much in beta and it’s been a while since the last update, but it does seem to be actively maintained if a bit slowly. I want to make this project open source, but Ultralights is proprietary and kind of prevents that, since anyone who would want to use my implementation would have to pay for a license. I’m probably going to switch again to an OSS renderer like Gecko (Firefox) or using WebKit directly (which ultralight is a wrapper around) On Wed, Mar 13, 2019 at 12:26 PM gdeverlant @.***> wrote: Wanted to share mine: I have Electron rendering to an OpenGL texture, which I am displaying in ImGui. [image: image] https://user-images.githubusercontent.com/7727197/38189147-9c5ae4a0-3613-11e8-89f5-beabdea5d64c.png How did you achieve this ? — You are receiving this because you commented. Reply to this email directly, view it on GitHub <#1607 (comment)>, or mute the thread https://github.com/notifications/unsubscribe-auth/AHXoXUkec989EMT5LLB891Qmsg-whoBrks5vWVD4gaJpZM4SA551 .

Dude that is unbelievable, yesterday I was talking with the author of Ultralight and I didn't ask him if it was possible to use Ultralight instead of Chrome inside of imgui. Like magic you come today saying that you used it instead. Can you enlighten us about you achieved Ultralight?

This would be really appreciated. Great work !

al-sabr avatar Mar 14 '19 11:03 al-sabr

@gdeverlant can you clarify what you're asking? Ultralight provides a driver for directly rendering to an OpenGL texture, which is exactly what I am using to do it. I take that OpenGL texture and display it in ImGui as I described above - using ImGui::ImageButton

ImOnALampshade avatar Mar 14 '19 11:03 ImOnALampshade

@gdeverlant can you clarify what you're asking? Ultralight provides a driver for directly rendering to an OpenGL texture, which is exactly what I am using to do it. I take that OpenGL texture and display it in ImGui as I described above - using ImGui::ImageButton

I was asking how did you successfully used Ultralight with imgui. If you have any basic code to share this would really help me. I was wondering is it possible with with Ultralight inside of imgui to load a PPAPI plugin inside like on this web site https://electronjs.org/docs/tutorial/using-pepper-flash-plugin.

I wanted to use Chrome but that is too heavy.

al-sabr avatar Mar 14 '19 11:03 al-sabr

@gdeverlant I wish I could share the code but it's scattered all over my project's repository. I'm planning to open source the project later but I really don't want to while Ultralight is inside of it. I need to remove the ultralight code and put it in its own repository and load it in as a plugin to my engine, but right now I don't have plugin support so I can't do that. Open sourcing with ultralight in the engine might give people the wrong idea and cause legal issues, since Ultralight itself is closed source and not free to use.

ImOnALampshade avatar Mar 14 '19 11:03 ImOnALampshade

@gdeverlant I wish I could share the code but it's scattered all over my project's repository. I'm planning to open source the project later but I really don't want to while Ultralight is inside of it. I need to remove the ultralight code and put it in its own repository and load it in as a plugin to my engine, but right now I don't have plugin support so I can't do that. Open sourcing with ultralight in the engine might give people the wrong idea and cause legal issues, since Ultralight itself is closed source and not free to use.

How about Chrome Embeded Framework which is a stripped down version of Chrome? Is that lightweight enough?

al-sabr avatar Mar 14 '19 12:03 al-sabr

@gdeverlant Lightweight enough for what?

ImOnALampshade avatar Mar 14 '19 12:03 ImOnALampshade

@gdeverlant Lightweight enough for what?

To use it for displaying HTML pages inside of imgui and probably load plugins like Flash.

al-sabr avatar Mar 14 '19 12:03 al-sabr

@gdeverlant Youtube might help you to answer your question:

  • https://www.youtube.com/watch?v=MVvHmxHpf-Y
  • https://www.youtube.com/watch?v=wVZmdM_APis
  • https://www.youtube.com/watch?v=wR6s2S0GmmQ

Alzathar avatar Mar 14 '19 12:03 Alzathar

@gdeverlant Youtube might help you to answer your question:

  • https://www.youtube.com/watch?v=MVvHmxHpf-Y
  • https://www.youtube.com/watch?v=wVZmdM_APis
  • https://www.youtube.com/watch?v=wR6s2S0GmmQ

I was more thinking not inside of 3D engine but more in imgui. The 2 major features I need to implement is to be able to render HTML page and play video in imgui. I never worked with 3D engines nor with imgui but I have a good understanding of C++. What would be the best option for me in a short while.

al-sabr avatar Mar 14 '19 12:03 al-sabr

@gdeverlant This is not the thread to discuss that. You can trivially display any texture in dear imgui and people are saying those library can output to a texture. There's not more much to do from the imgui side of things, other than you should look into those, if you are not familiar with them. Handling the display is literally 1 line of code if you are using imgui + opengl (a call to ImGui::Image()), most of the work is on the other side of the fence.

ocornut avatar Mar 14 '19 13:03 ocornut

@gdeverlant This is not the thread to discuss that. You can trivially display any texture in dear imgui and people are saying those library can output to a texture. There's not more much to do from the imgui side of things, other than you should look into those, if you are not familiar with them. Handling the display is literally 1 line of code if you are using imgui + opengl (a call to ImGui::Image()), most of the work is on the other side of the fence.

Oh I'm really sorry @ocornut I didn't mean to offend you. What should I do with all the other threads?

al-sabr avatar Mar 14 '19 13:03 al-sabr

What should I do with all the other threads?

You can leave the post here. Maybe get in touch with Alzathar and ImOnALampshade if they want to help, and feel free to post results in a new thread or latest Gallery thread if you have code to share to help other users. I'm just saying this discussion doesn't need to happen Here (which is an old, should-be-locked, Gallery thread).

ocornut avatar Mar 15 '19 14:03 ocornut

Yeah thank you for the guidance. I will try to do some talk with them.

al-sabr avatar Mar 15 '19 16:03 al-sabr

@gdeverlant I guess github doesn't have a direct messaging system anymore (I could have sworn it used to) but you can email me my github username at gmail

ImOnALampshade avatar Mar 15 '19 16:03 ImOnALampshade

@Alzathar @ImOnALampshade I wrote you an email but I found the ImGui gitter channel where we can exchange with an history. I think that is the best for now.

https://gitter.im/ocornut/imgui

al-sabr avatar Mar 15 '19 16:03 al-sabr

tooll3 is using imgui image https://github.com/still-scene/t3

sense-amr avatar Jul 15 '22 06:07 sense-amr