summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/graphics
Commit message (Collapse)AuthorAgeFilesLines
* Fix Browser ANRNicolas Roard2011-03-173-11/+16
| | | | | | | | | | | | | | | | | | | | | | | | The problem was that when attempting to forcefully destroy a texture in TilesManager::cleanupLayersTextures(), the call to LayerAndroid::removeTexture() may fail if the texture was busy being painted -- the call to BackedDoubleBufferedTexture::release() would return false, and the layer may thus still keep a pointer to the texture. But the release() call, while indicating it failed, was only delaying the release -- as soon as the texture was marked as not busy, it could set its owner to nil. We could thus have a situation where the layer did not reset its texture pointers because the owner of the texture was not yet changed, but the texture would then reset its owner to nil as soon as it was not busy painting. In TilesManager::cleanupLayersTexture() the next step before deleting a texture is to check that the texture does not have an owner -- but by then the texture could have been marked as not busy, and removed its owner, letting TilesManager destroying it. bug:3472320 Change-Id: I3bcf169b30dfacba1773d3b79a3c0d205bf3cbdb
* Implement partial screen invalidationsNicolas Roard2011-03-169-28/+120
| | | | | | bug:3461349 Change-Id: Id654d176c58027c67be7cb604b87c0ec68984525
* Merge "Fix crash in WebCore::GlyphPageTreeNode::getChild" into honeycomb-mr1Russell Brenner2011-03-161-46/+95
|\
| * Fix crash in WebCore::GlyphPageTreeNode::getChildRussell Brenner2011-03-161-46/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using existing Skia APIs, FontCache::createFontPlatformData can detect when the retrieved font is the Skia default and will reject that choice, allowing WebCore to try the next font on the CSS fallback list. If the requested family is a generic family, e.g. "serif" or "monotype", the Skia default will be accepted. A prior attempt at this fix was not properly handling bold and italic stylings, which could eventually lead to dangling references to freed font data used for layout while custom fonts were loading, causing segfaults in getChild and elsewhere during page rendering. Bug: 3469204 Bug: 2720133 Change-Id: I3a9e746e18fd27848d0c4b9e1232392df33254a6
* | For first layout, reset current textures and update base layer.Shimeng (Simon) Wang2011-03-162-3/+8
| | | | | | | | | | issue: 4094300 Change-Id: If8e58daa621e01ac372f2111ebde522a6f90b2e5
* | Disable the use of EGL fences for synchronization.Derek Sollenberger2011-03-161-0/+4
|/ | | | | bug: 4098273 Change-Id: Iaf7eaa13b9d4410dfb984af0e4a83dadedb09648
* Merge "Enable synchronization with fencing." into honeycomb-mr1Derek Sollenberger2011-03-151-3/+0
|\
| * Enable synchronization with fencing.Derek Sollenberger2011-03-151-3/+0
| | | | | | | | | | | | | | | | | | We currently rely on the fact that nvidia serializes glFlush calls to ensure synchronization, but we should be using fences to handle this synchronization step. bug: 4098273 Change-Id: I13c4790434dea07d9da68b8ebebbba15b1e085a5
* | Fix layers repaint synchronisation issuesNicolas Roard2011-03-145-27/+102
|/ | | | | bug:4079662 bug:3469243 Change-Id: I2538e33c97e3cf8a937bc310847298b68669a24f
* Improving HTML5 video controlsNicolas Roard2011-03-141-2/+3
| | | | | | | | | - correct support for the fullscreen button - change the controls to be 48px high - auto-hide the controls, touching the video makes them appear again bug:2126902 Change-Id: Idd2b720034de3d5d432c9ea62d9045934c46f6c1
* Fix a crash caused by the wrong destruction handlingTeng-Hui Zhu2011-03-112-3/+3
| | | | | | | | | The VideoLayer is ref counted, so unref at the destrutor is the right way. Don't do a deletion. bug: 4072630 Change-Id: I1da4ec138ef119b1d8dd7700fef36bab4df55064
* increase the memory cap for bitmapsCary Clark2011-03-111-1/+1
| | | | | | | | | Increasing this size from 8 megs to 32 megs allows more RAM to be used before the image is sampled down. bug:3421165 Change-Id: I73047009522d6e80d1adc95cd12d763307ab1980
* Fix for display glitches.Nicolas Roard2011-03-101-0/+4
| | | | | | | | We were trying to update the texture with a bitmap larger than it. GL did not like this, so the texture was not updated at all... bug:4078436 Change-Id: I180f4da6991a3db988169d7abd06cc08d5b69a32
* webkit support for inline videoTeng-Hui Zhu2011-03-104-0/+219
| | | | | | | | | Basically we provide a Video Layer for the inline video. The java side change is at 101311. bug:3506407,2126902 Change-Id: I9cc1b910f502595d6be7ac81e448343ca6ca9100
* Fix CSS animationsNicolas Roard2011-03-105-129/+153
| | | | | | | | | | | - we were overriding existing animations. - implement correctly the removeAnimations functions - refactor AndroidAnimation (share common code) - fix how we use the timing functions for the animations - implements timing functions per keyframes bug:2453890 Change-Id: I367d708338c270171eeaacc7e2fb3729eb78c444
* Merge "Fix for gmail messages not showing after the first one. We were not ↵Nicolas Roard2011-03-091-0/+3
|\ | | | | | | resetting the unusable state (set by the clearView() function) when receiving new content..." into honeycomb-mr1
| * Fix for gmail messages not showing after the first one.Nicolas Roard2011-03-091-0/+3
| | | | | | | | | | | | | | | | We were not resetting the unusable state (set by the clearView() function) when receiving new content... bug:4080072 Change-Id: Ie1110b511392b0a7fd21bbc23aa1b824eb8a78ad
* | Fix CSS animation bugsNicolas Roard2011-03-083-7/+19
| | | | | | | | | | | | | | | | | | | | - we were replacing animations by new ones regardless of their types, so when two anims (i.e. transform and opacity) where set on the same layer, we'd only run the last one - the selection of the keys for keyframes animations was buggy bug:2453890 Change-Id: I03da3f6c2ba1f5bf778e099e52d71d2f5e67d27e
* | Merge "Fix 2453890: animation via css -webkit-transform" into honeycomb-mr1Nicolas Roard2011-03-083-26/+70
|\ \ | |/ |/|
| * Fix 2453890: animation via css -webkit-transformRussell Brenner2011-03-083-26/+70
| | | | | | | | | | | | | | | | | | Followed model used for transform animations. Tested with http://www.webkit.org/blog-files/leaves/. Fixes http://b/2453890. Change-Id: Ie71217743b6e1ee9ab0e023fdff44e8c65c8d477
* | Partial invalidation of the browser texturesNicolas Roard2011-03-0815-109/+372
| | | | | | | | | | bug:3461349 bug:3464483 Change-Id: I627f06d0fe48aaa0adca65cd13dc738af87eeefc
* | Do not merge.Patrick Scott2011-03-075-32/+12
|/ | | | | | | | | | | Remove the notion of root layers. We were computing the root layer status incorrectly for some child layers. If an iframe has a layer but it hasn't been attached, we might assume it is the root layer of the tree and not produce a recording content. Bug: 3492471 Change-Id: Ib81fb26d76742d74ebe244c34c1fab353fb9b78d
* Merge "ensure plugins draw correctly even when they have been given focus." ↵Derek Sollenberger2011-03-035-42/+42
|\ | | | | | | into honeycomb-mr1
| * ensure plugins draw correctly even when they have been given focus.Derek Sollenberger2011-03-035-42/+42
| | | | | | | | | | | | | | | | | | | | | | The initial attempt at fixing this bug was to modify the clip, but this was not correct and only fixed cases where the plugin was on the left edge of the screen. This CL properly adjusts the plugin's boundaries to make sure the content is drawn in the appropriate position. bug: 3477581 Change-Id: I5958228a93fa5600cd7e24ed9e7e1e26f6b241bc
* | Do not merge: Cherry-pick change I9942e8e4 from masterNicolas Roard2011-03-031-2/+4
|/ | | | | | | | | | | | | | | | | | Wait the remaining of the 60FPS cap delay rather than not paint. Returning true if called faster than 60FPS means we are not drawing and ask for the framework to call us again; this works in general because the framework recopy the previous framebuffer. But in some cases, it didn't, causing the webview to flicker. A correct fix would be to introduce the capping in framework rather than try to doing it in the webview; in the meantime we will sleep the remaining of the delay as a workaround, so that we still provide the GPU benefits we wanted (at >60FPS the GPU was being saturated in some cases). bug:3500655 Change-Id: Ibaa1d93e0a13433a2c842b19b58538894fdaa7e4
* Merge "Enable the plugin to specify the BGRA internal format for textures."Bart Sears2011-03-021-0/+1
|\
| * Enable the plugin to specify the BGRA internal format for textures.Derek Sollenberger2011-03-021-0/+1
| | | | | | | | Change-Id: I21555e923ba6ac6c2bcd291ffa73a1aa087bdb3b
* | Merge "Ensure plugin content does not shift when gaining focus."Derek Sollenberger2011-03-023-1/+25
|\ \ | |/
| * Ensure plugin content does not shift when gaining focus.Derek Sollenberger2011-03-023-1/+25
| | | | | | | | | | bug: 3477581 Change-Id: Ia7bbaaca405db33dbefaa8f6f00e9250580e5f7b
* | Merge "Fix Browser ANR"Nicolas Roard2011-03-021-1/+7
|\ \ | |/ |/|
| * Fix Browser ANRNicolas Roard2011-03-021-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | The dtor of GLWebViewState is calling the dtor of its TiledPage variables; the dtor of TiledPage wait until any pending painting operations running in the TextureGenerator thread are done. The painting operations ultimately paint using the current GLWebViewState's base layer. We were doing unref() on the baselayer before destroying the TiledPage... bug:3429924 Change-Id: I685e7fca5e5bae796f808debbf7e4ce668b83e6b
* | Merge "Crash on GL OOM to stop fallback to SW rendering."Ben Murdoch2011-03-021-1/+13
|\ \
| * | Crash on GL OOM to stop fallback to SW rendering.Ben Murdoch2011-02-281-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we detect an OOM from GL, crash the process to stop the framework falling back to software rendering. The framework will not enable HW rendering again until the process is killed and Flash does not work with software rendering. Bug: 3477085 Change-Id: I8defebbe3ea281c342fc99ace8638c347a3eb246
* | | Merge "Revert "Work around for pure virtual layers crash.""Ben Murdoch2011-03-023-71/+3
|\ \ \ | |_|/ |/| |
| * | Revert "Work around for pure virtual layers crash."Ben Murdoch2011-02-183-71/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 2879037f2d6c595b8c16e992462ce5ca60d8fdba. Revert the original work around as the underlying problem is fixed with I2747dd4630a2a7dc18eae4c5fde36fd14c461747 Change-Id: Ibc1e997bca2aadc27527b6980de38603e6971770
* | | GL perfs measurementNicolas Roard2011-03-012-2/+56
| | | | | | | | | | | | Change-Id: Id6e0b8199f82c44de0e7b1b7e7eb42bdb96bf908
* | | Fix framerate cap when multiple webviews exist.Derek Sollenberger2011-03-012-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | Each view will now be capped at 60fps. The previous code would either starve the drawing of additional webviews or would draw them at a rate of 60fps/N where N is the number of webviews. Change-Id: I5698d610b17d4c8cfe137c51c2b978dae04ae1cf
* | | Cap framerate at 60fpsNicolas Roard2011-02-282-2/+15
| |/ |/| | | | | Change-Id: I1b6be15a38d2afc55659872b82e13ebcd8fd2ada
* | Merge "Clean up synchronisation in Texture code."Nicolas Roard2011-02-254-60/+51
|\ \
| * | Clean up synchronisation in Texture code.Ben Murdoch2011-02-254-60/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ensure that we wait in a while loop checking the condition when we call wait, and only signal after unlocking the Mutex. Also removes mNewRequest lock and condition in the TexturesGenerator as it doesn't seem to be needed. Hopefully this will clear up some ANRs. Change-Id: I1b8b103a6effd2aa678a304e2519a6f6c484aaad
* | | Merge "Fixed 3425519, misalignment with fixed width font"Russell Brenner2011-02-253-1/+7
|\ \ \ | |/ / |/| |
| * | Fixed 3425519, misalignment with fixed width fontRussell Brenner2011-02-243-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | Uses new skia api to identify fixed width fonts. Without this fix, all Android fonts were reported as variable width, causing layout adjustment of whitespace. Now that fixed width fonts are properly reported, space characters preserve the same width as non-space chars. Change-Id: I7d83481f44e6c34fd8ae5c6638b1625d3a83a637
* | | Merge "Add a glFinish() at the end of drawGL(), to help the GPU and the ↵Nicolas Roard2011-02-241-0/+1
|\ \ \ | | | | | | | | | | | | flash plugin..."
| * | | Add a glFinish() at the end of drawGL(), to helpNicolas Roard2011-02-241-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | the GPU and the flash plugin... bug:3471680 Change-Id: I436de6caea4dd5b1171f260d328dfe8170463832
* | | | Merge "Fix problem where plugins were not drawn due to an incorrect clip."Bart Sears2011-02-241-0/+2
|\ \ \ \ | |_|/ / |/| | |
| * | | Fix problem where plugins were not drawn due to an incorrect clip.Derek Sollenberger2011-02-241-0/+2
| | | | | | | | | | | | | | | | | | | | bug: 3451982 Change-Id: If1d7bff729f72c28fec4905c3525b2f2ac1c6475
* | | | Merge "Update fixed layer at sync time."Teng-Hui Zhu2011-02-241-2/+1
|\ \ \ \ | |/ / / |/| | |
| * | | Update fixed layer at sync time.Teng-Hui Zhu2011-02-241-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the example of google news, one of the fixed position layer is under another fixed layer, and it is not updated for scrolling. The CSS value did change, but we don't have a updated fixed position call. Moving the update to sync time fix this issue. bug:3486524 Change-Id: Iecb65b37d06e65902511e569238546b49b1dcd47
* | | | Merge "Only show video texture when frames are available."Derek Sollenberger2011-02-243-40/+101
|\ \ \ \ | |/ / / |/| | |
| * | | Only show video texture when frames are available.Derek Sollenberger2011-02-243-40/+101
| | | | | | | | | | | | | | | | | | | | bug: 3460361 Change-Id: Ifcf97b4360e0a86cfcc100e6287e1fbce8d2185a