02-17-2017, 08:03 AM
Quote:it's hard to make stuff concurrently in gui applications, you can't generally
allow new commands before the previous commands are done anyway
Erlang's mailboxes give you the solution: the GUI event handler just builds a message that encapsulates the desired change to the data model. (And in this case, the 3D model most of the time, too.) The mailbox lets the GUI process go back to handling user events while the OpenGL process munches on the data.
I realize that a process blocked on a many-minute bevel operation still can't update the UI to show other 3D model changes until it finishes, but you could at least respond to things like Help > About and File > Exit.
Incidentally, I just got to a different machine (not too much faster than the previous iMac) and tried the same bevel test in C4D R14, and beveling 6,144 polys is basically instantaneous. The following extrude takes only a few seconds to calculate: