Re:Raygui – A simple and easy-to-use immediate-mode GUI library
by infogulch on Saturday March 26, 2022 @03:13PM
(#30814462)
The advantage of a declarative design is that it can be accelerated by the GPU which has a much better scaling computational architecture to serve this need.
[ Parent
| on HN ]
Re:Raygui – A simple and easy-to-use immediate-mode GUI library
by flohofwoe on Saturday March 26, 2022 @03:23PM
(#30814574)
"Immediate mode" just describes the programming model (e.g. how the UI is described with code and how the code reacts to user input), it doesn't tell anything about how rendering happens (or really anything that happens under the hood).
Re:Raygui – A simple and easy-to-use immediate-mode GUI library
by mortehu on Saturday March 26, 2022 @03:41PM
(#30814726)
It does imply to some degree that the entire geometry of the UI isn't stored in GPU memory. It's possible to store an entire UI, with text and all, in GPU memory and render it with a single call (e.g. glDrawElements).
Re:Raygui – A simple and easy-to-use immediate-mode GUI library
by flohofwoe on Saturday March 26, 2022 @03:48PM
(#30814776)
...and those GPU buffers need to be rebuilt as soon as anything in the UI changes. An immediate mode UI could just as well track state changes and only rebuild GPU buffers if needed.
Most just don't this (and instead use dynamic buffers which are updated with new data each frame) because the state diffing would complicate the implementation and is usually "not worth it", but they still implement batching within a single frame and reduce the amount of draw calls as much as possible (for instance in Dear ImGui, there's usually one draw call per scroll/clip region so you get away with a handful or at most a few dozen draw calls even for complex UIs).
Re:Raygui – A simple and easy-to-use immediate-mode GUI library
by Kranar on Saturday March 26, 2022 @07:02PM
(#30816124)
This doesn't make any sense. GPUs know nothing about declarative or imperative designs. Many immediate mode GUIs output a vertex buffer or a list of draw commands that can then be rendered anyway you choose, including having it rendered by a GPU.
Re:Raygui – A simple and easy-to-use immediate-mode GUI library
by dymk on Saturday March 26, 2022 @03:18PM
(#30814521)
Both declarative and imperative UI frameworks benefit just fine from GPU acceleration, that's orthogonal to the underlying drawing mechanism
Re:Raygui – A simple and easy-to-use immediate-mode GUI library
by _trackno5 on Saturday March 26, 2022 @03:16PM
(#30814496)
Can you give more details on how this GPU acceleration works?
Re:Raygui – A simple and easy-to-use immediate-mode GUI library
by throwaway684936 on Saturday March 26, 2022 @05:42PM
(#30815621)
Dear-imgui, the most popular and mature immediate mode GUI library, renders with OpenGL/Vulkan/DirectX.