37 | | Another option would be to separate scene graph rendering from WebKit by rendering WebKit2 with raw OpenGL through |
38 | | the Texture Mapper first and then the entire QML scene on top. |
39 | | |
40 | | The approach requiring probably the most effort is to essentially re-implement WebKit2 UI-process sided AC on top of |
41 | | the scene graph, i.e. let the web process serialize the layer & animation information to the UI process where the layer |
42 | | tree is replicated in terms of scene graph geometry nodes and texture materials that are subject to animation. |
| 36 | * We're permanently in the state of composition. |
| 37 | * Layers are tiled and the tiles are "managed" in the web process side. |
| 38 | * Layer information is serialized and sent across to the UI process (LayerTreeHost and WebGraphicsLayer) |
| 39 | * The UI process feeds the layers into the texture mapper (LayerTreeProxyHost) |
| 40 | * The OpenGL texture mapper implementation renders before/after the scene graph. |
74 | | the ability to render video into textures. For fullscreen playback we should piggy-back on the fullscreen element feature in WebCore/WebKit2 |
75 | | that integrates with AC. The video texture becomes the root layer and the controls live in their own layer on top. |
| 72 | the ability to render video into textures. Implementation bits that appear to be necessary: |
| 73 | |
| 74 | * For each platform, determine the way of sharing textures across process boundaries (for example X11: X pixmaps) |
| 75 | * Add support for platform specific cross-process texture sharing to the WK2 AC implementation and the texture mapper. |
| 76 | * Change the corresponding media player back-end to render into such texture-backed layers. |
| 77 | * Implement support on the UI process side for establishing the UI for the temporary root layer for fullscreen elements. (maybe a dedicated QWindow subclass that renders straight with a dedicated GL texturemapper instance that small tree of texture mapper nodes that represent the layers of the fullscreen element hierarchy) |