v0.5.3 - Timing and Transparency
So, here's a small, quick update to MasterPlan.
So previously, the timing of MasterPlan was tied to the Vsync / refresh rate of the monitor; this was intended as a fix to prevent the underlying framework that MasterPlan uses for rendering from spending CPU time unnecessarily when idling. This has been resolved; this time, through a custom timing system that targets a customizeable framerate. The target framerate can be specified in the project settings window. Note that the F1 key displays the framerate at the top-left corner as a debug system.
This new timing system isn't perfect, though, so let me know if it doesn't work properly on your system.
Transparency / Borderless Window
MasterPlan can now be customized to have a transparent background as well as disable the borders on the windows, making it possible to use it as an invisible layer on top of another program. This would allow you to focus on an art program, for example, while referring to MasterPlan for reference and moods. I got this idea from another reference program, PureRef. Check it out if you use references heavily in your artwork; it seems rather useful! Please let me know if you use these features or have recommendations for MasterPlan; I would like to hear from artistic users of MasterPlan to hear how they would like MasterPlan to grow.
Anyway, here's the short change-log, which is included with the program, as usual:
- Timing improvements. Previously, MasterPlan was timed using Vsync; this is now replaced with my own timing system using time.sleep(), which should be more cross-platform friendly and make the main goroutine pause without consuming CPU execution. Otherwise, higher refresh rates would cause faster execution speeds (making things like double-clicking or moving using WASD quasi-impossible) or making the CPU idle at high cost as raylib currently seems to internally use a busy-wait-while loop by default on Mac and Linux. This timing mechanism isn't perfect, but is relatively easy to implement and seems accurate enough.
- Adding experimental option to automatically reload media. This is experimental because it seems like it might be possible to mangle media if MP detects and goes to load a file before the OS is finished writing it. I believe I've mitigated this, but it's still experimental until more people test it out. It also does this every frame for every Task, so it's also a bit slow for the moment.
- Adding transparent and borderless window. Props to pureref.com for the idea!
- Adding quit option to context menu; the context menu is now slightly thinner and no longer has spacers to account for this.
- Adding Target FPS option to global program settings.
- FIX: Previously was unable to "refresh" a Task that used media; whatever was loaded was stuck like that until you reloaded the project or MasterPlan. Now when prompted to load media (e.g. after closing the Task), MasterPlan will check to see if the media on disk is newer than the media already loaded; if so, it will reload it.
Thanks for reading!
Leave a comment
Log in with itch.io to leave a comment.