summaryrefslogtreecommitdiffstats
path: root/libs/hwui
Commit message (Collapse)AuthorAgeFilesLines
* Add missing includes for Mutex.hDerek Sollenberger2012-03-052-0/+2
| | | | | | | The missing header was being transitively included through a Skia header which is being removed. Change-Id: I5a65bae076027951fe07d1e7eecd4732124fb0e4
* Remove stray logRomain Guy2012-03-012-4/+5
| | | | Change-Id: I0c1979aab395098651c8a63d0bae0198ebc3746b
* Small tweak to Canvas.drawPath() GL implementationRomain Guy2012-03-012-10/+9
| | | | Change-Id: I1d668a912996e1267bcf2127058888e489a2d9b3
* Full implementation of Canvas.drawPath()Romain Guy2012-02-293-60/+184
| | | | Change-Id: I23223b89770a0cd2b4762365bead9bfddb094290
* More infrastructure for Canvas.drawTextOnPathRomain Guy2012-02-241-1/+67
| | | | Change-Id: Iff42b24e342650d06fa4e2fa9db6c28da820ff01
* Add hooks to implement Canvas.drawTextOnPath() in GLRomain Guy2012-02-244-3/+51
| | | | Change-Id: I165c9e05facf5365aa6850605688e538640c7fcc
* Only recreate path textures when necessaryRomain Guy2012-02-232-0/+6
| | | | | | | | | | | | | | When a drawPath command is recorded in a display list, a copy of the source path is made to preserve against possible modifications of the said source path. Copies are discarded when a display list is cleared, which usually happens on invalidate(). This means that even if a path is never modified, the texture generated to draw it on screen is destroyed every time an invalidate() is issued. This change fixes this problem by introducing a reference to the source path in the copy. If both the copy and the source path have the same genID, they are the same path and can share the same texture. Change-Id: I34849311c183e06336a1391d2d1568a087f973f6
* Reduce logsRomain Guy2012-02-221-1/+1
| | | | Change-Id: I2768972ec62f4d3ad800a4d7a4c44307a2fa0105
* Only copy paths, paints and shaders when we need to.Romain Guy2012-02-211-3/+6
| | | | Change-Id: Iba7a9c92c865f698821b6ff7bc4f502659642ac1
* 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