History log of /frameworks/base/libs/hwui/Rect.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f53bfc911fa88c15b25f38553a5647ad00f221a3 22-Jul-2016 Chih-Hung Hsieh <chh@google.com> resolve merge conflicts of 3fb651b to nyc-mr1-dev-plus-aosp

Change-Id: I52d56e84620c85638798d949f8eb819387a01902
05160d70d14180fef3782a63dff2e822b51c3cf5 22-Jul-2016 Chih-Hung Hsieh <chh@google.com> resolve merge conflicts of 5152fd9 to stage-aosp-master

Change-Id: I2066125eb4076dbc9e8996bb1fa87735aa6040d3
faecb78a6b11c780db47bc940ca7662899ab5d5e 21-Jul-2016 Chih-Hung Hsieh <chh@google.com> Fix google-explicit-constructor warnings in frameworks/base

* Add explicit keyword to conversion constructors.
* Add NOLINT to implicit conversion constructors.

Bug: 28341362
Test: build with clang-tidy
Change-Id: Ie4d37072ab57d1662d18db4de1c8577247f43337
/frameworks/base/libs/hwui/Rect.h
82457c51176855b9be0b441010870093a6feb414 30-Jun-2016 Chris Craik <ccraik@google.com> Handle post-record-time clipPath scaling

bug:29547149

Change-Id: I268210b240d2d8e08638114715f9622840fc02f7
/frameworks/base/libs/hwui/Rect.h
034a10bf216cdef251928edf72d93668d81515f8 10-Mar-2016 Chris Craik <ccraik@google.com> Partial revert of 261725fdb2962271c222a049fcdf57bbdc8363c7

Bug:27534946

Mapping empty rects still must be done to get correct positions for
line/point rects describing strokable bounds.

Change-Id: I2f9efe543e58eb438b755276585491c1256d6719
/frameworks/base/libs/hwui/Rect.h
91eff22b5d7f8fe551bae01331948858ce932a96 22-Feb-2016 Chris Craik <ccraik@google.com> Support op dumping in new pipeline

bug:26565102

Change-Id: I266e420a2f18ba9ad62942b8a0de295dfa3a2a88
/frameworks/base/libs/hwui/Rect.h
15c3f19a445b8df575911a16e8a6dba755a084b5 03-Dec-2015 Chris Craik <ccraik@google.com> Merged op dispatch in OpReorderer

bug:22480459

Also switches std::functions to function pointers on OpReorderer, and
switches AssetAtlas' entry getter methods to using pixelRef pointers,
so it's clear they're the keys.

Change-Id: I3040ce5ff4e178a8364e0fd7ab0876ada7d4de05
/frameworks/base/libs/hwui/Rect.h
a1717271caac5e8ea3808c331d4141ac01a42134 19-Nov-2015 Chris Craik <ccraik@google.com> Initial text support in new reorderer/renderer

Removes obsolete drawPosText codepath, and unifies text decoration behavior.

Change-Id: I9c563249ab688a3394445a0e7fe1b9d0661f6f7c
/frameworks/base/libs/hwui/Rect.h
8ecf41c61a5185207a21d64681e8ebc2502b7b2a 16-Nov-2015 Chris Craik <ccraik@google.com> Add temporary layer alpha fallback to OpReorderer

Also adds logic to clip temporary layers to viewport both for
efficiency and to allow large ones (such as the fallback case) to fit
in max texture size.

Change-Id: Iee51495220f5ca1dc7e6f5fd3615db2e896efd74
/frameworks/base/libs/hwui/Rect.h
ac02eb9035a13a3d09c2def9ed63d04225eb2509 05-Oct-2015 Chris Craik <ccraik@google.com> Remove confusing behavior of Rect::intersect() and rename

bug:24670525

Removes silly 'do nothing if rects do not intersect' behavior, and
changes the name to clarify the difference (contrasting against
SkRect::intersect())

bug:24670525

