summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/BaseTile.h
Commit message (Collapse)AuthorAgeFilesLines
* Rename several classesChris Craik2012-04-041-193/+0
| | | | | | | | | | | | | | | | | | | | BaseTile,BaseTileTexture -> Tile,TileTexture Used in layers other than the base LayerGroup -> Surface Renamed to convey that it is a member of the SurfaceCollection, and that the layers grouped inside are painted together (if at all) DualTiledTexture -> SurfaceBacking Better conveys that this is the raster backing for a surface that can paint. It may be implemented with two tiled textures for now, but that isn't as important as its relationship to the surface. TiledTexture -> TileGrid Renamed to make it more clear that it was a container of tiles, and to be less similar to TileTexture Change-Id: I843f8603a2080cfe5a7313ba1c2eff10620f8aa2
* Translucent background color support for webviewTeng-Hui Zhu2012-04-021-1/+2
| | | | | | | | | | | | | | | | | | We need to respect the background color set for webview and combine that with the CSS background. Since we are tiled based and need to avoid double drawing, we need to determine the areas not covered by available tiles and draw the background. This involves a bit computation overhead. Therefore, we only compute those areas when alpha is between 1 to 254. When alpha is 255, we just need a glClear. When alpha is 0, nothing need to be drawn. Due to the fact that the tile can be partially drawn, texture generator need to know the background color to clear the tiles for the base layer. bug:5684832 Change-Id: I51f9d219f2722cc088eeea603623f9660f7a136a
* Add back low res base layer rendering, and expanded bounds prefetchingChris Craik2012-03-301-1/+1
| | | | Change-Id: Ib6a38d8dd8223bdca9cb652771f0b19dbec892dc
* reimplement BaseLayerAndroid as a LayerAndroid subclassChris Craik2012-03-221-11/+1
| | | | | | Breaks low res tiling, and expanded rendering bounds. Change-Id: Iec3ba2adceb6bd95399594d29fd8c0b18c1122ce
* Paint tiles with the PaintTileOperation's painterChris Craik2012-03-161-4/+2
| | | | | | | The refcounting there prevents the painter from being deallocated while painting bug:6064973 Change-Id: Ief4e615876aab74afb74e135acc1dd92c92af570
* Replace picture count with the SurfaceCollection countChris Craik2012-03-091-6/+1
| | | | | | Displays surface collection count on tiles when visual indicator is on. Change-Id: Ibe90792279849baff6f5bf0d71b80d9081471dc4
* Pass transform matrix in draw instead of through painterChris Craik2012-03-021-2/+3
| | | | | | | | | | bug:6105013 Since BaseTile's painter pointer may be stale, pass transform through draw rename transparency->opacity where needed added const for drawing path rects Change-Id: Ie08cef63c656e95887a3230af18b5b6a4513c10d
* Clean up all the old code paths before TransferQueueTeng-Hui Zhu2011-12-151-4/+2
| | | | | | | | | | | | | | TransferQueue is using one GL texture per tile, which is the best in terms of memory usage. The old code paths include EGLImage mode and SurfaceTexture per tile mode. At the same time, all the locks related to EGLImage are deleted too. There should be no funcationality change here. By deleting the DoubleBufferTexture, the only thing need to be added into BaseTileTexture is the TextureInfo, which can be optimized further in the future. Change-Id: If27fbca7cb55c73d94fbde3ba02d6208707ad8f0
* Prevent race condition in tile texture discardChris Craik2011-10-171-0/+1
| | | | | | | | bug:5461107 Tiles were being destroyed, and subsequently dereferenced in TransferQueue Change-Id: I4fea289e5fda03a69f07554f57120c4c5bf7b016
* Fix crash in BaseTileTextureChris Craik2011-10-131-0/+1
| | | | | | | | | | | bug:5453156 simplified m_owner management - ONLY modified on UI thread Previously deferring clear of m_owner, now set immediately since texture thread doesn't use need stale owner info Change-Id: I9b6f7bfd27af44a818d378ff750c0170d8122cfd
* Double buffering for layersChris Craik2011-10-101-0/+1
| | | | | | | | | | | | | bug:5309934 Defer picture changes and invalidations when: 1) a tiled texture hasn't completed painting 2) the user is scrolling (done in PaintedSurface) Remaining issues: Should block updates on zooming Change-Id: I60ee722e651f96e95a4ac0e819999fc1589037c3
* Use state machine to track tile stateChris Craik2011-09-291-10/+48
| | | | | | | | | | | | | | | | | | | | bug:5369978 Manage invalidations, painting, transferring, and swapping with a state machine. notes: * readyFor shouldn't be needed if all of the events that would cause a readyfor fail mark the tile dirty (such as stealing, scale change) * changing the scale of a page should discard all textures * m_dirty should be more gracefully worked into the state machine * a tile may drop dirtiness notifications if it's already painting, since upon completion m_dirty will be cleared - (issues for layers only) Change-Id: I5909fb5d208da2fb276e223c56bf143741a9a24c
* Fix layer tile allocation to be more consistent, less discoChris Craik2011-09-121-1/+8
| | | | | | | | | | | | | | bug:5290559 Two major things: * Avoid swapping front/back textures before the textures have been blitted to avoid race condition where blit fails because it doesn't see a back texture * Don't allow a tile to acquire its front texture to paint into, as the acquisition logic doesn't handle this. Change-Id: I84b59396ca9faaf3ddc7c75b6f66e4736bf4c3cf
* Enable double buffering via base tilesChris Craik2011-09-021-10/+19
| | | | | | | | | | | | bug:2522049 allocate textures and tiles using the gldraw count when they were most recently prepared remaining issues: -layers still flicker (presumably from texture stealing) -layers aren't double buffered yet Change-Id: Iccdf68326d7d476269d4e3a13903aaab249ee92d
* Implement partial repaint for layers (at the tile level)Nicolas Roard2011-08-171-5/+6
| | | | | | | | Fixes a scheduling problem with layers bug:3392331 bug:5145259 Change-Id: I2ea2c91f2c6d6f5288375cb5ebdaa69819b740be
* Implements tiled layers. We remove all the existing code in LayerAndroidNicolas Roard2011-07-141-10/+13
| | | | | | | | | | | related to the old texture management and introduce two new classes: - PaintedSurface, used as a placeholder ui-side for the regularly changing LayerAndroid - TiledTexture, implementing the tiling of PaintedSurface using a set of BaseTile bug:4580444 bug:3392331 Change-Id: I0daa079d2acce49f3baa8c312ea0b0dd457ccd5c
* Refactor partial invalidation codeTeng-Hui Zhu2011-07-061-5/+4
| | | | Change-Id: Id8612946d845daad86f02f626c3247ff8dc1d2f8
* Modified tile reclamation heuristic for multi-webview displayChris Craik2011-07-011-0/+6
| | | | | | | | | | | When tiles are reclaimed, they are now taken first from webviews that haven't been drawn in a while. Previously they were taken from any other webview - which may have been one still being displayed if multiple are onscreen. bug:4049143 partially solved (still not enough graphics memory allocated for tiles on tablet devices) Change-Id: Id400ea28e92ba805120c8353881834157fefa483
* Add initial support for Ganesh renderer.Derek Sollenberger2011-06-301-2/+2
| | | | | | | The GaneshRenderer can now be swapped in for the RasterRenderer in BaseTile. A following CL will enable this swap at runtime. Change-Id: Id42040fce2895ab00cccb8f11dfd0489df861655
* Cleanup Skia related rendering code for raster rendering.Derek Sollenberger2011-06-281-5/+5
| | | | | | | | | | | | | | In the existing code we created a sharedBitmap for BaseTiles and never used it instead opting for createing bitmaps on the stack to enable partial invalidation. This CL removes the sharedBitmap concept and instead creates all bitmaps on the stack. This means that BackedDoubleBufferedTexture no longer needs to have a bitmap member, but instead simply takes the bitmap from the caller and uploads it to the appropriate texture. To make this upload clean we now pass the bitmap via const references instead of pointers. Change-Id: Ie218c4b4564e5574ca6e404d4857904ab41a3a5c
* Refactor and improve the raster rendering for base tiles.Derek Sollenberger2011-06-271-13/+3
| | | | Change-Id: I1dc4622e0ce1602f6dc314f0b510c41adb95a443
* refactor the TextureInfo out from SharedTexture, no functional changeTeng-Hui Zhu2011-06-071-1/+1
| | | | Change-Id: I9018a8079da1df2fd55c94aacd4ae96227ad2bd2
* Basic performance monitor for tilesJohn Reck2011-05-161-0/+3
| | | | Change-Id: Ic67a5093a7c09b870ec34160ae0c999162dddcfc
* Merge WebKit at r75315: Move Android-specific WebCore files to SourceSteve Block2011-05-121-0/+151
This moves files in the following WebCore subdirectories ... - bindings/js - bindings/v8/custom - plugins/android - platform/android - platform/graphics/android - page/ - css/ - dom/ - loader/archive/android