1226 Commits

Author SHA1 Message Date
Chris Craik
27bfb24518 Merge "Rework and clean up DisplayList projection" 2014-02-07 18:47:57 +00:00
Derek Sollenberger
d44fbe55a9 Keep the SkPaint used when creating a layer.
This will allow us to inspect the paint for thing other than
color and xfermode, such as SkColorFilters and SkShaders.

bug: 10650594
Change-Id: I2c3ddd07a3966e1e77af34136307e2b59b2898c1
2014-02-07 13:33:29 -05:00
Chris Craik
1df26446b7 Rework and clean up DisplayList projection
Move the projection surface to be a property of a DisplayList,
set to true for every background drawable.

Additionally, handle a projecting view background such that it doesn't
try to project onto itself (which is undesirable).

Change-Id: Ic70b17474bd87340e80767f8518f73b233419c7a
2014-02-06 16:07:37 -08:00
Chris Craik
fdace4e238 Merge "Simplify DisplayList matrices" 2014-02-06 23:22:28 +00:00
Chris Craik
ba9a21561e am 2c764b20: am 0ec3ca6e: am 449273e2: Merge "Fix for positioning of glyphs within a bitmap"
* commit '2c764b20e4a35c509f49e3d9430e135b4f3a0984':
  Fix for positioning of glyphs within a bitmap
2014-02-05 21:52:23 +00:00
Chris Craik
629f67709b Simplify DisplayList matrices
Somewhat unifies the ortho/perspecive paths - the property matrix
(translate/scale/rotate) is now always a Matrix4.

Change-Id: I36e4fe83d1150ee6e4be5f64f34d0fc8d6525cc6
2014-02-05 13:12:04 -08:00
ztenghui
a989cb29c3 Merge "Fixing a bad bug when there is no real umbra" 2014-02-03 22:18:54 +00:00
ztenghui
5176c974f1 Fixing a bad bug when there is no real umbra
This fixed most of the issues when the light's Z postion is low.

Change-Id: If49afbf8aa90b1ce32fd628a62ed982a1a473da2
2014-01-31 17:44:07 -08:00
Chris Craik
494db9e4bb Merge "Simplify umbra calculation" 2014-01-31 18:57:25 +00:00
Chris Craik
1d89563ff8 Merge "Add initial hidden outline APIs" 2014-01-31 18:56:41 +00:00
Chris Craik
12d9526dd2 Simplify umbra calculation
Reuse pre-computed values

Change-Id: Ia7725be0ec3ac58af477fcb8de375f5faa05abf4
2014-01-31 10:43:42 -08:00
Chris Craik
a2fe7affd3 Add initial hidden outline APIs
Background drawable outline usage and drawable outline calculation
still to come.

Change-Id: I8c7539f1638f86e1f8eb11f4fe49f705f61d58ba
2014-01-30 16:04:16 -08:00
John Reck
3040f73541 Merge "Fix nano vs. millis" 2014-01-30 23:16:10 +00:00
John Reck
a6260b83da Fix nano vs. millis
Change-Id: I54f752bb7faab5fa66c36252c9f7cf8f5c9939c9
2014-01-29 19:59:16 -08:00
ztenghui
f3560a133e Merge "Merge close vertices in a better way." 2014-01-29 23:45:12 +00:00
Chris Craik
6657a6c539 Update reordering method names, and make 3d reordering API public
IsContainedVolume -> hasIsolatedZVolume conveys that this affects Z
ordering of views

ProjectToContainedBackground -> ProjectBackwards, since it ended up
using its own projection target, separate from the 3d volume bit

Change-Id: Ia2cde838cc4da134366fe6ff623290fbd65e50c3
2014-01-29 13:55:39 -08:00
Chris Craik
967c7fb2af Merge "Fix projection offset caching" 2014-01-29 21:20:36 +00:00
Chris Craik
d04a6b15f7 Fix projection offset caching
Because the caching of projection matrix didn't account for changes in
the offset flag, the flag could be ignored. Now we use both to verify
that the cached matrix can be used.

Change-Id: I193b94eaf0b98f046a6484f0866c3d25048653fd
2014-01-29 13:04:33 -08:00
ztenghui
f5ca8b4cb1 Merge close vertices in a better way.
And add more verification code for testing purpose.

