4797 Commits

Author SHA1 Message Date
Romain Guy
c74f45a334 Properly scale text
This change does not apply to drawPosText() and drawTextOnPath() yet.

Prior to this change, glyphs were always rasterized based on the
font size specified in the paint. All transforms were then applied
on the resulting texture. This creates rather ugly results when
text is scaled and/or rotated.

With this change, the font renderer will apply the current transform
matrix to the glyph before they are rasterized. This generates much
better looking results.

Change-Id: I0141b6ff18db35e1213e7a3ab9db1ecaf03d7a9c
2013-02-27 15:49:57 -08:00
Chris Craik
d80806b305 Merge "Fix T-junctions in layers' generated meshes" into jb-mr2-dev 2013-02-27 23:47:55 +00:00
Romain Guy
a6456d0d7e Merge "Draw text drop shadows even when the text color is transparent" into jb-mr2-dev 2013-02-27 22:16:22 +00:00
Chris Craik
6c5b9be745 Fix T-junctions in layers' generated meshes
bug:4128442

Currently we fix T-junctions for hardware layers, and for
Canvas.saveLayer if the transform isn't rectAsRect. Ideally, hardware
layers should lazily re-generate T-junction free geometry if the
transform becomes non-rectAsRect

Depends on frameworks/native change:
https://googleplex-android-review.googlesource.com/#/c/277668/
which adds Region::createTJunctionFreeRegion()

Change-Id: Ice75b4a1a4459ff835059ea81d70f7d1563fd96d
2013-02-27 14:03:19 -08:00
Romain Guy
768bffc9b8 Draw text drop shadows even when the text color is transparent
This matches Skia's behavior.

Change-Id: Ibf0a52611f5801cfa68169f66ab0ec06f256600f
2013-02-27 13:52:26 -08:00
Romain Guy
758724fd09 Don't increment the paint's generation ID when drawing bitmaps
When the renderer draws a bitmap as part of a display list with an
alpha < 1.0f, the paint is temporarily modified to alter the opacity
of the bitmap. This has the side effect of increasing the paint's
generation ID counter which can break paint caching.

Change-Id: I5055d059ad1639829fa50af3d946e296c4dab877
2013-02-27 11:53:12 -08:00
Romain Guy
08bca88b27 Rename debug property and expose it in HardwareRenderer
Change-Id: If46a9bc14a50f6c9a202d901881b36bbac32cba3
2013-02-25 16:21:30 -08:00
Romain Guy
3ff0bfdd14 Add new property to debug non-rectangular clip operations
This change adds a new property called "debug.hwui.show_stencil_clip"
that accepts the following values:

- "highlight", colorizes in green any drawing command that's tested
  against a non-rectangular clip region
- "region", shows the non-rectangular clip region in blue every time
  it is used
- "hide", default value, nothing is shown

Change-Id: I83c8602310edc4aaeb8b905371cdd185b17d32b5
2013-02-25 15:01:58 -08:00
Chris Craik
fb68065709 Merge "Add deferredList null check" 2013-02-23 00:42:53 +00:00
Chris Craik
ba868c3e22 Add deferredList null check
Needed for non-deferred mode (debug.hwui.disable_draw_defer = true)

Change-Id: I278cbe200aa6ce06fa92dc45c63ceda6e85a0cbe
2013-02-22 16:28:27 -08:00
Chris Craik
dd8697c095 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
2013-02-22 16:16:16 -08:00
Romain Guy
505d1d64ed Merge "Prettify display lists logging" 2013-02-22 21:45:57 +00:00
Romain Guy
7031ff68bb Prettify display lists logging
This change makes it a lot easier to see the tree structure.

Change-Id: I4969abd1eb010f1d529671f8d86dc4c930be24f6
2013-02-22 11:51:15 -08:00
Chris Craik
94b97b38b7 am eab51de4: Merge "Fix clipping and stencil layer issues"
* commit 'eab51de4de88219256260fe26e2018a6234ef83b':
  Fix clipping and stencil layer issues
2013-02-21 19:31:17 -08:00
Chris Craik
eab51de4de Merge "Fix clipping and stencil layer issues" 2013-02-22 03:28:06 +00:00
Kenny Root
4e89d1a9b2 am 893df066: am 8dda0956: am 49999acb: Merge "StreamingZipInflater: fix mmap\'d end of read"
* commit '893df066bbd156b05171e68204a407a212c507e9':
  StreamingZipInflater: fix mmap'd end of read
