Commit Graph

1732 Commits

Author SHA1 Message Date
984162fb7e Replace StatefulBaseRenderer inheritance with CanvasState member
Incrementally disentangles DisplayListRenderer and OpenGLRenderer.
Introduces abstract CanvasStateClient class to share three functions
between the two.

Design doc at https://docs.google.com/a/google.com/document/d/1PY1JF7AfPEF2UOUAnETS5j_4_tnJShTAMExvpCJfP8o/edit?usp=sharing.

BUG:15672762
R=djsollen@google.com,ccraik@google.com,jreck@google.com

Change-Id: Ic9fdffe18808e7d921ad06d01ea1ca25b2ad6f23
2014-11-04 17:16:36 -05:00
107843de45 Remove status return from all uirenderer::Renderer functions
This moves the interface closer to android::Canvas. The only use of
return values was in the OpenGLRenderer subclass; that is replaced
with an internal dirty flag: returned from finish(), checked by
CanvasContext.

This is part of a series of CLs to refactor the Graphics JNI bindings.

BUG:15672762
R=djsollen@google.com,ccraik@google.com

Change-Id: Ifd533eb8839a254b0d3a5d04fc5a2905afdfc89e
2014-11-04 15:49:44 -05:00
0d00b27ecf am 6bd8d825: am c4aea977: am e6c0bda5: Merge "Make points drawn with default paint visible" into lmp-mr1-dev
* commit '6bd8d825b29fa4db3046644f36c2256a5d0600e0':
  Make points drawn with default paint visible
2014-11-04 15:32:41 +00:00
6bd8d825b2 am c4aea977: am e6c0bda5: Merge "Make points drawn with default paint visible" into lmp-mr1-dev
* commit 'c4aea977cd35c423132382cf0ae1f3238e2c7d10':
  Make points drawn with default paint visible
2014-11-04 15:29:10 +00:00
e6c0bda5dd Merge "Make points drawn with default paint visible" into lmp-mr1-dev 2014-11-04 15:20:00 +00:00
b7c26562d0 Make points drawn with default paint visible
When no stroke width is set, use 0.5 instead of 0.25 to make
sure the resulting rectangle spans at least one pixel.

Bug: 15455111
Change-Id: Id0a4b6d014c542ffc98b13a032f88ae0ce69b3a1
2014-11-04 00:31:45 +00:00
6398d2d42e am 8a8a4055: am 541641d0: Merge "Fix counting" into lmp-mr1-dev automerge: 5c8d135
* commit '8a8a40556ea3b0fb4cc8cd1ec063fb9988db497f':
  Fix counting
2014-11-03 18:50:10 +00:00
8a8a40556e am 541641d0: Merge "Fix counting" into lmp-mr1-dev
automerge: 5c8d135

* commit '5c8d135920896af42de8d8b91975abe3fa871cd9':
  Fix counting