Change-Id: I5bc4f69e6582c02fd03106af9a98abd05a6755b7
2014-01-29 09:04:04 -08:00
Chris Craik
5e1814e2eb Merge "Remove logging of DisplayList staleness" 2014-01-28 23:18:05 +00:00
John Reck
e742799cae Merge "Native-side proxy" 2014-01-28 00:45:44 +00:00
John Reck
4f02bf4eef Native-side proxy
Remove RemoteGLRenderer
 Remove reflection-based control

Change-Id: If17c2bbb61c7141986d88c4763def77ed1074985
2014-01-27 16:40:39 -08:00
Chris Craik
3783e70b55 Remove logging of DisplayList staleness
Change-Id: Ie6b3af3065d4d10ec0bc9b419223d3458d297ea8
2014-01-27 14:29:37 -08:00
Chris Craik
15a07a21eb Use path outlines to define shadow shapes
Fixes the simplifying assumption that shadow casters were always
rectangular.

Java side APIs + plumbing to pass down correct shapes still need to be added.

Change-Id: Ic4fee90af15679951a44bb5cc6ae454b98c4c194
2014-01-26 13:43:53 -08:00
Chris Craik
bb615a6ffb Clear root level reorder lists to prevent accessing stale DisplayLists
bug:12581401

Adds temporary logging which should log/crash earlier on incorrectly
reordering hierarchies.

Change-Id: Iee00940718c3cc868161e754aff93cd3b2747094
2014-01-24 15:01:40 -08:00
Alexander Toresson
3ed1927603 Fix for positioning of glyphs within a bitmap
For positioning of glyphs within a bitmap, roundf(int + float) is used,
where the float is the glyph position and the int is the text position.
When the text position is varied, this may lead to the sum being rounded
in different directions, due to floating point rounding, caused by that
floating point numbers have different precision in different ranges.

This may therefore lead to slightly different positioning for glyphs and
therefore slightly different widths and heights for text strings,
depending on the position they are rendered at.

The solution in this patch is to use int + (int) roundf(float), which
has consistent rounding, and also enables us to use the full range of
ints.

Change-Id: Id1143cdfcbdfa9915ced878ae04df589a3e03cee
2014-01-23 13:31:15 +01:00
ztenghui
cc3c25622c Property support for light positioning.
Tune up the light size to make it look better.

Change-Id: I139a05f3dd53dacbe55759b91188f0e1cc2c7f80
2014-01-17 13:42:09 -08:00
Chris Craik
3a3bdd042d am ee846d3e: am 38cf0704: am e9a7d229: am 66b5a2b2: am 5150eb8f: Merge "Initialize pointer members to NULL to avoid illegal reference"
* commit 'ee846d3e74eda006f4bbf17cb4844b4d8f9c5cb0':
  Initialize pointer members to NULL to avoid illegal reference
2014-01-17 20:11:38 +00:00
lina.x.pi
920287399a Initialize pointer members to NULL to avoid illegal reference
mBitmap and mTexture is not initialized to NULL which causes
illegal address access when it fails to be created from
oversized bitmap.

Change-Id: Iea54bec8788bc5f3a10040fdb43f416c0d41a14c
2014-01-17 13:49:26 +09:00
Chris Craik
8191effc83 Merge "Map shadow light position globally" 2014-01-17 02:09:19 +00:00
Chris Craik
ed0f7cba53 Merge "Fix view z translation with 3d projection disabled" 2014-01-17 02:07:46 +00:00
Chris Craik
7b3dfa4d13 Transform shadow casters correctly in 3d
Change-Id: I11067c5aa8c749089b6ee163ddafa91865cc0d9f
2014-01-16 16:21:10 -08:00
Chris Craik
cf8d9d4af3 Fix view z translation with 3d projection disabled
The ortho projection can't handle 3d translation, so skip that step if
perspective projection isn't enabled.

Change-Id: I231e6bcecc82e876b697e098e034f0fd3b06efde
2014-01-16 14:48:54 -08:00
Chris Craik
3197cded4e Map shadow light position globally
Change-Id: Ic3201cecdf5d2a1dd628e7e40aee912ef516d3b2
2014-01-16 14:03:39 -08:00
Chris Craik
f533e94703 Support projection of DisplayLists onto ancestors.
For now, ancestor views signal the acceptance of projections with a
save(0x20)/restore pair.

