summaryrefslogtreecommitdiffstats
path: root/libs/hwui
Commit message (Collapse)AuthorAgeFilesLines
* Record possible clip rejects when recording display listsRomain Guy2012-02-176-76/+199
| | | | | | | | | | | This optimization allows us to quickly skip operations that lie entirely outside of the known bounds of a display list. Because of ViewGroup.setClipChildren, we must keep the operations recorded in the display list. setClipChildren(false) is however a very uncommon operation and we will therefore often benefit from this new optimization. Change-Id: I0942c864e55298e6dccd9977d15adefbce3ba3ad
* Fix the systemRomain Guy2012-02-071-4/+4
| | | | Change-Id: Ie097ea5d6c0af9c5929b8c5deb76b4824d5de787
* Preliminary support for clipRect(Rect, Op)Romain Guy2012-02-072-20/+145
| | | | | | | This adds basic support for clip regions. It is currently disabled at compile time. Enabling clip regions will require setting up a stencil buffer. Change-Id: I638616a972276e38737f8ac0633692c3845eaa74
* Separate interface definition and implementation of SnapshotRomain Guy2012-02-024-104/+193
| | | | | | | | The Snapshot class is getting complicated enough that its implementation should now live in a separate .cpp file. This will become particularly useful when support for clip regions and paths will be added later on. Change-Id: I050fac5683a9f7a0ff2f7a6beec3dd28aa5eb0d8
* Disable debugging code in the font rendererRomain Guy2012-02-022-1/+6
| | | | Change-Id: I92463057ff4ae712bb25789db1667ff1ecfd389f
* Add optional metadata to initiliaze the render threat.Romain Guy2012-02-011-30/+26
| | | | | | | | | | The render threat is likely to break your application if you initiate it. As such it must be explicitely requested using the following meta-data tag in your manifest's application tag: <meta-data android:name="android.graphics.renderThread" android:value="true" /> Change-Id: Ibf0a48af2a0d091562bf6907eac970e3d1d601c4
* Add debug markers to OpenGLRendererRomain Guy2012-01-307-3/+56
| | | | | | | | These markers will be used to group the GL commands by View in the OpenGL ES debugging tool. This will help correlate individual GL calls to higher level components like Views. Change-Id: I73607ba2e7224a80ac32527968261ee008f049c6
* Add stencil buffer to the EGL configRomain Guy2012-01-303-0/+11
| | | | Change-Id: If76c0cd6127534d90f9526b75c0f8e56259c6722
* Add full support for Canvas.setDrawFilter()Romain Guy2012-01-234-36/+113
| | | | Change-Id: I0ad35d0603c4eeda469014803be14c1dcdde918c
* Fix the build, for realRomain Guy2012-01-191-1/+1
| | | | Change-Id: I6263f7e5e3ae2f7efe045f8b464c0ed1b87fc793
* Full support for Canvas.drawPosTextRomain Guy2012-01-183-68/+202
| | | | | | This also introduces a small optimization when rendering text. Change-Id: Iff620ac97bf878eaac406bccc6daa07052c93890
* First pass at implementing Canvas.drawPosText() in GLRomain Guy2012-01-174-1/+50
| | | | Change-Id: Ia3ac347e95d57eb86c63045156c8dbc0572b03cb
* Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGESteve Block2012-01-086-13/+13
| | | | | | | See https://android-git.corp.google.com/g/#/c/157220 Bug: 5449033 Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
* Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGESteve Block2012-01-064-7/+7
| | | | | | | See https://android-git.corp.google.com/g/157065 Bug: 5449033 Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
* Merge "Fix bug #5753006 Garbled Labels in Maps"Fabrice Di Meglio2012-01-051-3/+1
|\
| * Fix bug #5753006 Garbled Labels in MapsFabrice Di Meglio2012-01-051-3/+1
| | | | | | | | | | | | | | | | | | - it was a regression introduced into this CL: https://android-git.corp.google.com/g/#/c/154240/5 - basically needed to set the GlyphID encoding to the Skia Paint as we are now using glyphID resulting from the Harfbuzz shaping - also define GlyphID encoding as the default on the Paint class Change-Id: Idb7c2c57ac67595425ce3be9421258962690fcdd
* | Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGESteve Block2012-01-0320-74/+74
| | | | | | | | | | | | | | See https://android-git.corp.google.com/g/156016 Bug: 5449033 Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
* | Properly restore the GL scissor after a GL draw functorRomain Guy2012-01-033-21/+37
|/ | | | | | Bug #5781254 Change-Id: I1dc4809563a793b6b579814951d4d73b4c34bf32
* De-allocate caches for large glyphs when trimming memoryChet Haase2011-12-163-3/+49
| | | | | | | | | | | | | Currently, font renderers eliminate some texture caches when memory is trimmed. This change makes it go further by eliminating the large-glyph caches for all font renderers. These caches are only allocated as needed, but continue to consume large amounts of memory (CPU and GPU) after that allocation. De-allocating this memory on a trim operation should prevent background apps from holding onto this memory in the possible case that they have allocated it by drawing large glyphs. Change-Id: Id7a3ab49b244e036b442d87252fb40aeca8fdb26
* Merge "Fix issues from recent glyph caching change"Chet Haase2011-12-162-23/+37
|\
| * Fix issues from recent glyph caching changeChet Haase2011-12-152-23/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | There were 2 issues remaining after a recent change to support glyph caching from multiple textures: - memory in the GPU for all textures was being allocated automatically. This is now lazy, being allocated only when those textures are first needed. - filtering (applied when a rendered object is transformed) was ignoring the new multiple-texture structure. Filtering should be applied correctly whenever we change textures. Change-Id: I5c8eb8d46c73cd01782a353fc79b11cacc2146ab
* | Generate even fewer GL commandsRomain Guy2011-12-144-4/+38
|/ | | | Change-Id: I0f4dcacb03ef5ee7f6ebd501df98bfead5f0a7f8
* Reduce the number of active texture changesRomain Guy2011-12-134-7/+21
| | | | Change-Id: I94046bdfe20740c26c8183822e3002d692fde7c4
* <Insert something improper about OpenGL>Romain Guy2011-12-132-0/+9
| | | | Change-Id: Ib645376093838156771588adc76a718da0ceb0db
* Further reduce the number of GL commands sent to the driverRomain Guy2011-12-137-51/+69
| | | | Change-Id: Id922b2a166ea4573b767c27d3195e11c70320b23
* Merge "Make glyph cache more flexible"Chet Haase2011-12-133-167/+247
|\
| * Make glyph cache more flexibleChet Haase2011-12-133-167/+247
| | | | | | | | | | | | | | | | | | | | Some GPU architectures could not handle the previous implementation of our glyph cache. Frequent uploads would cause memory problems in the GPU and eventually a crash due to these memory issues. The solution is to move to a system of several, smaller caches instead of one monolythic cache for all glyphs. Change-Id: I0fc7a323360940d16d5a33eeb33abfab194c5920
* | Reduce the number of GL commands generated by the UIRomain Guy2011-12-136-39/+91
|/ | | | | | | | This optimization along with the previous one lets us render an application like Gmail using only 30% of the number of GL commands previously required Change-Id: Ifee63edaf495e04490b5abd5433bb9a07bc327a8
* Optimize state changesRomain Guy2011-12-1210-296/+365
| | | | Change-Id: Iae59bc8dfd6427d0967472462cc1994987092827
* Minimize the amount of data uploaded to draw textRomain Guy2011-12-123-23/+31
| | | | Change-Id: I6313ac039291c9cd93aadafe3566ad9d60cab42d
* Various OpenGL optimizationsRomain Guy2011-12-126-21/+14
| | | | Change-Id: Ib0742c96f10f5f50e7e5148b742c31b6c232d127
* Remove leftover debugging codeRomain Guy2011-12-121-5/+0
| | | | Change-Id: I1589af7991da36744071d5081daa24ebae5b4dfd
* Keep shaders to render properlyRomain Guy2011-12-124-31/+58
| | | | | | | I don't know who's to blame, SGX or Tegra2 but one of those two GPUs is not following the OpenGL ES 2.0 spec. Change-Id: I2624e0efbc9c57d571c55c8b440a5e43f08a54f2
* Mark color uniform fetched after fetching itRomain Guy2011-12-121-1/+1
| | | | Change-Id: I10e8027018608070a536eb8b51c7a4272e37006c
* Code cleanupRomain Guy2011-12-093-7/+12
| | | | Change-Id: If92e3addfc4d8546a60edcdea60a1fc89c27b680
* Free up resources by deleting shaders early onRomain Guy2011-12-093-36/+47
| | | | Change-Id: I29a39775732c0a48d3e6823f7afa3e741cae8541
* Discard framebuffer rendering queues when discarding layersRomain Guy2011-12-065-3/+34
| | | | | | Bug #5581817 Change-Id: Ie30700a29059d2ea60eb7bd3f8bd20ac48a149ab
* Clip text correctlyRomain Guy2011-12-055-13/+17
| | | | | | | | | | | | | | | | | Bug #5706056 A newly introduced optimization relied on the display list renderer to properly measure text to perform fast clipping. The paint used to measure text needs to have AA and glyph id encoding set to return the correct results. Unfortunately these properties were set by the GL renderer and not by the display list renderer. This change simply sets the properties in the display list renderer instead. This change also improves the error message printed out when the application attempts to use a bitmap larger than the max texture size. Change-Id: I4d84e1c7d194aed9ad476f69434eaa2c8f3836a8
* Faster text clippingRomain Guy2011-12-014-12/+21
| | | | Change-Id: I03a00c4261d81a416b1ad7b86ce2d432c71908b4
* Optimize away unnecessary state changesRomain Guy2011-11-307-38/+58
| | | | Change-Id: I0f6816f9f6234853575ecee5033186ad19e76380
* am 02e88f23: am 46685db9: Merge "Fix crash in existing applications Bug ↵Romain Guy2011-11-281-2/+10
|\ | | | | | | | | | | | | #5659476" into ics-mr1 * commit '02e88f23a65c602e83d7a46c0925e653b948e418': Fix crash in existing applications Bug #5659476
| * Merge "Fix crash in existing applications Bug #5659476" into ics-mr1Romain Guy2011-11-281-2/+10
| |\
| | * Fix crash in existing applicationsRomain Guy2011-11-281-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | Bug #5659476 The FontRenderer was not cleaning up its temporary state, leading to crashes when invoking renderDropShadow. Change-Id: I43b24820dd5625af8c080bbe11b64de2f74164b2
* | | am 38928899: am 8990cb57: Merge "Fix flashing wifi dialog after rotating ↵Chet Haase2011-11-281-2/+4
|\ \ \ | |/ / | | | | | | | | | | | | | | | back from landscape." into ics-mr1 * commit '3892889952b0ad3fa0b095c96d8ae2ae110585e2': Fix flashing wifi dialog after rotating back from landscape.
| * | Fix flashing wifi dialog after rotating back from landscape.Chet Haase2011-11-281-2/+4
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | There was an error in some of the OpenGL layer logic such that we would occasionally set up a layer for rendering and then not clean up when it was done. This caused future OpenGL rendering to go into that layer instead of to the buffers being displayed on the screen, resulting in artifacts including flashes and displaying of stale content. This happened specifically when using the wifi settings dialog with the InputMethod keyboard displayed, but it was probably visible in other situations as well. Issue #5628248: Flickering/flashing after entering password for WiFi Change-Id: I38139f620b310f4309570fa7224552d2ee633999
* | am a2fabf4a: am 303a0695: Merge "Draw in the correct FBO after invoking a GL ↵Romain Guy2011-11-222-2/+3
|\ \ | |/ | | | | | | | | | | functor Bug #5650514" into ics-mr1 * commit 'a2fabf4a109d46f99ff7370aa05e48c1708c2838': Draw in the correct FBO after invoking a GL functor Bug #5650514
| * Draw in the correct FBO after invoking a GL functorRomain Guy2011-11-212-2/+3
| | | | | | | | | | | | | | | | | | | | | | Bug #5650514 After invoking a GL functor, libhwui restores a few OpenGL states including the current FBO. The renderer was however making the wrong assumption that the FBO to restore to was the base layer instead of the FBO associated with the current canvas state. Change-Id: Ie565500832ebffd673f6a43b83422d6cc05470a0
| * Revert "Discard framebuffer rendering queues when discarding layers"Dave Burke2011-11-145-34/+3
| | | | | | | | This reverts commit da96f8ac2c1c35a54f3f36e6d776cb386a251d03.
| * Discard framebuffer rendering queues when discarding layersRomain Guy2011-11-105-3/+34
| | | | | | | | | | | | Bug #5581817 Change-Id: If612846ec5f7793710fc4df152791fb32c506551
* | Clean up GenerationCache.Jeff Brown2011-11-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | Use const references to keys and values where appropriate to avoid copying them unnecessarily. Deleted some dead code. Simplified a few pieces that were doing unnecessary redundant work. Change-Id: Ib2145b7094a40db2d679e05dafe050fe1e87b846