Opened 16 years ago
Last modified 16 years ago
#53 assigned enhancement
Improve TrackWidget performance and LnF
Reported by: | Henrik Heimbuerger | Owned by: | nobody |
---|---|---|---|
Priority: | minor | Milestone: | MS4: Future extensions |
Component: | track | Version: | pre-1.0 |
Keywords: | Cc: |
Description (last modified by )
Catch-all ticket for various TrackWidget enhancements, including performance and quality improvements and enhancements of the look&feel.
Attachments (1)
Change History (20)
comment:1 Changed 16 years ago by
Description: | modified (diff) |
---|---|
Owner: | changed from somebody to Henrik Heimbuerger |
Status: | new → accepted |
comment:2 Changed 16 years ago by
comment:3 Changed 16 years ago by
Status: | accepted → assigned |
---|
comment:4 Changed 16 years ago by
New commit by hheimbuerger (revision [194]):
[Fix for ticket #56, partial fix for ticket #53] Fixed NullPointerException during scrolling.
I'm not entirely sure which race condition caused this, but in certain situations a NullPointerException was thrown when moving the cursor away from an inner TrackWidget control while holding it. It was somehow caused by the timer thread for the TimerTask ClickEventRepetitionHandler communicating with the event dispatcher thread over the field hoveredInnerControl. This problem was worked around by passing the current hoveredInnerControl into the ClickEventRepetitionHandler during construction. The ClickEventRepetitionHandler only works on its own state now and in the worst case invokes the requested change once more while the mouse button has already been released.
During investigation, another bug was found that caused the inner control clicks to be also checked for track section selections. That has been fixed, clicks on inner controls now have priority and the track selection change is only evaluated if no inner control click could be detected.
Additionally, the scrollers' click detection shape is now a little larger, making it easier to hit them. The previous shape was more exact (having the same shape as the scroller), but also did not take the brush width into account.
comment:5 Changed 16 years ago by
Cc: | Henrik Heimbuerger added |
---|
comment:6 Changed 16 years ago by
Cc: | Henrik Heimbuerger removed |
---|
comment:7 Changed 16 years ago by
Component: | unspecified → track |
---|
comment:8 Changed 16 years ago by
New commit by hheimbuerger (revision [274]):
[Partial fix for ticket #53] The TrackWidget now draws the thrust gauges for the actual players.
The TrackWidget previously drew thrust gauges for all connected input devices, now it draws one for each player that isn't a driving agent. Also, the displayed names are now the player names and no longer the device names.
comment:9 Changed 16 years ago by
New commit by hheimbuerger (revision [380]):
[Partial fix for ticket #53] Improved TrackWidget performance when unzoomed and not rotated.
The track is image is now cached and the cars are drawn on top of it. This increases performance immensely. However, zooming and rotating is still done every frame and causes bad performance.
comment:10 Changed 16 years ago by
comment:11 Changed 16 years ago by
comment:12 Changed 16 years ago by
New commit by hheimbuerger (revision [411]):
[Partial fix for ticket #125, related to ticket #53] Redraws are no longer triggered if the TrackWidget isn't already idle.
Before pushing a new redraw event to the event queue, the TrackWidget now checks whether it's already working on a frame. That should reduce the problem of the refresh events for the LapView not getting through. (In the latest tests, it still took up to 2s, unfortunately.)
The dropped frames are shown on the frame counter.
comment:13 Changed 16 years ago by
comment:14 Changed 16 years ago by
comment:15 Changed 16 years ago by
Milestone: | MS5: Optional extensions → MS1: First usable version |
---|
To do: make the rendering quality configurable in the preferences. Then reassign to MS5.
comment:16 Changed 16 years ago by
comment:17 Changed 16 years ago by
comment:18 Changed 16 years ago by
Milestone: | MS1: First usable version → MS5: Optional extensions |
---|---|
Owner: | changed from Henrik Heimbuerger to nobody |
Rendering quality is now configurable, assigning back to MS5.
comment:19 Changed 16 years ago by
latest context, last used for making the rendering quality settings configurable
New commit by hheimbuerger (revision [183]):
[Partial fix for ticket #53] Improved TrackWidget selection visualization.
The ugly rectangle surrounding the currently selected tile of the TrackWidget has been removed and replaced by a transformation of the actual tile image.
The GrayscalableImage has been transformed into a more general purpose MultiStyleImage that gives access to various modifications of the image while caching the (often very computation-intensive) results.
Two of the debug tile images were palette based and have been converted to 24-bit bitmaps.