Change-Id: Id2ca1cfea1a9d720d4dc70b251f426d9916f8b53
/frameworks/base/libs/hwui/Rect.h
df72b63928cc1492b72ba9a4e99d5e714f93ccc6 01-Jul-2015 Chris Craik <ccraik@google.com> Switch from fminf/fmaxf to std::min/max

bug:22208220

Shows considerable improvement in performance, especially in tight
loops.

Change-Id: I4bcf6584a3c145bfc55e73c9c73dcf6199290b3c
/frameworks/base/libs/hwui/Rect.h
8820fd1d82acaefda98ae73ccf61413d5044f9f3 03-Mar-2015 Chris Craik <ccraik@google.com> Patch cleanup, reenable Patch Glops

bug:19597454

Change-Id: If12b95e83588b81a553210cd8c2437c6c771073a
/frameworks/base/libs/hwui/Rect.h
487a92caef2eb90a62e8f8d7a6fe6315f1c1d8d8 06-Jan-2015 Rob Tsuk <robtsuk@google.com> Clipping performance improvements

Create a ClipArea class to handle tracking clip regions. This class can
select the most efficient implementation depending on the types of
clipping presented.

ClipArea re-used the rectangle and region-based clipping
implementations as well as adding a "list of rotated rectangles"
approach that is more efficient for rotated views with children.

Change-Id: I2133761a2462ebc0852b394220e265974b3086f0
/frameworks/base/libs/hwui/Rect.h
e84a208317e0ed388fcdad1e6743c7849acb51b0 22-Dec-2014 Chris Craik <ccraik@google.com> Add overrides and switch to nullptr keyword

Changes generated with clang-modernize.

Additionally, fixed some struct-vs-class usage to make clang happy.

Change-Id: Ic6ef2427401ff1e794d26f21f7b44868fc75fb72
/frameworks/base/libs/hwui/Rect.h
62d307c2402777d5e53b4590af5f32f8c55afd81 29-Jul-2014 Chris Craik <ccraik@google.com> Fix behavior of stencil clipping within clearLayerRegions

bug:16376960

The draw within clearLayerRegions should never be affected by the
current stencil clip, since it's just ensuring that the content of the
layer is cleared, and not doing real content drawing.

Also, add optional verbose GL event logging

Change-Id: I538b1bc631fc091340b76e12db6af0c219851b57
/frameworks/base/libs/hwui/Rect.h
c93e45cf045f41aea95f856173e4043d988a5a5c 16-Jul-2014 Chris Craik <ccraik@google.com> Build layer damage bounds for shadows

bug:15538815

Change-Id: I703afeb7e31c28002bd1aff9ce448ec8cdc4e70d
/frameworks/base/libs/hwui/Rect.h
05f3d6e5111fd08df5cd9aae2c3d28399dc0e7f5 03-Jun-2014 Chris Craik <ccraik@google.com> Tessellate on worker threads

Tessellate and cache (where possible) shadow and round rect
tessellation tasks.

Change-Id: I2cfda8e11d83d51ea74af871235cf26e8f831d40
/frameworks/base/libs/hwui/Rect.h
deeda3d337aed1eee218b89a7aba5992ced371f0 06-May-2014 Chris Craik <ccraik@google.com> Round rect outline clipping

Change-Id: Iee9cf4f719f6f1917507b69189ad114fa365917b
/frameworks/base/libs/hwui/Rect.h
e4aa95e3627226bcb0d8cc3e42dca6e4df8f421c 08-May-2014 Chris Craik <ccraik@google.com> Add logging utility methods

Change-Id: I0f316830dcc0bbf438292a6d0fbe9f8154368500
/frameworks/base/libs/hwui/Rect.h
3f085429fd47ebd32ac2463b3eae2a5a6c17be25 16-Apr-2014 Chris Craik <ccraik@google.com> Clip TouchFeedbackDrawable effect to receiver Outline

