16c84069a4cc0c0d3c35e798dc5e4b0130d4a26f |
|
20-Sep-2013 |
Victoria Lease <violets@google.com> |
fix emoji clipping in hw draw path I guess we don't want to overwrite the last line in every RGBA glyph with our one-line texture atlas spacer? Bug: 10841207 Change-Id: Ief85ca58650c731e9d21dbf90942b7b44670abcc
/frameworks/base/libs/hwui/FontRenderer.cpp
|
7a454ba5fee0bbb9f2e1292f8eede655516c0f2c |
|
10-Sep-2013 |
Tim Murray <timmurray@google.com> |
Fix FontRenderer bug. bug 10691313 Change-Id: Icd5341a3c2066e337911f040ddc935c48c8d7cd1
/frameworks/base/libs/hwui/FontRenderer.cpp
|
9578e642403c0fa4fdcb32828f27c2417cabe88d |
|
10-Sep-2013 |
Tim Murray <timmurray@google.com> |
Add flags word to initialization. bug 10427951 Change-Id: I1356b9b96315ead44aa3898de5604d75f9bb8be5
/frameworks/base/libs/hwui/FontRenderer.cpp
|
d8c8aaa82ef90f30df647ca42453e953ee52af0f |
|
19-Aug-2013 |
Tim Murray <timmurray@google.com> |
Handle updates to C++ API. Change-Id: I8ab17cbae3a9a4cc3c3202b8277d49f27bdf1fec
/frameworks/base/libs/hwui/FontRenderer.cpp
|
723b2feb929b96b1dde40a865c49ea18bc42f055 |
|
12-Aug-2013 |
Victoria Lease <violets@google.com> |
fix kBW_Format glyphs Oops! kBW_Format was omitted from a couple of switch statements, resulting in glyphs in that format being invisible. Bug: 10206452 Change-Id: Ib2aa52250aeeecc0de1b1b78e3d0f568f368c73e
/frameworks/base/libs/hwui/FontRenderer.cpp
|
250b1cfc831fd2a271c09cab547efcc5e3d5f828 |
|
01-Aug-2013 |
Tim Murray <timmurray@google.com> |
Handle updates to RS C++ API. Change-Id: I73127fc7369643b94d4a49f31a516b50c74b54ac
/frameworks/base/libs/hwui/FontRenderer.cpp
|
1e546815bbb736c50679a8aefc25f48561026fc5 |
|
25-Jun-2013 |
Victoria Lease <violets@google.com> |
Support RGBA fonts and bitmap fonts (and RGBA bitmap fonts) Quite a few things going on in this commit: - Enable bitmap strikes by default in Paint objects. The SkPaint parameter that enables bitmap strikes was not previously included in DEFAULT_PAINT_FLAGS. This effectively disabled bitmap fonts. Oops! It's for the best, though, as additional work was needed in Skia to make bitmap fonts work anyway. - Complain if TEXTURE_BORDER_SIZE is not 1. Our glyph cache code does not currently handle any value other than 1 here, including zero. I've added a little C preprocessor check to prevent future engineers (including especially future-me) from thinking that they can change this value without updating the related code. - Add GL_RGBA support to hwui's FontRenderer and friends This also happened to involve some refactoring for convenience and cleanliness. Bug: 9577689 Change-Id: I0abd1e5a0d6623106247fb6421787e2c2f2ea19c
/frameworks/base/libs/hwui/FontRenderer.cpp
|
31e08e953fe7bdb1b1cbc247156cb6a19917a2f1 |
|
19-Jun-2013 |
Romain Guy <romainguy@google.com> |
Share Caches' index buffer with FontRenderer This reduces state changes when we draw 9patches and text together, which happens *a lot*. Also disable the NV profiling extension by default since it doesn't play nice with display lists deferrals. To enable it set debug.hwui.nv_profiling to true. Change-Id: I518b44b7d294e5def10c78911ceb9f01ae401609
/frameworks/base/libs/hwui/FontRenderer.cpp
|
8aa195d7081b889f3a7b1f426cbd8556377aae5e |
|
05-Jun-2013 |
Romain Guy <romainguy@google.com> |
Introduce Caches::bindTexture() to reduce glBindTexture calls Change-Id: Ic345422567c020c0a9035ff51dcf2ae2a1fc59f4
/frameworks/base/libs/hwui/FontRenderer.cpp
|
55709fc1c7b2741ba3cf7f160d7d8644c112bb99 |
|
15-Apr-2013 |
Chris Craik <ccraik@google.com> |
am 55b883b0: am 30c990c3: Merge "Draw Operation merging" into jb-mr2-dev * commit '55b883b0a960b37aa453253f3ccb614dd95c221c': Draw Operation merging
|
527a3aace1dd72432c2e0472a570e030ad04bf16 |
|
04-Mar-2013 |
Chris Craik <ccraik@google.com> |
Draw Operation merging Merge simple bitmap draw operations and text operations to avoid issuing individual gl draws for each operation. Merging other ops to be done eventually. The methods are different - the bitmap merging generates a single mesh for reused, unclipped images (esp. repeated images in a listview) The text approach queries just defers the normal font rendering until the last drawText in the sequence that can share the same shader. Patches are sorted and merged, but don't yet have a multiDraw implementation. For now, the pretending-to-merge gives better sorting behavior by keeping similar patches together. Change-Id: Ic300cdab0a53814cf7b09c58bf54b1bf0f58ccd6
/frameworks/base/libs/hwui/FontRenderer.cpp
|
e48da96ab5837f305ef55d5ea9d3215930884f83 |
|
12-Apr-2013 |
Romain Guy <romainguy@google.com> |
resolved conflicts for merge of 886e1204 to master Change-Id: Id002d2ae799c6946672335f122ecbfa07d9c0bc1
|
cf51a4199835e9604aa4c8b3854306f8fbabbf33 |
|
09-Apr-2013 |
Romain Guy <romainguy@google.com> |
Introduce PixelBuffer API to enable PBOs PBOs (Pixel Buffer Objects) can be used on OpenGL ES 3.0 to perform asynchronous texture uploads to free up the CPU. This change does not enable the use of PBOs unless a specific property is set (Adreno drivers have issues with PBOs at the moment, Mali drivers work just fine.) This change also cleans up Font/FontRenderer a little bit and improves performance of drop shadows generations by using memcpy() instead of a manual byte-by-byte copy. On GL ES 2.0 devices, or when PBOs are disabled, a PixelBuffer instance behaves like a simple byte array. The extra APIs introduced for PBOs (map/unmap and bind/unbind) are pretty much no-ops for CPU pixel buffers and won't introduce any significant overhead. This change also fixes a bug with text drop shadows: if the drop shadow is larger than the max texture size, the renderer would leave the GL context in a bad state and generate 0x501 errors. This change simply skips drop shadows if they are too large. Change-Id: I2700aadb0c6093431dc5dee3d587d689190c4e23
/frameworks/base/libs/hwui/FontRenderer.cpp
|
f7648b7f24bc4cf8a66df4c0cfb5e8aa2b7d3ac8 |
|
05-Apr-2013 |
Romain Guy <romainguy@google.com> |
am 21af446c: am a151ef8c: Merge "First OpenGL ES 3.0 based optimization" into jb-mr2-dev * commit '21af446ce9704bdc465bf15755148c5de50ea019': First OpenGL ES 3.0 based optimization
|
0908764b2b3cf5075df4178a5f0a8547dcb7b317 |
|
04-Apr-2013 |
Romain Guy <romainguy@google.com> |
First OpenGL ES 3.0 based optimization This change uses a new OpenGL ES 3.0 feature to upload less data when the font cache needs to be update. This can result in significant performance improvements on device with large textures or with locales that use a lot of glyphs (CJK for instance.) This change also fixes various unpack alignment issues. The unpack alignment, as well as the unpack row length, is not texture specific but a global state that affect all glTex/SubImage2D calls. Some of them were missing the appropriate glPixelStorei() call. This could result in corrupted textures. Change-Id: Iefb429d4d0d0b4e0faeadf27daafee6d30a21d85
/frameworks/base/libs/hwui/FontRenderer.cpp
|
e4d9a01bfc7451afff1ed399a5801c7aa2af2831 |
|
29-Mar-2013 |
Dan Morrill <morrildl@google.com> |
Phase 1 of refactoring SystemServer. SystemServer is currently a monolithic class that brings up key system services. This change is the first phase of refactoring it to be more configurable. Specifically, it adds a set of on/off switches used to control startup of individual services. Future plans include finer grained controls and a more explicit and consistent startup sequence for these services. Change-Id: I7299f5ce7d7b74a34eb56dffb788366fbc058532
/frameworks/base/libs/hwui/FontRenderer.cpp
|
257ae3502cfad43df681b1783528d645bdabc63f |
|
21-Mar-2013 |
Romain Guy <romainguy@google.com> |
Optimize text GL setup Only performs the GL setup steps when at least one glyph is drawn. This change also skips various draw operations when the specified paint draws with alpha = 0. Change-Id: I9eda148b0503acffc552ee19196f5d52e958a1a2
/frameworks/base/libs/hwui/FontRenderer.cpp
|
661a87ec28a49458f1faf533783abf2ab9927cab |
|
19-Mar-2013 |
Romain Guy <romainguy@google.com> |
Reduce number of glDraw calls when drawing text This change moves the mesh buffer from FontRenderer to CacheTexture to help reduce the number of texture binds and glDraw calls when drawing text that spans across multiple textures. Change-Id: I7de574d88313ca3672879ca878c253ff5f131fc1
/frameworks/base/libs/hwui/FontRenderer.cpp
|
115096f50a560e64a7f95d37686d4861042c7aeb |
|
19-Mar-2013 |
Romain Guy <romainguy@google.com> |
Minimize texture binds when drawing text When several CacheTextures are used to draw text, sort the draw batches by texture ID to minimize state changes in the driver. This change also tweaks the font cache size and renames a property that was too long to be set using setprop. Change-Id: I0a36dfffe58c9e75dd7384592d3343c192d042b1
/frameworks/base/libs/hwui/FontRenderer.cpp
|
6e2004089305cf2cd958b52b234459a49a4e5c83 |
|
08-Mar-2013 |
Romain Guy <romainguy@google.com> |
Move blur code from FontRenderer to utils/Blur.cpp Change-Id: I2cebbfbcb722ed4b37e54ffbf8b53bb92ad0c964
/frameworks/base/libs/hwui/FontRenderer.cpp
|
0b58a3deab66c30a8d35072e55aac6279dd367cc |
|
05-Mar-2013 |
Romain Guy <romainguy@google.com> |
Make glyph copies a little more cache friendly Change-Id: Ie21b7079cc5d3ea67a03597c57842636e4afe143
/frameworks/base/libs/hwui/FontRenderer.cpp
|
a4adcf0239039eb8f005be252409901c41b28839 |
|
28-Feb-2013 |
Romain Guy <romainguy@google.com> |
Support 3D rotations when drawing text If a perspective transform is set on the Canvas, drawText() should not attempt to rasterize glyphs in screen space. This change uses the old behavior instead (i.e. rasterize the glyphs at the native font size and apply the transform on the resulting mesh.) This change also adds an optimization: empty glyphs (spaces) do not generate vertices anymore. This saves a lot of vertices in text heavy applications such as Gmail. Change-Id: Ib531384163f5165b5785501612a7b1474f3ff599
/frameworks/base/libs/hwui/FontRenderer.cpp
|
dd8697c095272f19ddad214834a490b00f11a477 |
|
22-Feb-2013 |
Chris Craik <ccraik@google.com> |
Avoid double blur bug:8204062 Avoids incorrectly blurring with RenderScript after a C++ blur Additionally, avoids draw/blurring if the input text has empty bounds Change-Id: Ibbaf74800fff7a6e4cda3aa24286b90e7aef589d
/frameworks/base/libs/hwui/FontRenderer.cpp
|
08d160a366932aec170a115a1edb3bb5ac4e3a4e |
|
20-Feb-2013 |
Ben Cheng <bccheng@google.com> |
am 7a60c43d: Merge "Use free for memory chunks allocated through memalign." * commit '7a60c43d874bd047ea4b93b94c9b8771ea5739cc': Use free for memory chunks allocated through memalign.
|
15641a6181cdaac2aadf07585de66483b4b7ae6b |
|
20-Feb-2013 |
Ben Cheng <bccheng@google.com> |
Use free for memory chunks allocated through memalign. BUG: 8234423 Change-Id: Ic4100a780908c94540722cc4af5f73f4940431b4
/frameworks/base/libs/hwui/FontRenderer.cpp
|
0229d0818c8f08753a0df583798bbac19f67a4c4 |
|
14-Feb-2013 |
Chris Craik <ccraik@google.com> |
am 805a6fe7: Merge "Revert "Revert "Use RenderScript for large text blurs""" # Via Android (Google) Code Review (1) and Chris Craik (1) * commit '805a6fe7b1417640ccaf7914171cb65515b6ab39': Revert "Revert "Use RenderScript for large text blurs""
|
f2d8ccc15d7272b3416f73605c1f31d1d346bd40 |
|
14-Feb-2013 |
Chris Craik <ccraik@google.com> |
Revert "Revert "Use RenderScript for large text blurs"" This reverts commit bf5703e52e3304246cbf0e73f6976f7d7312d238. Change-Id: Ic6f991277dec9e80a6fed93db91499726b30ab2a
/frameworks/base/libs/hwui/FontRenderer.cpp
|
bf5703e52e3304246cbf0e73f6976f7d7312d238 |
|
13-Feb-2013 |
Chris Craik <ccraik@google.com> |
Revert "Use RenderScript for large text blurs" This reverts commit 3f76e65d251ead65fe8ff98e3bd4c7623fbaac07 Change-Id: Ia81cd485e5ca696bb284c419dc8a1d2f3247100e
/frameworks/base/libs/hwui/FontRenderer.cpp
|
7c1a49f5f5ed6613d736464bf5001b777e89ced2 |
|
13-Feb-2013 |
Chris Craik <ccraik@google.com> |
Revert "Merge remote-tracking branch 'goog/master-chromium' into 'goog/master'" DO NOT MERGE This reverts commit 6c0307dd0aefe9a08794b155fc03ee60ebd14f25, reversing changes made to a2cd828b749c444d55c2c41c7dbb85088ff94b9f. Conflicts: packages/SystemUI/res/values-sv/strings.xml Change-Id: Ia178efe8b14751583d47b2826bfe3d3d5463dd2e
/frameworks/base/libs/hwui/FontRenderer.cpp
|
3f76e65d251ead65fe8ff98e3bd4c7623fbaac07 |
|
15-Nov-2012 |
Chris Craik <ccraik@google.com> |
Use RenderScript for large text blurs Still fall back to simple path for small tasks Change-Id: I492f1b3f7d6fec1738f3e45cbfb15864bd23a392
/frameworks/base/libs/hwui/FontRenderer.cpp
|
23e500d168e8d649305445f6c1d2b49d8d2c00fd |
|
06-Feb-2013 |
Derek Sollenberger <djsollen@google.com> |
Merge "Merge remote-tracking branch 'goog/master-chromium' into 'goog/master'"
|
b969a0de65730b071d846f8302e751e2637e6dbe |
|
05-Feb-2013 |
Romain Guy <romainguy@google.com> |
Add support for non-antialiased text Change-Id: I17c073955ab94abc9b409e5fcfbc675faa07c5ba
/frameworks/base/libs/hwui/FontRenderer.cpp
|
19d4f1806a953b87435a2bb6fd8e738424e94003 |
|
09-Jan-2013 |
Romain Guy <romainguy@google.com> |
resolved conflicts for merge of c88c60be to master-chromium Change-Id: I3b4b42443312068e942aa779dfdc928afa7569fd
|
e3a9b24b5e3f9b2058486814a6d27729e51ad466 |
|
08-Jan-2013 |
Romain Guy <romainguy@google.com> |
Add plumbing for better text scaling Fonts are now described by a transform matrix. This lead to switching from a vector to a hashmap. This change therefore adds new comparators and hash computations to Font. Change-Id: I2daffa7d6287c18554c606b8bfa06640d28b4530
/frameworks/base/libs/hwui/FontRenderer.cpp
|
ca79cf69d09efa0c327e9b1237d86a119aea5da7 |
|
14-Aug-2012 |
Derek Sollenberger <djsollen@google.com> |
Update framework to support r5967 of Skia. bug: 6906025 Change-Id: Iefdb830ec3aa2ab3472c1c142484a7aa21788a15
/frameworks/base/libs/hwui/FontRenderer.cpp
|
7bb3cfe1cca4016ce95d3ef059761f4bb2d668bb |
|
15-Nov-2012 |
Sangkyu Lee <geteuid@gmail.com> |
Another optimization of glyph cache uploads Previously, cache textures were updated whenever mCurrentCacheTexuture was changed. Since updating cache textures needs glTexSubImage2D call, frequent changing of mCurrentCacheTexture (which can easily happen when an app uses lots of unique glyphs even with precaching) caused many glTexSubImage2D calls and bad framerates. This patch optimized isssueDrawCommand function. Consequently, changing mCurrentCacheTexture doesn't cause glTexSubImage2D call any more and it will improve font rendering performance. Change-Id: Id19d959fa0e69eeb2a39f83a57e311d7394586b2 Signed-off-by: Sangkyu Lee <geteuid@gmail.com>
/frameworks/base/libs/hwui/FontRenderer.cpp
|
cb4d6009576cf08195dc23f341a3f4939c0878bb |
|
25-Sep-2012 |
Chris Craik <ccraik@google.com> |
Add stroke support to polygonal shape rendering bug:4419017 bug:7230005 - Adds support for stroke/strokeAndFill for shapes without joins - Fixes path-polygonization threshold calculation - Fixes rendering offset (now only used for points) - Several formatting fixes Change-Id: If72473dc881e45752e2ec212d0dcd1e3f97979ea
/frameworks/base/libs/hwui/FontRenderer.cpp
|
b92d8f7979c29c7c09932578a11b2f8d6eec1d90 |
|
21-Sep-2012 |
Chet Haase <chet@google.com> |
Optimize glyph cache texture uploads Only upload the changed area of the glyph cache, not the entire bitmap. Note that we can't do the full-on optimization here of copying a sub-rect of the bitmap because of GL ES 2 limitations, but we can at least copy the horizontal stripe containing the dirty rect, which can still be a big savings over uploading the entire bitmap. Issue #7158326 Bad framerates on MR1 (Mako, Manta, Prime) Change-Id: Iab38d53202650f757ead4658cf4287bdad2b3cb9
/frameworks/base/libs/hwui/FontRenderer.cpp
|
8087246d9964b11de8ce116bc63b156faa4197e0 |
|
05-Sep-2012 |
Romain Guy <romainguy@google.com> |
Code cleanup in FontRenderer Change-Id: Ic788721c224a77f0a76f4cd6d9817b62e390a5a7
/frameworks/base/libs/hwui/FontRenderer.cpp
|
9b1204baf4740b4d443e72157dea98571cf84e1f |
|
05-Sep-2012 |
Romain Guy <romainguy@google.com> |
Small code cleanup in FontRenderer Change-Id: I09c00debe9b0b4f45b232cae402ed19bdaeabfe4
/frameworks/base/libs/hwui/FontRenderer.cpp
|
9f5dab3fc228fa11c32b483e6101ec086895a32b |
|
04-Sep-2012 |
Romain Guy <romainguy@google.com> |
Refactor FontRenderer.cpp FontRenderer.h defined several classes and structures that now live in the font/ folder. This will make the code easier to read and maintain. Change-Id: I3dc044e9bde1d6515f8704f5c72462877d279fe2
/frameworks/base/libs/hwui/FontRenderer.cpp
|
eb32a499194119b3783b86c925172df02e5d2685 |
|
31-Aug-2012 |
Chet Haase <chet@google.com> |
Paramaterize and adjust the glyph cache sizes Add new parameters for the texture size used for the larger, fallback caches. Bump up the defaults in some situations. Issue #7045164 Adjust cache sizes for manta Change-Id: I562118ce785d7f8b6e445178878672e9709d25f2
/frameworks/base/libs/hwui/FontRenderer.cpp
|
f942cf10e04567f6b9456f6258e29c803b8bfb41 |
|
30-Aug-2012 |
Chet Haase <chet@google.com> |
Avoid thrashing the glyph cache during the precache phase It is unlikely, but possible, to draw so many glyphs in a frame (especially of the glyphs are quite large) that the cache starts flushing itself to fit the later glyphs in. This causes unnecessary thrashing, because when we actually draw the frame, we will again need to flush to fit the earlier glyphs in, and then flush again to fit the later ones in. It is better to avoid thrashing the cache at the precache phase, and wait until we actually draw the glyphs that do not fit to do any eviction of the earlier glyphs. This change simply notes when we are in the preaching phase, and avoids flushing the cache when a glyph does not fit. Issue #7081725 avoid thrashing cache during DisplayList recording Change-Id: I230410ab5b478091b1032fa99dc1752acf868bbe
/frameworks/base/libs/hwui/FontRenderer.cpp
|
5a3ec7113c99242fa0d0a328a0ec3892698203f1 |
|
18-Aug-2012 |
Chet Haase <chet@google.com> |
Fix glyph cropping bug Glyphs were being stored in the glyph cache incorrectly. The second row of glyphs in any column were being positioned exactly one pixel too high, causing the preceding glyph in that column to be cropped, resulting in the reported truncation in some glyphs. Issue #7003215 Minor UI truncation while reading the mails Change-Id: I47ce376f78a04d4e07e8b7ed1b3f0b58864c5498
/frameworks/base/libs/hwui/FontRenderer.cpp
|
378e919ccb75efe24d5a5aa75ac2c6ef255dcb48 |
|
16-Aug-2012 |
Chet Haase <chet@google.com> |
Remove CacheTextureLine structure from FontRenderer CacheTextureLine was useful before we were packing the glyph textures; it allowed simple packing of any particular texture according to how many lines there were in a texture, and how tall those lines were. Now that we are packing more efficiently (both horizontally and vertically in any given texture line), it is more efficient to have open space in every texture, removing the need for CacheTextureLine (which now gets in the way since it limits how much can be stored in each line). This change removes CacheTextureLine and just uses CacheTexture directly, allowing caching of glyphs anywhere in the open space of each texture. As before, the packing of these glyphs is determined by the CacheBlock structure, which is a linked list of open spaces in each CacheTexture. Change-Id: Id6f628170df0f676f8743ac7de76f2377fc6a012
/frameworks/base/libs/hwui/FontRenderer.cpp
|
2efd5c5886d9acf747bc92f888d731ed558aabcc |
|
15-Aug-2012 |
Chet Haase <chet@google.com> |
Glyph cache optimization Precaching at startup was not working. One-liner fix to init the caches so that precaching would kick in earlier, saving time at startup by avoiding the multiple-upload issue of caching at render time. Issue #6893691 long app launch time on manta for some apps comparing to nakasi/stingray Change-Id: Ie5c7f0536ec8ea371c7892e5e09c1db14795531c
/frameworks/base/libs/hwui/FontRenderer.cpp
|
e816baea651476aca4407200d4a5e629b9ab8dfa |
|
09-Aug-2012 |
Chet Haase <chet@google.com> |
Optimize interactions with glyph cache There are two fixes here: - precaching: instead of caching-then-drawing whenever there is a new glyph, we cache at DisplayList record time. Then when we finally draw that DisplayList, we just upload the affected texture(s) once, instead of once per change. This is a huge savings in upload time, especially when there are larger glyphs being used by the app. - packing: Previously, glyphs would line up horizontally on each cache line, leaving potentially tons of space vertically, especially when smaller glyphs got put into cache lines intended for large glyphs (which can happen when an app uses lots of unique glyphs, a common case with, for example, chinese/japanese/korean languages). The new approach packs glyphs vertically as well as horizontally to use the space more efficiently and provide space for more glyphs in these situations. Change-Id: I84338aa25db208c7bf13f3f92b4d05ed40c33527
/frameworks/base/libs/hwui/FontRenderer.cpp
|
b6039811fa0fbc23f25c47491810faeb04ce3125 |
|
08-Aug-2012 |
Jean-Baptiste Queru <jbq@google.com> |
am 05e97e81: am 0be33f2d: Merge "Add shortcut to avoid potential divide by zero in some case" * commit '05e97e81a5fa2c9cab4cdda15aa2d036243a0c0e': Add shortcut to avoid potential divide by zero in some case
|
33fa1f774c8e7289fd7c39fbc2c65b9361f2c2c4 |
|
08-Aug-2012 |
Romain Guy <romainguy@google.com> |
Draw an empty border around glyphs to avoid sampling issues Bug #6942209 The font renderer was preserving a 1 px border around each glyph to ensure bilinear filtering would work nicely. Unfortunately, this border was not set to 0 when glyphs were added in the cache to replace old evicted glyphs. Change-Id: Ib85afca7ebad5cb63f960dc0e87ae162333dbfe8
/frameworks/base/libs/hwui/FontRenderer.cpp
|
0412cfcbcdd7224f80a80180a946f0fdd28c3afc |
|
25-Jul-2012 |
Chen YANG <chen.yang@intel.com> |
Add shortcut to avoid potential divide by zero in some case Change-Id: If4b34c95402daf8ebcc28736edfb2012553aa57c
/frameworks/base/libs/hwui/FontRenderer.cpp
|
00755fed35e4a91291c42a8a47bed8b957e9f8e1 |
|
20-Jul-2012 |
Raph Levien <raph@google.com> |
Merge "Add drop shadow for drawPosText in hwui renderer."
|
416a847633680d94efb926837efdc18726d54918 |
|
20-Jul-2012 |
Raph Levien <raph@google.com> |
Add drop shadow for drawPosText in hwui renderer. This patch adds support for drop shadows (setShadowLayer) for drawPosText in the hwui renderer. In and of itself, it's not very important, but it's on the critical path for correct mark positioning, tracked as bug 5443796. The change itself is fairly straightforward - it basically just adds an extra "positions" argument to all draw and measure methods on the code path for drawing drop shadowed text, as well as to the cache key for cached shadow textures. Change-Id: Ic1cb63299ba61ccbef31779459ecb82aa4a5e672
/frameworks/base/libs/hwui/FontRenderer.cpp
|
0aa87bbfc41e8b5f52de701ac17b4e66a7a7b609 |
|
20-Jul-2012 |
Romain Guy <romainguy@google.com> |
Fix crash with new LookupGammaFontRenderer Bug #6853934 Change-Id: I15e6ca73bfe00eff1a37c4b9d2f7f709ee018eb6
/frameworks/base/libs/hwui/FontRenderer.cpp
|
b1d0a4ed21168fefcb82232c8f22cb95d60acb85 |
|
14-Jul-2012 |
Romain Guy <romainguy@google.com> |
Refactor GammaFontRenderer This change is the first step to a shader-based text antialias gamma correction. Change-Id: I9eb02d4c56cb95d05219f712290c865b46141954
/frameworks/base/libs/hwui/FontRenderer.cpp
|
16c88085255c71a1a8fc034129aa2dcc61e1ddd0 |
|
12-Jun-2012 |
Romain Guy <romainguy@google.com> |
Textured text calls could be invisible Bug #6597730 Text would sometimes not appear when rendered with textured content (BitmapShader, LinearGradientShader, etc.) This was due to a misuse of OpenGL texture unit in FontRenderer. Textured text normally uses two texture units: - texture unit 0 for the font cache - texture unit 1 for the textured content (gradient, etc.) Recent changes to the font renderer allow it to bind new textures while processing the text's geometry (this happens when caches get full or when switching font size for instance.) The bindings were done without ensuring the texture unit was the correct one (unit 0), thus replacing the content of another texture unit (unit 1). This lead to text being drawn using the font cache itself as the content texture, making the text invisible. Change-Id: I392b4c884f09223305f6cbc6253e2ef9a98944c9
/frameworks/base/libs/hwui/FontRenderer.cpp
|
99a6ddd4cd8762654a575eb4ac3d0e5431d919b8 |
|
15-May-2012 |
Romain Guy <romainguy@google.com> |
Forget the name of a texture after freeing Bug #6408362 FontRenderer allocates large font textures when more room is needed to store all the glyphs used by an application. Thse large textures are the first to be freed when memory needs to be reclaimed by the system. When freeing a texture, the renderer would however not set the texture name to an invalid name, leading future allocations to be performed on the same texture name. That name could have by then be recycled by the driver and returned by a call to glGenTexture and used to create an entirely different texture. This would cause the font renderer to point to the wrong texture, thus leading to the "corruptions." Change-Id: I8a1e80e5b79e8f21d1baf5320c090df4f2066cd4
/frameworks/base/libs/hwui/FontRenderer.cpp
|
9d9758ae30a59dcf594e0d26ba5d4ee153a3e44a |
|
15-May-2012 |
Romain Guy <romainguy@google.com> |
Fix two memory leaks Bug #6408362 Change-Id: I58543938e7b64d83504e11e97b0dd21ef8ebf3b6
/frameworks/base/libs/hwui/FontRenderer.cpp
|
ae91c4cbc79ea910753be65e2f1d7899abcb4da2 |
|
14-May-2012 |
Romain Guy <romainguy@google.com> |
Properly pre-cache latin glyphs Bug #6408362 Change-Id: Ie11644c5a9e2d87d3b851b7e619e5f04b60a7e02
/frameworks/base/libs/hwui/FontRenderer.cpp
|
6554943a1dd6854c0f4976900956e556767b49e1 |
|
27-Mar-2012 |
Romain Guy <romainguy@google.com> |
Use a status_t return type for GL functors WebView needs more fine-grained control over the behavior of the framework upon execution of the display lists. The new status_t allows WebView to requests its functor to be re-executed directly without causing a redraw of the entire hierarchy. Change-Id: I97a8141dc5c6eeb6805b6024cc1e76fce07d24cc
/frameworks/base/libs/hwui/FontRenderer.cpp
|
a9dd820184ee4d083bd9b2af735dcf50b78fc6cd |
|
26-Mar-2012 |
Romain Guy <romainguy@google.com> |
Prevent random crashes on SGX architecture Bug #6219894 Change-Id: If77f29da03e557a50e53bae505e1c638a1dbe2cc
/frameworks/base/libs/hwui/FontRenderer.cpp
|
b0317984d34da99b614597ad0a8b39268eacb783 |
|
21-Mar-2012 |
Romain Guy <romainguy@google.com> |
Plug memory leak. Bug #6196903 Whenever a memory flush happens, the GL renderer discards some or all of its font caches. Each font cache holds an array of vertex indices that was initially designed to have the same life cycle as the process. This changed when memory flushes were introduced but this array was never taken care of in the destructor. Change-Id: Ief124f609ea55b671c0a9b43637d9e013629ebaa
/frameworks/base/libs/hwui/FontRenderer.cpp
|
dd7c8e4c68205d39109d4317dd0c9b05ed43e8e5 |
|
01-Mar-2012 |
Romain Guy <romainguy@google.com> |
Small tweak to Canvas.drawPath() GL implementation Change-Id: I1d668a912996e1267bcf2127058888e489a2d9b3
/frameworks/base/libs/hwui/FontRenderer.cpp
|
9777173eb6c9eb97c7921c8288ebc65e3ab3ce6f |
|
29-Feb-2012 |
Romain Guy <romainguy@google.com> |
Full implementation of Canvas.drawPath() Change-Id: I23223b89770a0cd2b4762365bead9bfddb094290
/frameworks/base/libs/hwui/FontRenderer.cpp
|
b629490ffb21752750cc081827ca4c1eae1eb015 |
|
03-Feb-2012 |
Romain Guy <romainguy@google.com> |
Disable debugging code in the font renderer Change-Id: I92463057ff4ae712bb25789db1667ff1ecfd389f
/frameworks/base/libs/hwui/FontRenderer.cpp
|
671d6cf460531825a321edb200523d0faa7792c9 |
|
18-Jan-2012 |
Romain Guy <romainguy@google.com> |
Full support for Canvas.drawPosText This also introduces a small optimization when rendering text. Change-Id: Iff620ac97bf878eaac406bccc6daa07052c93890
/frameworks/base/libs/hwui/FontRenderer.cpp
|
3762c311729fe9f3af085c14c5c1fb471d994c03 |
|
06-Jan-2012 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/#/c/157220 Bug: 5449033 Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
/frameworks/base/libs/hwui/FontRenderer.cpp
|
9a8245629d69d81e0b62e52970feaf9c02580e75 |
|
17-Dec-2011 |
Chet Haase <chet@google.com> |
De-allocate caches for large glyphs when trimming memory 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
/frameworks/base/libs/hwui/FontRenderer.cpp
|
2a47c14e2a6f152496b43104bc785c488583fd59 |
|
15-Dec-2011 |
Chet Haase <chet@google.com> |
Fix issues from recent glyph caching change 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
/frameworks/base/libs/hwui/FontRenderer.cpp
|
2d4fd364843d3efc6e6ee59ccc5beb513a86d789 |
|
14-Dec-2011 |
Romain Guy <romainguy@google.com> |
Reduce the number of active texture changes Change-Id: I94046bdfe20740c26c8183822e3002d692fde7c4
/frameworks/base/libs/hwui/FontRenderer.cpp
|
e829bc0f0364e942bed01536d115a5c08d25d776 |
|
13-Dec-2011 |
Chet Haase <chet@google.com> |
Merge "Make glyph cache more flexible"
|
7de0cb12d0e5fd64811da0b5d1ae0c0d58b86f86 |
|
06-Dec-2011 |
Chet Haase <chet@google.com> |
Make glyph cache more flexible 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
/frameworks/base/libs/hwui/FontRenderer.cpp
|
15bc6437f8b4cf10dba55c7638d349e7b9563f4f |
|
13-Dec-2011 |
Romain Guy <romainguy@google.com> |
Reduce the number of GL commands generated by the UI 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
/frameworks/base/libs/hwui/FontRenderer.cpp
|
f3a910b423db7ad79cf61518bdd9278c048ad0d8 |
|
13-Dec-2011 |
Romain Guy <romainguy@google.com> |
Optimize state changes Change-Id: Iae59bc8dfd6427d0967472462cc1994987092827
/frameworks/base/libs/hwui/FontRenderer.cpp
|
d71dd367af604571c7d00ca473184a1b9240eca2 |
|
13-Dec-2011 |
Romain Guy <romainguy@google.com> |
Minimize the amount of data uploaded to draw text Change-Id: I6313ac039291c9cd93aadafe3566ad9d60cab42d
/frameworks/base/libs/hwui/FontRenderer.cpp
|
ff98fa5a847f66e591287154c634ef7895a9549c |
|
28-Nov-2011 |
Romain Guy <romainguy@google.com> |
Fix crash in existing applications Bug #5659476 The FontRenderer was not cleaning up its temporary state, leading to crashes when invoking renderDropShadow. Change-Id: I43b24820dd5625af8c080bbe11b64de2f74164b2
/frameworks/base/libs/hwui/FontRenderer.cpp
|
5a6d3a4c0311318e6f1d4ee06aa47606e055a81b |
|
08-Oct-2011 |
Romain Guy <romainguy@google.com> |
Stupid fixed point math. Bug #5423215 Change-Id: I39379e1f8fb4d59de4ede6e4fe7cf7a2c7cc625a
/frameworks/base/libs/hwui/FontRenderer.cpp
|
799833a8b451a04be201d25ae72213e8562f7774 |
|
30-Aug-2011 |
Romain Guy <romainguy@google.com> |
Text would disappear when the font size is 75px. Bug #5230196 Yes, 75px. Any other font size would work. Don't ask. Change-Id: I96c7db9926a97f65128d60c8238c3640ee2444ba
/frameworks/base/libs/hwui/FontRenderer.cpp
|
bd496bc3d481f9cfc39007d22372d3a1a8809f96 |
|
03-Aug-2011 |
Romain Guy <romainguy@google.com> |
Paint style and stroke width affect text rendering. Bug #5112207 Change-Id: Ic34037ace21a5058ba23dd15e51aae58c998454d
/frameworks/base/libs/hwui/FontRenderer.cpp
|
726aeba80ffc6778a9bc3e0ee957b8d644183505 |
|
01-Jun-2011 |
Romain Guy <romainguy@google.com> |
Add support to OpenGLRendere to draw BiDi text. Bug #4350336 Change-Id: I1cf31693f7ca9653fa3a41b5b91c27ef288d680f
/frameworks/base/libs/hwui/FontRenderer.cpp
|
44984ea0cb3702384d023b5f211deda3c4b0b656 |
|
19-May-2011 |
Chet Haase <chet@google.com> |
Enable large font rendering with GPU acceleration Change-Id: I7b022100fb0762613f9cf7753dbb0217e1e75f8d
/frameworks/base/libs/hwui/FontRenderer.cpp
|
8668f8a633d9299091556c3b2e5ae07be8dce360 |
|
02-Mar-2011 |
Chet Haase <chet@google.com> |
Fix problem with glyph cache and textScaleX property Glyphs drawn with paints that had different textScaleX values were not being recognized as different, so the glyph cache was being used regardless of different scaleX values. This change adds the scaleX attribute to the native Font object to allow the cache to distinguish between this difference and cache accordingly. Change-Id: I5d8fc26d47460b27dc8e373a473d46b2f1b8dc30
/frameworks/base/libs/hwui/FontRenderer.cpp
|
894df17eee708688c8a6e67941add2017239c790 |
|
18-Feb-2011 |
Alex Sakhartchouk <alexst@google.com> |
Fixing font renderer attribute slot locations. Change-Id: I6377bb641df7d8372d873c00790189f9a190afd6
/frameworks/base/libs/hwui/FontRenderer.cpp
|
c9855a53edfac818dc68714557185977556f849d |
|
22-Jan-2011 |
Romain Guy <romainguy@google.com> |
Log only 1 line per process when using OpenGLRenderer. Change-Id: Idbdd6b84f31301e58ed53e0d50fd61fece192dfa
/frameworks/base/libs/hwui/FontRenderer.cpp
|
514fb18827186591d66973c2362c859b64b63556 |
|
19-Jan-2011 |
Romain Guy <romainguy@google.com> |
Don't attempt to create empty layers. Bug #3369888 Change-Id: Ic17bbd1c04bbf760cb17d0eb9e6767fd6479948c
/frameworks/base/libs/hwui/FontRenderer.cpp
|
2577db1ec135a1470a2c42139772ec97a6c30e78 |
|
18-Jan-2011 |
Romain Guy <romainguy@google.com> |
Add support for Paint::setTextSkewX in OpenGLRenderer. Bug #3360888 Change-Id: I42e81a1f10bf7b9ae1c63ca8add1878fd59a1e8a
/frameworks/base/libs/hwui/FontRenderer.cpp
|
325a0f969c1d803d7e39a9caee8cc3d400350659 |
|
06-Jan-2011 |
Romain Guy <romainguy@google.com> |
The font cache should respect the fake bold flag. Change-Id: Ie4edc9ba46610edde831b55e769944e9a19bdcb5
/frameworks/base/libs/hwui/FontRenderer.cpp
|
5b3b35296e8b2c8d3f07d32bb645d5414db41a1d |
|
28-Oct-2010 |
Romain Guy <romainguy@google.com> |
Optimize FBO drawing with regions. This optimization is currently disabled until Launcher is modified to take advantage of it. The optimization can be enabled by turning on RENDER_LAYERS_AS_REGIONS in the OpenGLRenderer.h file. Change-Id: I2fdf59d0f4dc690a3d7f712173ab8db3848b27b1
/frameworks/base/libs/hwui/FontRenderer.cpp
|
054dc1840941665e32036f9523df51720ad069c8 |
|
16-Oct-2010 |
Romain Guy <romainguy@google.com> |
Don't draw entirely transparent 9patch meshes. Change-Id: If3e62e18b8e0dbde8a22f8ede2889b86500a4dc2
/frameworks/base/libs/hwui/FontRenderer.cpp
|
5d794412e3e429e47404395badcd11b0b8639e8b |
|
14-Oct-2010 |
Romain Guy <romainguy@google.com> |
Small potential performance improvement for fonts rendering. Change-Id: If59c1e7803b84340fbc8b31ce6171ef0e5dc6189
/frameworks/base/libs/hwui/FontRenderer.cpp
|
e8cb9c14309b0f01c0159efdf9a7198f44a62642 |
|
04-Oct-2010 |
Romain Guy <romainguy@google.com> |
Apply bilinear filtering on text only when necessary. Change-Id: Ic903f4b5d30e9c92528c6291941896efe4729ee3
/frameworks/base/libs/hwui/FontRenderer.cpp
|
1de1083e98cde9bdd5e8539dbc54fdea6531906e |
|
03-Oct-2010 |
Romain Guy <romainguy@android.com> |
Initialize font texture cache. Now that text is renderer using bilinear filtering, each character is surrounded by a 1 pixel border. This border needs to be initialized to a transparent value. Change-Id: I26d3195db4bd576ac1f2da4c8f8e4dd18768bf12
/frameworks/base/libs/hwui/FontRenderer.cpp
|
7975fb6d12cb1eb96b75e3a563627cd4c4081bd6 |
|
02-Oct-2010 |
Romain Guy <romainguy@google.com> |
Apply bilinear filtering to text. Change-Id: I2c81ad657ee2a11a2139e0b11ae3749db54c0749
/frameworks/base/libs/hwui/FontRenderer.cpp
|
e2d345ea67e2960b37bfdc0fc8626d1bfa747404 |
|
25-Sep-2010 |
Romain Guy <romainguy@google.com> |
Add debug mode to measure performance. Change-Id: I9d4c84034dc200b99c8266165942a7cdbcb5c0c5
/frameworks/base/libs/hwui/FontRenderer.cpp
|
58ef7fbf16864164efe98bf613b15c64deb1afc0 |
|
13-Sep-2010 |
Romain Guy <romainguy@google.com> |
Forces windows to draw the first time they show. Change-Id: I239572ee49bc60f30d957f548104e75844859a93
/frameworks/base/libs/hwui/FontRenderer.cpp
|
2bffd268f135df8308c9e67af110525a5c463424 |
|
13-Sep-2010 |
Romain Guy <romainguy@google.com> |
Fix text rendering issue with text scaling. Change-Id: I1f3ae40025697e8f8ca0616ee6550fe215cadcc8
/frameworks/base/libs/hwui/FontRenderer.cpp
|
b45c0c9774bd19a9dbe77d149abae4e124b08bf6 |
|
27-Aug-2010 |
Romain Guy <romainguy@google.com> |
Apply gamma correction to font rendering. Change-Id: I1b05f40e356221b2a5eb9400e67d77ecd98ed6c4
/frameworks/base/libs/hwui/FontRenderer.cpp
|
1e45aae5de003657e5d18f74d34998f5de5db5b7 |
|
14-Aug-2010 |
Romain Guy <romainguy@google.com> |
Add drop shadows. Change-Id: Ic6a72409d4785968d1fbdff229f17ee5c00b240b
/frameworks/base/libs/hwui/FontRenderer.cpp
|
61c8c9c5b2006d18e9310b6521c65b36ffe75ce4 |
|
10-Aug-2010 |
Romain Guy <romainguy@google.com> |
Fix tons of bugs and add new text rendering support. Change-Id: I326c66b10784006f6df2f12d38e120cef94cd0d7
/frameworks/base/libs/hwui/FontRenderer.cpp
|
9cccc2b9bdd4850a3f9679569aaec3ab98477a5d |
|
08-Aug-2010 |
Romain Guy <romainguy@android.com> |
Enforce maximum texture size. When an app tries to render a bitmap or path larger than the GPU's maximum texture size, the drawing command is ignored and a warning is logged. This change also makes texture drawing more robust by catching potential errors during texture creation. This change also fixes a crash in the FontRenderer. The destructor would sometimes try to free an uninitialized array. Change-Id: I95ae0939c52192d97b340aa02417bf6d0c962c57
/frameworks/base/libs/hwui/FontRenderer.cpp
|
f18136cb3c881a9d16c1a4f0f341732c276936bf |
|
06-Aug-2010 |
Alex Sakhartchouk <alexst@google.com> |
Added drop shadow renderer to the font class. Change-Id: Id243abfbbb58e54f6a05f592a302984b5321e608
/frameworks/base/libs/hwui/FontRenderer.cpp
|
89a524ac2d4a36739e51b01b336c0bade77e2ee0 |
|
03-Aug-2010 |
Alex Sakhartchouk <alexst@google.com> |
Adding drop shadow support Change-Id: I9b1b9568d6cebc0761d96ab678b018571f705ae1
/frameworks/base/libs/hwui/FontRenderer.cpp
|
ae5575b3421c8fbe590ab046d7d5f2b36ecfd821 |
|
30-Jul-2010 |
Romain Guy <romainguy@google.com> |
Fix gradients rendering and destructor crashes. This changes binds all textures to GL_TEXTURE0, this will have to be changed when combining shader capabilities. Change-Id: I02df4f5ba41e9b01ffa52fd7c26b41477c7ed18f
/frameworks/base/libs/hwui/FontRenderer.cpp
|
889f8d1403761d5668115ced6cbb3f767cfe966d |
|
29-Jul-2010 |
Romain Guy <romainguy@google.com> |
Moved all the rendering code to the new shader generator. The generator supports features that are not yet implement in the renderer: color matrix, lighting, porterduff color blending and composite shaders. This change also adds support for repeated/mirrored non-power of 2 bitmap shaders. Change-Id: I903a11a070c0eb9cc8850a60ef305751e5b47234
/frameworks/base/libs/hwui/FontRenderer.cpp
|
65ef909776c03417d8b597738da54ca211e37e4f |
|
26-Jul-2010 |
Alex Sakhartchouk <alexst@google.com> |
When font cache still has empty space, precache some commonly used characters to reduce studder. Change-Id: I1f66f57482c4a025672dfd1d8ecaf2b9736cd9a0
/frameworks/base/libs/hwui/FontRenderer.cpp
|
9b9902ddbb01548f4a0199087b7035e7c10b2ae7 |
|
23-Jul-2010 |
Alex Sakhartchouk <alexst@google.com> |
Updating parts of font cache as needed instead of the entire map. Change-Id: If9a37e10197255122acdb5b10a0c356edd942d67
/frameworks/base/libs/hwui/FontRenderer.cpp
|
51769a68a5cb34e9564740c6a854fcb93018789d |
|
23-Jul-2010 |
Romain Guy <romainguy@android.com> |
Cleanup, added properties for the FontRenderer. Change-Id: I909c74815d3ac394438ad8071d17fef5401dbeed
/frameworks/base/libs/hwui/FontRenderer.cpp
|
09147fbdc8206a0cac78bfe9083e7e15b3c5689c |
|
22-Jul-2010 |
Romain Guy <romainguy@google.com> |
Add support for text culling. Change-Id: Ibf0adacdc5c64d40a8000b21d7cb0797d63efe29
/frameworks/base/libs/hwui/FontRenderer.cpp
|
694b519ac647fe998fd396fe0784cc8e179aadc4 |
|
22-Jul-2010 |
Romain Guy <romainguy@google.com> |
Add text rendering. Change-Id: Ibe5a9fa844d531b31b55e43de403a98d49f659b9
/frameworks/base/libs/hwui/FontRenderer.cpp
|