summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/BaseTileTexture.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Prevent race condition in tile texture discardChris Craik2011-10-171-11/+5
| | | | | | | | bug:5461107 Tiles were being destroyed, and subsequently dereferenced in TransferQueue Change-Id: I4fea289e5fda03a69f07554f57120c4c5bf7b016
* Fix crash in BaseTileTextureChris Craik2011-10-131-21/+3
| | | | | | | | | | | 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
* Mark tiles discarded by TransferQueue as dirtyChris Craik2011-10-111-20/+13
| | | | | | | | | | | | bug:5409902 Tiles were being discarded from the queue (and simply unsuccessfully added). This caused them to get stuck in the 'ValidatedUntransferred' state. Now if a tile isn't added successfully, or if it's discarded, it removes its painting texture and will have to repaint from scratch. Change-Id: I551e00fb8a6be3b0f3cabeabaa91e8b8b30019d5
* Use state machine to track tile stateChris Craik2011-09-291-6/+16
| | | | | | | | | | | | | | | | | | | | 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
* Discard BaseTileTextures entirely when they delete their GL texturesChris Craik2011-09-221-7/+1
| | | | | | | | bug:5361337 Fixes issue with garbage being drawn in unpainted tiles, and also allocates tiles very lazily. Change-Id: I9799b63670a80748a4809b61506da96a739d3a65
* Fix layer tile allocation to be more consistent, less discoChris Craik2011-09-121-1/+0
| | | | | | | | | | | | | | 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
* Deallocate graphics memory with onTrimMemory signalsChris Craik2011-09-081-1/+20
| | | | | | | | bug:5269460 Deallocate the graphics memory backing a BaseTileTexture on onTrimMemory signals, and accordingly allocate it lazily, as needed. Change-Id: I52039723f47e6470e4fe8dd987d384017005390f
* Fix old textures not being repaintedChris Craik2011-09-061-0/+4
| | | | | | | | | bug:5261488 Tile textures that were reacquired by the same tiles weren't being marked as dirty. Change-Id: Ie5c41ff7a8166e5e48736bdc504b90e8c5512f79
* Enable double buffering via base tilesChris Craik2011-09-021-5/+4
| | | | | | | | | | | | 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
* Fix repaint when we toggle the inverted modeNicolas Roard2011-08-181-1/+3
| | | | | | | | | | | | | - add a boolean return in WebView::nativeSetProperty() - add an inverted flag in BaseTileTexture Note that we invert the textures rather than the final screen. bug:5167645 java counterpart: https://android-git.corp.google.com/g/#/c/129133/ Change-Id: I249e429dbabb347b1c5c0828ef4fad17ece6e4b3
* Implement partial repaint for layers (at the tile level)Nicolas Roard2011-08-171-2/+1
| | | | | | | | Fixes a scheduling problem with layers bug:3392331 bug:5145259 Change-Id: I2ea2c91f2c6d6f5288375cb5ebdaa69819b740be
* Shared surface textureTeng-Hui Zhu2011-08-021-10/+40
| | | | | | | | | | | Instead of assigning each tile a Surface Texture, now just a normal GL texture. The content from skia bitmap will first drawn into a queue of Surface Textures, at draw time, blit them into each tile's GL texture. Added extra lock to protect the queue operation and Surface Texture operation. bug:5044597 Change-Id: I25f46228b93a3e99526daf52d8bd0d8d8fcc2879
* Implements tiled layers. We remove all the existing code in LayerAndroidNicolas Roard2011-07-141-1/+12
| | | | | | | | | | | 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-1/+2
| | | | Change-Id: Id8612946d845daad86f02f626c3247ff8dc1d2f8
* Modified tile reclamation heuristic for multi-webview displayChris Craik2011-07-011-3/+2
| | | | | | | | | | | 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
* Cleanup Skia related rendering code for raster rendering.Derek Sollenberger2011-06-281-0/+237
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