Projected RenderNodes are now wrapped with a ClipRect or masked
SaveLayer, so that they are clipped to the outline of the projection
receiver surface.

Change-Id: I1d4afc1bb5d638d650bc0b1dac51a498f216773e
/frameworks/base/libs/hwui/Rect.h
af6f7ed8dd4288a41d0a07a1f0f0be7d6d035b33 19-Mar-2014 ztenghui <ztenghui@google.com> Early rejection on shadows which are outside of the clip bound.

All the computations are estimated using bounding box.
TODO: Spot shadow could have more accurate but also more expensive methods, we need
more experiments to decide.

Change-Id: I9c10c419576cee55daf0f9f278b0db78cb847447
/frameworks/base/libs/hwui/Rect.h
564acf7c9bff822f608cda0d5df0a64a9f9aaefd 03-Jan-2014 Chris Craik <ccraik@google.com> Fix Clang warnings/errors

Fix several build warnings (struct != class, int != size_t) and errors
(variable leng non-POD arrays).

Change-Id: I70b4e784365514303d8954bfcb1f39d7c22c1321
/frameworks/base/libs/hwui/Rect.h
f0a590781b2c3e34132b2011d3956135add73ae0 20-Nov-2013 Chris Craik <ccraik@google.com> Clean up quick rejection, especially surrounding points + lines.

bug:4351353

quickReject and quickRejectNoScissor have been renamed and refactored:
- to make the scissor side effect clear and explicit
- dangerous methods no longer public
- to make the simple quick reject check logic const
- simple quick reject is now conservative

This CL also fixes several issues with line and point quickRejection -
sub-pixel and hairline lines are much less likely to be incorrectly
rejected, especially at small canvas scale.

Additionally, alpha modulation for AA points < 1px in size is now
correct, dumplicating SW behavior (similar to lines and stroked
shapes work).

Change-Id: Ibb0710c721b9fb415d05acf54dd3d2b4d602156a
/frameworks/base/libs/hwui/Rect.h
32f05e343c5ffb17f3235942bcda651bd3b9f1d6 18-Sep-2013 Chris Craik <ccraik@google.com> Conservatively estimate geometry bounds

bug:10761696

Avoids a case where a rect with top coordinate of (e.g.) 0.51f is
assumed to not draw in the first row of pixels, which leads to it not
being clipped. Since rounding can cause it to render in this first
pixel anyway, we very slightly expand geometry bounds.

Now, in ambiguous cases, the geometry bounds are expanded so clipping
is more likely to happen.

Change-Id: I119b7c7720de07bac1634549724ffb63935567fc
/frameworks/base/libs/hwui/Rect.h
5e49b307eb99269db2db257760508b8efd7bb97d 31-Jul-2013 Chris Craik <ccraik@google.com> Fix quickReject's handling of AA ramp geometry

By having quickReject round out the window-space geometry bounds, we
prevent the AA perimeter (which falls outside the local bounds passed
in) from drawing outside the clip.

Change-Id: I8ee36be9039a9c47906815ee2f0dbaa5eb910b82
/frameworks/base/libs/hwui/Rect.h
39a908c1df89e1073627b0dcbce922d826b67055 13-Jun-2013 Chris Craik <ccraik@google.com> Fix various draw ops that may incorrectly not scissor

bug:8965976

Also consolidates quickReject scissor-ing and scissor-less paths.
Renamed plain 'quickReject' method, as it has sideEffects beyond what
the java and skia canvases do.

Change-Id: I4bdf874d3c8f469d283eae1e71c5e7ea53d47016
/frameworks/base/libs/hwui/Rect.h
28ce94a4ffc7576f40776d212f1ada79fafaa061 31-May-2013 Chris Craik <ccraik@google.com> Overdraw avoidance and merging of clipped ops

bug:8951267

If an opaque op, or group of opaque ops covers the invalidate region,
skip draw operations that precede it.