2014-11-03 18:42:30 +00:00
88f5fc7c5a Fix counting
Change-Id: I9a3568908a7223d69430c1765fb5a4db96d7ac9c
2014-11-03 10:32:24 -08:00
bfed827028 partially fix build.
Addresses the following compile time errors:

  In file included from frameworks/base/libs/hwui/LayerRenderer.cpp:24:0:
  frameworks/base/libs/hwui/RenderState.h:77:24: error: 'VirtualLightRefBase' has not been declared
       void postDecStrong(VirtualLightRefBase* object);
                        ^
  In file included from frameworks/base/libs/hwui/LayerCache.h:21:0,
                   from frameworks/base/libs/hwui/LayerRenderer.cpp:25:
  frameworks/base/libs/hwui/Layer.h:55:42: error: expected class-name before '{' token
   class Layer : public VirtualLightRefBase {
                                          ^
  In file included from frameworks/base/libs/hwui/RenderState.cpp:16:0:
  frameworks/base/libs/hwui/RenderState.h:77:24: error: 'VirtualLightRefBase' has not been declared
       void postDecStrong(VirtualLightRefBase* object);
                        ^

Change-Id: I2be439b373ea356b861f413ff6ce323e8d9baf2d
2014-11-01 18:37:39 -07:00
9481684560 am e05575e9: am a8d83d63: Merge "Layer changes" into lmp-mr1-dev automerge: a51fba0
* commit 'e05575e9c36850d8cfe49396ac9a1372511b12bf':
  Layer changes
2014-10-31 23:30:57 +00:00
e05575e9c3 am a8d83d63: Merge "Layer changes" into lmp-mr1-dev
automerge: a51fba0

* commit 'a51fba0bf037844bcb911e69e8af733e6d2cccf6':
  Layer changes
2014-10-31 23:25:44 +00:00
0e89e2b7bc Layer changes
Bug: 17208461

* Switch Layer to be VirtualLightRefBase instead of
  Caches' side-channel ref-counting
* Include active layers in gfxinfo dump
* Run gfxinfo dump on the correct thread
* Dump gfxinfo on Layer creation failure

Change-Id: I28d195699e2334518e215ab28c7a17355aee9678
2014-10-31 15:30:10 -07:00
eaab65f49d am 97054254: am 141823ec: Merge "Be more conservative about current buffer" into lmp-mr1-dev automerge: a27e1a3
* commit '97054254d4c8eef66538814e1d5def776ceba97a':
  Be more conservative about current buffer
2014-10-30 19:20:17 +00:00
97054254d4 am 141823ec: Merge "Be more conservative about current buffer" into lmp-mr1-dev
automerge: a27e1a3

* commit 'a27e1a366a2d83165e71b68669fbd21ced6a4b08':
  Be more conservative about current buffer
2014-10-30 19:16:14 +00:00
fd79e9f3c3 am 3cad510e: am 4ed472ab: resolved conflicts for merge of 3028394c to stage-aosp-master
* commit '3cad510e271d4e9510d0f15560c4979071c8436c':
  Suppress Clang compilation warnings.
2014-10-29 19:42:18 +00:00
3cad510e27 am 4ed472ab: resolved conflicts for merge of 3028394c to stage-aosp-master
* commit '4ed472ab33e78391c0b084ed3908019e06b7dfe5':
  Suppress Clang compilation warnings.
2014-10-29 19:34:32 +00:00
141823ec63 Merge "Be more conservative about current buffer" into lmp-mr1-dev 2014-10-29 14:40:02 +00:00
4ed472ab33 resolved conflicts for merge of 3028394c to stage-aosp-master
Change-Id: I980e4c95cdc6a4778cef3298338692656d23e7c6
2014-10-29 12:12:37 +00:00
a8f1bce008 am c7c8b069: Merge "Cleanup debug options" into lmp-mr1-dev automerge: b0aeaad automerge: 49a01fc
* commit 'c7c8b069407236bcc04c086912c73002d48419ef':
  Cleanup debug options
2014-10-28 07:17:03 +00:00
c7c8b06940 Merge "Cleanup debug options" into lmp-mr1-dev automerge: b0aeaad
automerge: 49a01fc

* commit '49a01fc7dc8d2b9cc7591a94d19f3c209e470aea':
  Cleanup debug options
2014-10-28 00:35:14 +00:00
950ff1b88c Be more conservative about current buffer
Bug: 18065565
Change-Id: I0b9c85ecf384ebe525e3a38803ab77d7ee37f33a
2014-10-27 13:23:20 -07:00
23d307c8d8 Cleanup debug options
Bug: 18138852
Bug: 18065434
Change-Id: Ibb07b73b147c2a8b287fe8aee3f6624582f21b00
2014-10-27 12:43:25 -07:00
d3448e437a Suppress Clang compilation warnings.
Ignore warnings about unused parameters and initialization of static
constant float data members.

Change one potential error of allocating variable length
array of non-POD element type on stack.

Fix mismatch of class and struct declaration tags.

BUG: 17512760
Change-Id: I3a09c945fb1c17f27aff74a7e439dd4c35d1fb32
2014-10-24 15:42:14 -07:00
675a518d5a am b64e4372: am 82572cc4: am badac04d: Merge "Add some free zoom to lockHardwareCanvas" into lmp-mr1-dev
* commit 'b64e4372bb60bdce75e2af7d0b94efe92d94ac6a':
  Add some free zoom to lockHardwareCanvas
2014-10-23 22:23:10 +00:00
b64e4372bb am 82572cc4: am badac04d: Merge "Add some free zoom to lockHardwareCanvas" into lmp-mr1-dev
* commit '82572cc458053e8cec292a708e18d0de7cfbead2':
  Add some free zoom to lockHardwareCanvas
2014-10-23 22:15:46 +00:00
badac04dfd Merge "Add some free zoom to lockHardwareCanvas" into lmp-mr1-dev 2014-10-23 21:59:26 +00:00
1125d1fa92 Add some free zoom to lockHardwareCanvas
Bug: 18099195

Don't use EGL_SWAP_BUFFER_PRESERVED on surfaces that will
never benefit. Also clean up some confusing naming

Change-Id: I674ca64e0464a3282cff79e5ecd350d08f47c014
2014-10-23 13:59:47 -07:00
945701126b am 41707d01: am ebcfd24b: am 68335df6: Merge "Fix damage bug" into lmp-mr1-dev
* commit '41707d01e9e950ebd00642ef3564edcff8c539e7':
  Fix damage bug
2014-10-23 20:48:43 +00:00
41707d01e9 am ebcfd24b: am 68335df6: Merge "Fix damage bug" into lmp-mr1-dev
* commit 'ebcfd24b8f1fc8e000a08c0bbce3a4215083ae8a':
  Fix damage bug
2014-10-23 20:41:07 +00:00
5c9d717d3e Fix damage bug
Bug: 18087374
Change-Id: Ie183392122c73f93010fb3f4be071c924b352966
2014-10-22 11:32:27 -07:00
425cc668a9 Merge "Refactor HWUI to better handle Canvas DrawFilters." 2014-10-22 15:59:28 +00:00
c54a20d9c5 am a2590d59: am 733bb3bc: Merge "Fix memory corruption in test" into lmp-mr1-dev automerge: a91c5ca
* commit 'a2590d595fbf688e7bcff5014c1d442ca4243e79':
  Fix memory corruption in test
2014-10-22 14:36:31 +00:00
a2590d595f am 733bb3bc: Merge "Fix memory corruption in test" into lmp-mr1-dev
automerge: a91c5ca

* commit 'a91c5ca78a0e9b24445126895a0070d399506849':
  Fix memory corruption in test
2014-10-22 14:29:45 +00:00
733bb3bc78 Merge "Fix memory corruption in test" into lmp-mr1-dev 2014-10-22 14:18:21 +00:00
7ab73f1e98 am e73a54f3: am bf463af2: Merge "Surface:lockHardwareCanvas" into lmp-mr1-dev
automerge: 76f24bd

* commit '76f24bde7816dd97ed2375ec41c9817be0330d9f':
  Surface:lockHardwareCanvas
2014-10-21 23:34:46 +00:00
76f24bde78 am e73a54f3: am bf463af2: Merge "Surface:lockHardwareCanvas" into lmp-mr1-dev
* commit 'e73a54f33c029552469fcf1cda46eed2f360a38e':
  Surface:lockHardwareCanvas
2014-10-21 21:39:36 +00:00
bb2d0cc7e1 Surface:lockHardwareCanvas
Bug: 17440886

Change-Id: I1f2d98c63ec1a2814c2258cf7e0096139263770a
2014-10-21 13:23:56 -07:00
1383d1e60f Remove error case
bug: 18051326
Change-Id: I4f2f4abf80b89e540a91251ce55cd65375f6ca65
2014-10-20 16:59:27 -04:00
5865172542 Add back include that ensures RENDER_TEXT_AS_GLYPHS is set consistently.
bug: 18051326
Change-Id: I1ee9f8acb25fb1684e156c61e2cf2669d15a99cb
2014-10-20 16:26:24 -04:00
09c2d4fe15 Refactor HWUI to better handle Canvas DrawFilters.
First, this CL removes the need to decompose the DrawFilters
in Java and instead passes the SkDrawFilter to HWUI directly.
This also allows the removal of duplicated logic between HWUI
and other Canvas implementations regarding Paint filter levels.

Second, the DrawFilter is now stored in the DisplayListRenderer
where we apply it to every paint BEFORE it is stored in the
DisplayList.  This eliminates the need to filter all Paints on
playback and removes additional complexity at playback.

Finally, as a result of storing the filtered paint we can now
do a better job caching the paints.  This takes advantage of
recent changes in Skia to quickly enable quick hashing and
comparison of paint objects.

Change-Id: Iec507a2d894827975cc4f1d22241542bb0534b4e
2014-10-17 10:44:29 -04:00
af608319f2 Fix memory corruption in test
Bug: 18012918
Change-Id: I8d69624e9be9f0399ddba10ce3903f93177d5930
2014-10-16 09:18:11 -07:00
b4b7f64921 Merge "Fix build breakage in HWUI JNI" 2014-10-16 13:15:16 +00:00
73edbfeed0 Fix build breakage in HWUI JNI
R=djsollen@google.com

Change-Id: Iaa4e7f22bec8e15748beab1b25d307c48d277c59
2014-10-16 09:10:41 -04:00
07c05e38a1 Merge "Clean up physical coupling" 2014-10-16 11:57:16 +00:00
2dc236b2ba Clean up physical coupling
Narrow the use of #include directives in hwui, replacing with forward
declarations where straightforward. Speeds compiles; doesn't do any
restructuring of code.

Change-Id: Icac2baffb5896f55d8c6718e9bd9d4bfa02d3ca0
2014-10-15 15:51:39 -04:00
413995e0be Change in Skia APIs require update to HWUI font implementation
Change-Id: Ib89a27381f740499e26706716f39ad62fa10778c
2014-10-15 14:29:46 +00:00
cc1b97965d am 1467c54d: am f3259620: am 94c40fe9: CARD LAND!
* commit '1467c54d857fbfc03fb52b9ba95db72c6acbae32':
  CARD LAND!
2014-10-14 19:04:29 +00:00
1467c54d85 am f3259620: am 94c40fe9: CARD LAND!
* commit 'f325962096663a5264f2ec613293818f7f3ea2f9':
  CARD LAND!
2014-10-14 17:51:07 +00:00
94c40fe921 CARD LAND!
Bug: 16712006

Initial work towards benchmarking HWUI systems
Currently this will just create a screen full of
"cards" to simulate a high load scenario for
shadows and clipping

Change-Id: Ie9f9a9570844e136db8053e8fc62fe06cb922a5f
2014-10-14 09:02:04 -07:00