Changes between Version 11 and Version 12 of SMOOTH_TEXT_RENDERING_R0
- Timestamp:
- 06/17/09 15:33:32 (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
SMOOTH_TEXT_RENDERING_R0
v11 v12 8 8 9 9 == Overview == 10 The ability to render text frames without wrapping around objects. 10 * The purpose of this task is to improve text rendering in terms of time performance. 11 * Main focus 12 * Improve the text layout itself 13 * Improve how and when text layout is used (when the text is reflowed, etc.) 14 * LayoutBuilderTest is used to measure the time of laying out text that exactly fills a frame with standard size (width: 280p, height: 210p). 15 * Test runs in around 0.656 seconds. 11 16 12 17 == Task requirements == 13 Following functionality should present in the prototype 14 * Rotation of the frame without losing the text 15 * Zooming the text 16 * Resizing the frame - the text should be able to flow inside the frame 17 * Moving the text 18 * Improve layout performance with 40%. 19 * Test should run in around 0.4 seconds. 18 20 19 21 == Task result == 20 * The result should becode22 * The result of this task is code 21 23 22 24 == Implementation idea == 23 Extend TextFrameView located in org.sophie2.main.view and add the required functionality. 25 * Ratings of performance improvement solutions: 26 * Hardness: 1(easiest) - 4(hardest) 27 * Expected effectiveness: 4(smallest) - 1(biggest) 28 * Rated possibilities to improve the layout algorithm: 29 * Improve logging - (hardness)1 + (effectiveness)2 = (cumulative)3 30 * Implement the issues commented as "performance" - 2 + 3 = 5 31 * Improve badness calculation - 3 + 3 = 6 32 * Refactor badness - 4 + 3 = 7 33 * Memoization (part of a path, edge, etc.) - 4 + 1 = 5 34 * Check for existing useless updates and reflowing (e.g. selecting the frame with highest z-order) - 2 + 3 = 5 35 * Check for large ammounts of objects cloning - 2 + 3 = 5 36 * During design and implementation handle the improvement possibilities in the order of the least cumulative rating. 24 37 25 38 == Related == 26 [wiki:SCENE_COMMONS] 27 28 [wiki:SCENE_COMMONS_R0] 39 [wiki:WRAPPING_TEXT_RENDERING_R0] 29 40 30 41 == How to demo == 31 * Start the application32 * Create new book33 * Inside the book create new text frame and type some text (you could use lorem ipsum generator for better result - http://www.lipsum.com/)34 * rotate and scale the text35 * resize the frame36 42 37 43 = Design =