> > Following ideas do not have a ticket yet. > > - GUI improvements (get rid of floats) > > It would be good to know Petr's opinion about this.
I have identified the following directions in which the graphics stack could be further improved or extended. Since some of the topics are more challenging than the others, not all of them are suitable for GSoC. Also it might not be exactly clear from the brief descriptions what I mean by some of the topics. More detailed insight is provided in the analysis part of my thesis, which is finished but unfortunately not defended/published yet (Martin should have the copy for review purposes in his mailbox). * Support for direct rendering in graphic driver infrastructure. * Proper graphic driver able to leverage acceleration potential of the underlying device. * More drawing operations in drawing library (lines, curves, polygons, circles, etc.). * Retained scene description in drawing library. * Hardware acceleration of drawing library. * Better quality of drawing library output (advanced filtering, antialiasing). * Better precision of drawing library output (floating point coordinates and pixels). * Addition of trigonometric operations into HelenOS C library. * Drawing library and graphics server support for arbitrary-angle rotation of windows. * Support for more image and font formats in drawing library. * More widgets in widget toolkit (menu bars, scrolls bars, edit boxes, list boxes, etc.). * Support to minimize and maximize windows. * Desktop environment (task bar, icons). * Improvements of terminal emulator (resizing, scrolling, history). * Console applications awareness of resizing and termination of their terminal emulator. * Further (platform-specific) optimizations and performance improvements. Regarding the optimization, I am not sure whether it is the most pressing concern at this point. However, there are two areas that could bring platform-specific performance gains. First, replacement of floats with a library for fixed point arithmetics would improve the performance on machines without FPU. Second, vectorization of functions involved in pixel transfers (e.g. matrix inversion, alpha blending) would further speed-up calculations on processors providing SIMD instructions (at the cost of maintaining multiple versions of the optimized functions). Also, I would like to remind that the percieved responsiveness of the GUI is currently significantly influenced by the overhead of mouse event propagation in i8042 task caused by increased size of fibril stacks as was described by Jakub some time ago. Mouse movement is currently such a costly operation that I have doubts that the above mentioned optimizations would be even noticeable. Petr _______________________________________________ HelenOS-devel mailing list [email protected] http://lists.modry.cz/cgi-bin/listinfo/helenos-devel