Clipped operations may now be merged, but only if they share a
clipRect - this is a very case for e.g. ListView, where all background
elements may now be a part of the same MergingDrawBatch.

It is this more aggressive merging that groups together clipped
background elements in the ListView case, enabling the overdraw
avoidance skipping the window background.

Change-Id: Ib0961977e272c5ac37f59e4c67d828467422d259
/frameworks/base/libs/hwui/Rect.h
2db5e993b626794eb07a0ff354269f9a77da81b3 22-May-2013 Romain Guy <romainguy@google.com> Merge scaled bitmaps with translated bitmaps

Change-Id: I03089f48f97b69fcb4a0171984d3ff548d41c4a8
/frameworks/base/libs/hwui/Rect.h
c3566d06421c8acc0aafb18f7e307e5725ce87e1 05-Feb-2013 Chris Craik <ccraik@google.com> 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
/frameworks/base/libs/hwui/Rect.h
2af4635e4a9e448a65ff541252f8f94bc6ac48e0 27-Nov-2012 Chris Craik <ccraik@google.com> Object-based DisplayList recording

bug:8037003

Changes the DisplayList from using stream read/write commands to use an array of
objects manually allocated on a linear buffer.

Depends on frameworks/native change https://googleplex-android-review.googlesource.com/#/c/257695/ which adds LinearAllocator

Also changes drawRects to use float count instead of rect count, to be more like drawLines/drawPoints

Change-Id: Ia2e4a11acd8f0a757042a05cbc9e7563cb73ee47
/frameworks/base/libs/hwui/Rect.h
586cae3ac69c0c667fbf8a954edbd399f620a717 14-Jul-2012 Romain Guy <romainguy@google.com> Improve rendering speed by disabling scissor tests

This change improves execution of display lists, particularly on
tiled renderers. The goal is to disable the scissor test as
often as possible. Drawing commands are rarely clipped by View
bounds so most of them can be drawn without doing a scissor test.

The speed improvements scale with the number of views and drawing
commands.

Change-Id: Ibd9b5e051a3e4300562463805acc4fd744ba6266
/frameworks/base/libs/hwui/Rect.h
5baa3a62a97544669fba6d65a11c07f252e654dd 20-Dec-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/156016

Bug: 5449033
Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
/frameworks/base/libs/hwui/Rect.h
8f85e80b64b89fd38cc23b129f61ec36ddde7f15 15-Dec-2011 Romain Guy <romainguy@google.com> Generate even fewer GL commands

Change-Id: I0f4dcacb03ef5ee7f6ebd501df98bfead5f0a7f8
/frameworks/base/libs/hwui/Rect.h
ec31f83bd3af1f900d1ee9116b15f56904c66dcd 14-Dec-2011 Romain Guy <romainguy@google.com> <Insert something improper about OpenGL>

Change-Id: Ib645376093838156771588adc76a718da0ceb0db
/frameworks/base/libs/hwui/Rect.h
a1d3c91afbd52c7e8b01f4a9060c5459f02ae7a5 13-Dec-2011 Romain Guy <romainguy@google.com> Further reduce the number of GL commands sent to the driver

Change-Id: Id922b2a166ea4573b767c27d3195e11c70320b23
/frameworks/base/libs/hwui/Rect.h
83b186a246e8ffd52b91a17c0019dd8c9c9d21b1 20-Sep-2011 Mathias Agopian <mathias@google.com> fix the float Rect in OpenGLRenderer to handle NANs

- we want functions like isEmpty() to return true if NANs are
involved in the Rect

- also clean-up the intersect familly of calls

- minor cleanup in the int32_t Rect as well

These played a role in http://b/5331198.

Bug: 5331198

Change-Id: I5369725ab482e4b83da9f1bd4cee5256e5de75b2
/frameworks/base/libs/hwui/Rect.h
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/Rect.h
ae88e5e8e9cb6c9539314c4360c5b20f8ec1fefc 23-Oct-2010 Romain Guy <romainguy@android.com> Fix rendering issue with layers.

