UI Discussion /Paint routines / Webview / GLSL / UI scripting conventions and tips and tricks.
-
I wanted to create a topic around UI and maybe show and discuss some of my testing as well as seeing what others are up to.
I am doing all kinds of experiments but been out of the loop for a bit on HISE so interested in others experiments and conclusions.
Have people been using GLSL or Webview for example and what are the implications in terms of CPU/GPU and dependencies?
Webview is absolutely amazing for dynamic graphics so what have people been using for dynamic graphics since the paint routines are on cpu and not that suitable for fancy moving graphics.
Is it viable to keep the fancy stuff as webview ( perfectly viable in terms of making the graphics ) but what is the practical experience? is it stable on all platforms?
Also Three.js , anyone been using that and are there different considerations than 2D ?
Also CSS, dont know much about that and have yet to really test that, what are the advantages of that?
I am doing some glsl experiments but its quite limited "usable but limited" It would be nice to be able to feed it a png like in shadertoy, but i have had some success making masks from png into js array.
Still experimenting with GLSL, making a pretty cool UI with a combo of png and GLSL for an everchanging UI. Again, wondering if it will be mostly conceptual or if its usable in projects and stable.
Are there any plans for a future graphic methods that would outdate the current ones or plans to strengthen the implementation of the current ones like GLSL or webview ?
I am also interested in paint routines in terms of delivered code, I can now do pretty fancy vector UI´s in paint routines but i am interested in the backend of the code delivered.
Currently I have all callbacks in a sep include as well as all text,optimisations ( flip between png and vector shadows, stuff like that) , color maps and styles.Before I build out that delivery setup I would love to know how someone would prefer recieving a fully built paint routine UI.
-
@lalalandsynth said in UI Discussion /Paint routines / Webview / GLSL / UI scripting conventions and tips and tricks.:
is it stable on all platforms?
No webview support at all on Linux
-
@David-Healey Oh, that is not great.
I did look at converting the webview graphics into paint routines, somewhat possible but again, heavy, a combo of png, paint and glsl gets me somewhere , but yes. -
@lalalandsynth I looked into WebView a while ago but didn't like the stability or integration.
I was only going to use it for a settings panel but ended up sticking with native HISE stuff (and a few PRs).
Claude summarised it like this:
WebView is a good fit in HISE for content-shaped UI: manuals, preset browsers, license/activation pages, occasional fancy static visuals - low-rate interaction, self-contained resources inside the project folder, enableCache on.
It's a poor fit for the core instrument interface: anything needing tight audio-rate feedback, layering with JUCE components, plugin-parameter binding (ScriptWebView is explicitly excluded from being a plugin parameter), Linux support, or predictable rendering across hosts.
Three.js sits at the worst end of that spectrum - highest resource cost, highest data-rate needs, most platform variance - so it's best reserved for a contained "eye candy" panel that can lose its context gracefully, not the main control surface.
-
@dannytaurus I think Clause is overstating its limitations (ScriptWebView is explicitly excluded from being a plugin parameter) YEs, technically but you can still make a slider in HIse communicate with webview and from webview to HISE slider .
Cross platform is an issue and probably DPI scaling although that is probably solvable?
Also some other issues , but I think it should be shippable on Win, unless I am missing something .
-
@lalalandsynth Just the fact that there are so many caveats prevents me from using it.
-
@dannytaurus Yes, I have concerns , but its absolutely amazing for doing dynamic graphics.