Changes between Version 8 and Version 9 of CoordinatedGraphicsSystem
- Timestamp:
- Aug 3, 2012 1:42:13 PM (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
CoordinatedGraphicsSystem
v8 v9 46 46 == [#=TextureMapper Texture Mapper] == 47 47 TextureMapper is a light-weight scenegraph implementation that is specially attuned for efficient GPU or software rendering of CSS3 composited content, such as 3D transforms, animations and canvas. 48 It is a combination of a specialized accelerated drawing context (TextureMapper) and a scenegraph (TextureMapperLayer). 48 49 49 50 TextureMapper is pretty well-contained, and apart from the backing-store integration, it is thread safe. … … 128 129 LayerTreeCoordinator is also responsible for two ''special layers'' that are not recognized as “composited” by WebCore – a layer for the '''main web-content''', known as non-composited content, is treated as a layer. That is also true for the '''overlay layer''', which paints things such as the scrollbar and the tap indicators. 129 130 130 Another important role of LayerTreeCoordinator is to receive the viewport information from the UI process, and to propagate that information to the different backing-stores so that they can prepare to create/destroy tiles.131 Another important role of LayerTreeCoordinator is to receive the viewport information from the UI process, and to propagate that information to the different tiled backing-stores so that they can prepare to create/destroy tiles. 131 132 132 133 '''[/browser/trunk/Source/WebKit2/UIProcess/LayerTreeCoordinatorProxy.cpp LayerTreeCoordinatorProxy]''' is what binds together the viewport, the GPU renderer and the contents. It doesn't have functionality of its own, instead it acts as a message hub between those components. … … 139 140 * Using ScrollingCoordinator instead of the home-brewed fixed-position adjustments, also use it to support UI-side overflow:scroll. There is still a lot to do around scrolling. 140 141 * Serializing and coordinating CSS shaders, once they're implemented in TextureMapper. 141 * VSync support in the UI process, separately from QtScenegraph.142 142 143 143 == [#=CoordinatedBackingStore Coordinated Backing Store] == … … 184 184 Some other functionality is in QQuickWebPage::updatePaintNode. 185 185 186 Note that the QtScenegraph solves many things that would need to be solved separately if not using it, such as vsync. 187 186 188 == [#=CSSAnimations CSS Animation Support] == 187 189 Currently, in WebKit2, CSS animation frames are handled together with all other frames – the web process re-layouts for each frame, and sends the new transform/opacity/filter information together with the rest of the frame. The requestAnimationFrame feature, which allows synchronizing animations with the display refresh, is synchronized with LayerTreeCoordinator to make sure those animation frames are interpolated as accurately and smoothly as possible, avoiding choppiness and throttling. … … 197 199 The other option is to serialize the WebGL display list to the UI process, making the actual GL calls there, into an FBO. This is a safer and potentially more cross-platform approach, however it's yet to be seen how much of an undertaking it is, and how well it scales. 198 200 201 199 202 == Comments == 200 203 201 204 Would be great with more infomation about how vsync and triple buffering fits into all of this (http://hardforum.com/showthread.php?t=928593) 205 NR: Vsync/triple-buffering is done in the driver/QtScenegraph level. Added a comment. 202 206 203 207 It is not so clear how TextureMapper and TextureMapperLayer etc fits together. Like it sounds as TextureMapper is a scene-graph and also a drawing context. Maybe this could be a bit more clear. 208 NR: TextureMapper is a drawing context, TextureMapperLayer is a scenegraph. Updated. 204 209 205 210 Can UpdateAtlas be used with canvas like in http://dev.dorothybrowser.com/?p=163 ? 211 NR: yes, we can use a texture atlas for accelerated 2D canvas. However, accelerated 2D canvas is not yet supported and not discussed in this document :) 206 212 207 213 How to make thumbnails etc. Using the software implementation. Does the software implementation have limitations? 214 NR: I'd rather make thumbnails with GL and then glReadPixels. The software implementation doesn't have inherent limitations, but it renders slightly differently. 208 215 209 216 You say that layer tree coordinator sends viewport information for creating, deleting tiles etc. That is only when using the TiledBackingStore. Maybe that could be made more clear 217 NR: Not sure what comment to add. 210 218 211 219 How does HW accelerated 2D canvas come into place? 220 NR: It needs the same things that WebGL needs, e.g. GraphicsSurface or serialized commands. But it's not baked enough to write anything about.