A change was made earlier in the renderer to not snap the current clip rect
on every clip operation. The clip rect must not be snapped to pixel boundaries
before being used for pixel precision operations. Some operations were doing
this correctly, others were not. For instance, a layer was always created by
rounding to the correct pixels, but composing a layer was done with a non
rounded clip, thus resulting in slightly odd behaviors.

Change-Id: I31c2cf0a343450470bcd449c3f13fe37648b9c7c
/frameworks/base/libs/hwui/Rect.h
93d2361c6d294c390cb5c4a13bd1b88dcd465fd7 14-Oct-2010 Romain Guy <romainguy@google.com> Fix layer rendering glitch.

Change-Id: If2f987fe5526fc88743ca3e91edde4f8232ff658
/frameworks/base/libs/hwui/Rect.h
759ea80dca64ad652110a129e0d8bf93fea79f61 17-Sep-2010 Romain Guy <romainguy@google.com> Add support for drawLines(), with anti-aliasing

Change-Id: I16c0593c5671490909dec13a85df601e1428a1a6
/frameworks/base/libs/hwui/Rect.h
bf434114cbf55b216fdc76fc8d65a75e84c9dab5 16-Sep-2010 Romain Guy <romainguy@google.com> Snap layer bounds to pixel boundaries.

Change-Id: I272ceebf469a119f01ea9d73cdd68519afdffa99
/frameworks/base/libs/hwui/Rect.h
8aef54fa17f2a3753d9a8f2027629bc480088f69 02-Sep-2010 Romain Guy <romainguy@android.com> Add support for Canvas flags on save.

This is required for the rewrite of layers support.

Change-Id: I5c0867dcf5aeb0392c8d0fbab05febb0eaff70d9
/frameworks/base/libs/hwui/Rect.h
079ba2c85b15e882629b8d188f5fbdb42f7f8eea 16-Jul-2010 Romain Guy <romainguy@android.com> Improve clip support (add intersect, union and replace.)

This change also modifies the way the clip is stored. The clip is now
always stored in screen-space coordinates.

Change-Id: I96375784d82dfe975bc6477a159e6866e7052487
/frameworks/base/libs/hwui/Rect.h
5cbbce535744b89df5ecea95de21ee3733298260 28-Jun-2010 Romain Guy <romainguy@android.com> Reduced the complexity of layers composition.

This change also refactors the code base a bit by moving classes out of
OpenGLRenderer into separate headers/implementations. This makes the code
more manageable.

This change also adds documentation for implementation methods. The
undocumented methods are simply Skia's Canvas methods.

Change-Id: I54c68b443580a0129251dddc1a7ac95813d5289e
/frameworks/base/libs/hwui/Rect.h
7ae7ac48aa2b53453c9805075171ecd5bcafd7de 25-Jun-2010 Romain Guy <romainguy@android.com> Convert tabs to spaces.

Change-Id: I5d3ae48af79b19b6d293deff0521e4bb57d5114b
/frameworks/base/libs/hwui/Rect.h
9d5316e3f56d138504565ff311145ac01621dff4 25-Jun-2010 Romain Guy <romainguy@google.com> Add colored rectangles implementation in OpenGLRenderer.

Drawing two rectangles one after the other discards the second one because of
Z buffering issues. This will be fixed in another changelist.

Change-Id: Ida1b3cde8a78e60cacc07e477abc44def527ff67
/frameworks/base/libs/hwui/Rect.h
bb9524b6bdddc7ac77d8628daa8b366b8a7be4a4 23-Jun-2010 Romain Guy <romainguy@google.com> Add implementations for clipRect(), save() and restore().

The current implementation of clipRect() does not apply local transformations
before setting the new clip.

Change-Id: I5997871bb638dfcd1a8ef96354846af52427e445
/frameworks/base/libs/hwui/Rect.h