During the order traversal, each view with the save(0x20) code will
collect descendent views with mProjectToContainedVolume (which still
needs to be renamed) so that they can be drawn out of order later.

- *Temporary* sample code added to HwAccelerationTest.

- Note that a projected displaylist must not be clipped.

Change-Id: I45c493e845961535b958d59c53e8aff3f8891d9f
2014-01-15 16:14:01 -08:00
John Reck
81155da284 Merge "Remove dead code" 2014-01-15 18:57:13 +00:00
John Reck
2114aef4ea Remove dead code
Change-Id: I9c96d3d21bd3faed91a5146f5a2b8916c634fdff
2014-01-15 09:37:38 -08:00
Leon Scroggins III
8790be6de3 Remove calls to deprecated SkBitmap::setIsOpaque()
setIsOpaque() has been removed from ToT Skia.

Update setters for mIsPremultiplied and hasAlpha to take the
other into consideration.

Change-Id: I1b36b0b0ce7126031eb7b769b563c17dcd4b306a
2014-01-15 11:37:04 -05:00
Chris Craik
255fd80737 Merge "Simplify Z reordering logic" 2014-01-14 21:07:50 +00:00
Chris Craik
9f68c09626 Simplify Z reordering logic
Change-Id: I9e36f68d7be5cfd4d69a84a51824cb9a642fe18d
2014-01-14 12:52:41 -08:00
ztenghui
8a3452e7e1 Merge "Calculate and show the shadow from a spot light." 2014-01-13 18:28:42 +00:00
ztenghui
7b4516e7ea Calculate and show the shadow from a spot light.
Change-Id: Ia558852e8cde5d33866b22875eb501e4c6858819
2014-01-10 17:18:53 -08:00
Alan Viverette
58f09b3524 Add DisplayList bit for projecting onto a contained volume
Does not handle reordering/translating the projected DisplayList.

Change-Id: I6f1ebb2b20b7436c86fe849b35d582fd9c8a8967
2014-01-08 17:18:19 -08:00
John Reck
23b797ab51 EGL migration to native
Move EGL state management to native side for RemoteGLRenderer

Change-Id: I12b0fed70246564d4caebf87374e8bbca655c572
2014-01-07 14:53:55 -08:00
Chris Craik
d218a92c0a Use const where possible for drawing parameters
They should never be modified by a Renderer, only read and copied.

Change-Id: I9d8d55dca19115ee9dfeb2bb3f092ba2fb327cd4
2014-01-03 13:55:08 -08:00
Chris Craik
8523706236 Merge "Fix Clang warnings/errors" 2014-01-03 21:35:31 +00:00
Chris Craik
564acf7c9b Fix Clang warnings/errors
Fix several build warnings (struct != class, int != size_t) and errors
(variable leng non-POD arrays).

Change-Id: I70b4e784365514303d8954bfcb1f39d7c22c1321
2014-01-02 16:52:32 -08:00
Chris Craik
406af0293f Fix isRecording override
Change-Id: Ie73db838b749c29c6a8480ab67897492b83d337a
2014-01-02 14:56:40 -08:00
Chris Craik
d6b65f6771 Use const access to snapshot from OpenGLRenderer
Additionally, move clipping methods to StatefulBaseRenderer

Change-Id: Iff232bf16fc1ad3b7d89493da6d8915db7bc5e4f
2014-01-02 12:57:41 -08:00
Chris Craik
14e513058e Move Snapshot management to intermediate StatefulBaseRenderer class
The eventual goal is for the StatefulBaseRenderer to serve as the
common base class between the DisplayListRenderer and OpenGLRenderer.

This will separate DisplayList recording, Snapshot stack management,
and the GL in OpenGLRenderer.

Additionally, avoid sp<> parameters, and use const parameters in
several places, with the intent of greatly reducing the surface area
where renderer subclasses can modify snapshot stack.

Next steps:
-move bulk of clipping logic into StatefulBaseRenderer
-disable direct snapshot access

Change-Id: Ibc3c6747134ec7daf8ea535866239fa73b874390
2014-01-01 13:59:13 -08:00