2013-02-21 16:28:14 -08:00
Kenny Root
893df066bb am 8dda0956: am 49999acb: Merge "StreamingZipInflater: fix mmap\'d end of read"
* commit '8dda0956b6565a958989af44e885b94dc9bfc9bd':
  StreamingZipInflater: fix mmap'd end of read
2013-02-21 16:24:41 -08:00
Chris Craik
b98a016c67 Fix clipping and stencil layer issues
bug:8235699

Ensure rectangle clipping operations disable deferring when necessary
(i.e., when the op might create a non-rect region), including in
DisplayList::setViewProperties

Additionally, makes clipping with a kUnion always use a region, for
consistency with software rendering

Change-Id: I6730f1a80250bcf3f91cd4afde646d470a12dbc2
2013-02-21 16:12:00 -08:00
Ben Cheng
08d160a366 am 7a60c43d: Merge "Use free for memory chunks allocated through memalign."
* commit '7a60c43d874bd047ea4b93b94c9b8771ea5739cc':
  Use free for memory chunks allocated through memalign.
2013-02-20 14:39:35 -08:00
Ben Cheng
7a60c43d87 Merge "Use free for memory chunks allocated through memalign." 2013-02-20 22:34:58 +00:00
Ben Cheng
15641a6181 Use free for memory chunks allocated through memalign.
BUG: 8234423
Change-Id: Ic4100a780908c94540722cc4af5f73f4940431b4
2013-02-20 13:20:03 -08:00
Chris Craik
c4ca87f0f4 am 8a47d8ea: Merge "Clean up clipping and deferral logic"
* commit '8a47d8eaec26d0937aee94a057f561f246748339':
  Clean up clipping and deferral logic
2013-02-20 10:42:40 -08:00
Chris Craik
8a47d8eaec Merge "Clean up clipping and deferral logic" 2013-02-20 18:40:03 +00:00
Chris Craik
5d11676414 Clean up clipping and deferral logic
bug:8037003

-Merges replay methods
-Bounds checking for DrawBitmapMesh, DrawRects and DrawDisplayList
-Use clip as bounds for otherwise unbounded draw operations

Clip-as-bounds is correct for drawColor and functor, but other draw
operations (pos text, text on path, and layers) still need true bounds
calculation

Change-Id: I5d5149d2c624f01e3fe46628bf156e835e69b9d5
2013-02-19 18:56:10 -08:00
Romain Guy
846f5f238f am e91efaba: Merge "Expose display list APIs"
* commit 'e91efabaf2c51d017bf4c5bc4e06491c3511f4e5':
  Expose display list APIs
2013-02-19 12:36:28 -08:00
Romain Guy
52036b19a5 Expose display list APIs
The exposed APIs are slightly simpler than the full APIs used internally.
Only APIs useful to applications are exposed.

Change-Id: Ie03014628d40ad5ef63dedbc52ce3def84429d54
2013-02-19 12:30:02 -08:00
Chris Craik
620cff4006 am ad82f20d: Merge "DisplayList draw operation reordering"
* commit 'ad82f20d2382396f5ac75fdf6f7db5c4da1c4c23':
  DisplayList draw operation reordering
2013-02-19 09:56:33 -08:00
Chris Craik
ad82f20d23 Merge "DisplayList draw operation reordering" 2013-02-19 17:53:50 +00:00
Chris Craik
eea34dab43 am ac838a3a: Merge "Correct PatchCache comparison logic"
* commit 'ac838a3ab9d85112576cf2c943930441f62c51d2':
  Correct PatchCache comparison logic
2013-02-15 19:41:32 -08:00
Chris Craik
ac838a3ab9 Merge "Correct PatchCache comparison logic" 2013-02-16 03:36:37 +00:00
Chris Craik
9935abceea Correct PatchCache comparison logic
Change-Id: I3d0832505b5380bfa362863b39e09dd10f792582
2013-02-15 19:33:43 -08:00
Chris Craik
225e8943de am 857089eb: Merge "Adjust offset for non-AA line drawing"
* commit '857089eb1efcc7d86f373edf8cb30911a95f6bac':
  Adjust offset for non-AA line drawing
2013-02-15 18:11:13 -08:00
Chris Craik
857089eb1e Merge "Adjust offset for non-AA line drawing" 2013-02-16 02:09:22 +00:00
Chris Craik
62a42c13a6 Adjust offset for non-AA line drawing
bug:8114304

The original .375 was chosen to make GL_LINES align with Skia drawing.
The new value of .065 is chosen to be as small as possible to make
triangle-based lines align with Skia, while keeping lines drawn on
integer coordinates unambiguous as to which column/row they draw on.

