Milestone 1.1 completion date moved to end of January, 2025 #168
Replies: 4 comments 1 reply
-
Progress SummaryThings are looking.... OK 😅. On the positive side, @PaulTheLionHeart has implemented perturbation as a passes option (this is likely to change in the near future, we're working on integrating perturbation into the standard engine). A bunch of small 'quality of life' bugs have been fixed. On the negative side, I have been having some difficulty with the mouse support for zoom just due to the indirect communication through global variables and the I/O polling being keystroke based. Mouse support for everything else is implemented (color editor, inverse julia iteration cursor, orbits window). As I was typing this update, I had some ideas for how to get zoom to work properly, so I may have a solution by the completion date for the 1.1 milestone. Of the remaining open issues, I don't think any of them are show stoppers for 1.1. Anything not addressed in 1.1 will be mvoed to milestone 2.0. Milestone 1.2 is purely for stripping out the integer math code. Mouse DetailsThe legacy FRACTINT mouse support (written in assembly and never ported to C) worked by polling the mouse whenever the code checked for a key being pressed. If the mouse had moved or a mouse button had been clicked (or double clicked), then synthetic keystrokes would be generated based on the mouse "look at" mode. WinFract didn't use this synthetic keystroke approach and had it's own implementation of handling the mouse. Instead of synthesizing keystrokes, I've implemented a mechanism that can be reused with wxWidgets by implementing a mechanism to subscribe to mouse events. Ultimately the code in Id has to be switched from polling I/O to event dispatch I/O. The new mouse event mechanism is event dispatched-based. Mouse events are detected in the Frame and Plot windows and dispatched to any susbscribers of mouse events. Subscribers implement an interface to receive the notifications. Decoupling the recipients of mouse events from the Window system (Win32, X11, whatever) through an abstract interface means that subscribers can be unit tested without any GUI stuff actually having been created. This will be important as we move forward with wxWidgets code and start implementing a tool abstraction. |
Beta Was this translation helpful? Give feedback.
-
OK, my idea for how to handle mouse support for zooming is panning out, so I've changed the close date for 1.1 to Monday so I can continue finishing up the mouse zoom support over the weekend. That'll teach me to put end dates on a Friday! LOL. |
Beta Was this translation helpful? Give feedback.
-
Well done Richard. I hope we use left button to zoom in and right button to zoom out and also there's a choice between zooming along edge or centered. ... just askin'. |
Beta Was this translation helpful? Give feedback.
-
Version 1.1.0 has been released! See the updated online documentation for a complete list of all the changes. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I've changed the completion date for the 1.1 milestone to January 31st, 2025.
I generally don't intend to push out the completion date of point release milestones as I intended to use them as a 'time box' and simply release with whatever was releasable at that date. In the case of 1.1, I wanted to give myself a little more time to explore a solution to the audio support. Finding a suitable audio library hasn't been as easy as I thought. It's looking like I'll have to write my own routines for waveform synthesis and feed SDL2 with a buffer of samples.
Audio is the only real thing holding up the primary goal of the 1.1 milestone; mouse support has already been partially implemented and it doesn't look to be difficult to add the remaining functionality.
Beta Was this translation helpful? Give feedback.
All reactions