Rust immediate mode graphical user interface
Go to file
Gwen 8bca6ac62a
Implement "double-buffered" frame data
I feel a little conflicted about how I should be doing this. I think
it could save a lot of code to do away with the `FrameData` which
amalgamates the buffers into a single buffer, or at least remove the
frame data as a separate concept, and let all of that functionality
get folded into the primitive buffer.

My idea was, as I was implementing things in bevy I realized having
double-buffered primitive buffers could be _super_ useful; however, it's
kind of silly to have 2 copies of everything just to copy it again to
another buffer (the Vec<u8> in the RawBuffer) only to copy that buffer
_again_ onto the GPU.  Why not just have the RawBuffer act as the second
buffer, so there's a sort of like "double buffering" still?

Honestly I feel like I might be overthinking things a little bit here.
I expect to revisit this at some point in the future, for now I am sort
of happy, definitely some code improvements here! But maybe there just
doesn't need to be so much code or complexity.
2024-05-08 23:25:19 -04:00
.hooks Add feature to render primitives to an SVG file 2022-10-16 20:25:02 -04:00
dev Implement "double-buffered" frame data 2024-05-08 23:25:19 -04:00
doc Add Rect::offset method 2024-04-24 08:49:08 -04:00
src Implement "double-buffered" frame data 2024-05-08 23:25:19 -04:00
.gitignore Ignore emacs autosave/backup files 2022-07-04 21:08:51 -04:00
.rustfmt.toml Merge rustfmt files 2021-09-25 18:09:48 -04:00
Cargo.toml Create default test-utils feature 2022-10-17 22:37:05 -04:00
LICENSE Use MPL-2.0 License 2022-08-13 14:02:50 -04:00
README.md Add a bit of an attribution to the README 2021-10-20 19:49:36 -04:00

README.md

Immediate Mode

An immediate mode graphical user interface library.

Immediate mode started as a port of Dear ImGui, but was influenced by many other frameworks and applications along the way. Most notably, Our Machinery's IMGUI implementation and the Nom parser combinator library.