Also adds more lines in CanvasCompare test to highlight the difference

Change-Id: If578684f2db320682219c3caa625cf79bc62d88f
2013-02-15 14:53:12 -08:00
Romain Guy
df93fdb6c0 am aa8307b9: Merge "Remove obsolete header file"
* commit 'aa8307b991b9fca5403b5d7f43659b92527af4fd':
  Remove obsolete header file
2013-02-15 14:28:19 -08:00
Chris Craik
c3566d0642 DisplayList draw operation reordering
bug:8037003

The reordering enables similar operations to draw together, minimizing the
OpenGL state change operations that go inbetween draws. Eventually, multiple
complete canvas draw operations will be merged (into a single glDrawArrays call,
for example)

Reorders DisplayList draw operations when:

-They can move backwards in the command stream to be after similar
operations without violating draw ordering

-The OpenGLRenderer is in a simple, replayable state (no complex clip,
or filter/shadow etc)

Also adds two system properties to control the deferral/reordering:
    "debug.hwui.disable_draw_defer"
    "debug.hwui.disable_draw_reorder"
which can be set to "true" to control the display list manipulation

Change-Id: I5e89f3cb0ea2d2afd3e15c64d7f32b8406777a32
2013-02-15 13:30:09 -08:00
Romain Guy
13ba005484 Remove obsolete header file
We now use the same mechanism to compare keys everywhere in libhwui.

Change-Id: I8b3cb25b13f4f38eb6f12aed0356f796a773617c
2013-02-15 12:47:26 -08:00
Kenny Root
c6e35cb47a StreamingZipInflater: fix mmap'd end of read
When reaching the end of a mmap'd segment, it was erroneously trying to
read more data. This is because we were reading data one character at a
time, so we never reached the Z_STREAM_END result without going through
the loop once more.

Bug: https://code.google.com/p/android/issues/detail?id=39041
Change-Id: I6c53b8187384a42217c32112d6a0c2857f471109
2013-02-15 11:05:48 -08:00
Kristian Monsen
41250b67fe resolved conflicts for merge of 101ae3bb to master-chromium
Only include file changes in conflict.

Change-Id: I1b6eb3343e7163827d8031ffea4b77f294980ccc
2013-02-14 23:59:27 -08:00
Chris Craik
101ae3bb39 Merge "Move DisplayList to its own cpp file" 2013-02-15 00:50:52 +00:00
Chris Craik
0776a60693 Move DisplayList to its own cpp file
Change-Id: Ic9c1bbf4673ad5c756f3908b2ab7e699edd6a119
2013-02-14 15:40:03 -08:00
Romain Guy
feb6954da1 am 10c0aa24: Merge "Implement support for drawBitmapMesh\'s colors array"
# Via Android (Google) Code Review (1) and Romain Guy (1)
* commit '10c0aa246d9b2633c6cb4e5b714abb0031a4f4cd':
  Implement support for drawBitmapMesh's colors array
2013-02-14 10:54:21 -08:00
Romain Guy
10c0aa246d Merge "Implement support for drawBitmapMesh's colors array" 2013-02-14 18:51:28 +00:00
Romain Guy
ff316ec7a7 Implement support for drawBitmapMesh's colors array
Change-Id: I3d901f6267c2918771ac30ff55c8d80c3ab5b725
2013-02-13 18:39:43 -08:00
Chris Craik
0229d0818c 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""
2013-02-13 16:45:46 -08:00
Chris Craik
f2d8ccc15d Revert "Revert "Use RenderScript for large text blurs""
This reverts commit bf5703e52e3304246cbf0e73f6976f7d7312d238.

Change-Id: Ic6f991277dec9e80a6fed93db91499726b30ab2a
2013-02-13 16:40:02 -08:00
Chris Craik
c932760f66 Merge "Revert "Merge remote-tracking branch 'goog/master-chromium' into 'goog/master'" DO NOT MERGE" 2013-02-13 23:14:58 +00:00
Chris Craik
68b600913b Merge "Revert "Use RenderScript for large text blurs"" 2013-02-13 19:50:24 +00:00
Chris Craik
bf5703e52e Revert "Use RenderScript for large text blurs"
This reverts commit 3f76e65d251ead65fe8ff98e3bd4c7623fbaac07

Change-Id: Ia81cd485e5ca696bb284c419dc8a1d2f3247100e
2013-02-13 19:47:24 +00:00
Romain Guy
0450086a84 Merge "Fix format name typo" 2013-02-13 19:35:33 +00:00