ebd52610cfeff6e557fde284a7e1efc5e6438285 |
|
11-Dec-2014 |
John Reck <jreck@google.com> |
Don't preload textures for AssetAtlas Bug: 18317479 RenderNode::prepareSubTree calls prefetchAndMarkInUse on every bitmapResoruce in the DisplayList. However, this resulted in textures being uploaded for bitmaps that would be drawn from the AssetAtlas instead. To fix this we teach TextureCache about the AssetAtlas so that calls to TextureCache return the Texture from AssetAtlas if it exists. Thus usage of AssetAtlas is now purely to allow for further optimizations via draw merging instead of a requirement to get any benefit at all. Change-Id: I65282fa05bac46f4e93822b3467ffa0261ccf200
/frameworks/base/libs/hwui/DisplayListOp.h
|
dad7d84c04c5954b63ea8bb58c52b2291f44b4df |
|
09-Dec-2014 |
John Reck <jreck@google.com> |
Teach AssetAtlas about more drawables Bug: 18317479 Change-Id: I16868ee204d24af72af9a2efc987f7e9eb1d266b
/frameworks/base/libs/hwui/DisplayListOp.h
|
c5b5f0556b542a22f01d254e6284f69e9eb23e74 |
|
02-Oct-2014 |
Chris Craik <ccraik@google.com> |
Account for colorfilter transparency in determining paint opacity bug:17765601 Change-Id: I90d76ee199bb357c71fc8f537c1abfa20d848416
/frameworks/base/libs/hwui/DisplayListOp.h
|
072707dfad1da6f49f4d3ce58ca104f6c46a7266 |
|
15-Sep-2014 |
Jorim Jaggi <jjaggi@google.com> |
Use RenderThread for navigation bar ripples Bug: 17506181 Change-Id: Icf3b80f8c4bc29fe85313381d4019dda3ef85ea9
/frameworks/base/libs/hwui/DisplayListOp.h
|
c3e75f9d54b3629b3fd27afafa2e07bd07dad9b3 |
|
28-Aug-2014 |
Chris Craik <ccraik@google.com> |
Update transform isolation to handle command chunks bug:15570351 Prevent drawing transformations on a ViewGroup's canvas from directly affecting the transformation of the children through the renderer, since it's already baked into mTransformFromParent at record time. Change-Id: I6310a2260dfe4def0bde1fd2c5b93791a645d586
/frameworks/base/libs/hwui/DisplayListOp.h
|
8afd0f245cc0c4a0366f39f41b5f78e47ee83be3 |
|
22-Aug-2014 |
Chris Craik <ccraik@google.com> |
Create z reordering boundaries around dispatchDraw bug:16012254 This means rendernodes with a Z will no longer be drawn at the end of their parent's DisplayList, but at the end of the associated reorder region (DisplayListData::Chunk). Change-Id: Ia033fee9d9a4db567b2a8d5e90fc57a4d0a64544
/frameworks/base/libs/hwui/DisplayListOp.h
|
83f75c88a0f0dce2e7d92348d5a498caf32cbdbd |
|
20-Aug-2014 |
Chris Craik <ccraik@google.com> |
Merge "Early reject drawText calls that will not draw" into lmp-dev
|
947eabf42d835d0dfb0daa2fe6d869139c7000d6 |
|
19-Aug-2014 |
Chris Craik <ccraik@google.com> |
Early reject drawText calls that will not draw bug:17114102 Prevents high contrast text from drawing invisible text. Also fixes stroked text bounds calculation. Change-Id: Iaeff51ead8b7b8ef2a1a0ca8b89598564e0d443f
/frameworks/base/libs/hwui/DisplayListOp.h
|
2262abbd16e4d6c7c2e40f7d81b02dfe7db846e8 |
|
19-Aug-2014 |
Chris Craik <ccraik@google.com> |
Respect round rect clip when determining op opaqueness bug:17115570 Change-Id: I30184b4678d333b5d222af8b61daa07a5e865cab
/frameworks/base/libs/hwui/DisplayListOp.h
|
7466986d2055eb8711f36a85ac539b1572ffe805 |
|
08-Aug-2014 |
Chris Craik <ccraik@google.com> |
Fix leak of SkPathRefs bug:15939479 SkPath objects owned by DisplayListOps weren't being torn down, and thus weren't releasing their SkPathRef innards. Change-Id: I2581e124600a93a399ef3251f456c02ab52839a8
/frameworks/base/libs/hwui/DisplayListOp.h
|
796475006f5d670e8383a2050f11719522437a43 |
|
06-Aug-2014 |
Chris Craik <ccraik@google.com> |
Move bitmap transforms out of bitmap ops bug:11359533 This allows us to deduplicate a lot between the two ops, and fixes the shader coordinate space for the left,top argument drawBitmap to match software. Change-Id: I53da05af9ee74c74e9e70b4ab8053190ca220b16
/frameworks/base/libs/hwui/DisplayListOp.h
|
af4d04cab6d48ae0d6a5e79bd30f679af87abaad |
|
29-Jul-2014 |
Chris Craik <ccraik@google.com> |
Use RoundRect clipping for circle reveal animation bug:16630975 Also, remove inverse clipping feature from reveal animator. Change-Id: I770a4eb48cd123b0ca0f39d16a0f3eefd1be3653
/frameworks/base/libs/hwui/DisplayListOp.h
|
98d608dba6a0b3c15fb08f1fa2c8b9d170124c7c |
|
17-Jul-2014 |
Chris Craik <ccraik@google.com> |
Minor cleanups around color usage Change-Id: I56733cbe933a58d5977c032f056abb35265ee252
/frameworks/base/libs/hwui/DisplayListOp.h
|
1103b3255945d2eb2fa9c191e84e2270b343cca9 |
|
08-Jul-2014 |
Mike Reed <reed@google.com> |
SkBitmap::Config is deprecated, use SkColorType Change-Id: Ic953741325607bf85598c097bb3ab648d4a08996
/frameworks/base/libs/hwui/DisplayListOp.h
|
59744b79ec302000802cd56d30a1bf70f0183c80 |
|
02-Jul-2014 |
Chris Craik <ccraik@google.com> |
Add hack for custom re-rasterization buckets bug:14083128 Moves all of the font transform management into OpenGLRenderer::findBestFontTransform(), and now simply passes down final rasterization transforms into the FontRenderer. Change-Id: Ie02752e6af863347b142367c7d628db5f9fc2998
/frameworks/base/libs/hwui/DisplayListOp.h
|
ca1b3b83bb4289315e25520364182ebad951ba08 |
|
27-Jun-2014 |
John Reck <jreck@google.com> |
Cleanup Change-Id: I8a75e6e32a4cb02e3978503305b4cdce1727e89a
/frameworks/base/libs/hwui/DisplayListOp.h
|
3b20251a355c88193c439f928a84ae69483fb488 |
|
23-Jun-2014 |
John Reck <jreck@google.com> |
No-fail invokeFunctor Bug: 15513308 Bug: 15449247 Change-Id: I13a29f9c8d4975cdda6dcb33b6332c2555ff0f7c
/frameworks/base/libs/hwui/DisplayListOp.h
|
a7090e0cfd7c719a6d4c03aae34f5db98754cbdd |
|
21-Jun-2014 |
Chris Craik <ccraik@google.com> |
Update 'DisplayList' vs 'RenderNode' naming in several places Change-Id: I635c6627d098b661fb9b0ba1bd42fa6d7277d287
/frameworks/base/libs/hwui/DisplayListOp.h
|
3281442aa75872b8947f0b0a5203257c6849129d |
|
21-Jun-2014 |
Chris Craik <ccraik@google.com> |
Merge "Wrap ViewGroup content in save/restore to protect composited children"
|
80d4902196899d1325cd9f52c06ae0174cf9bd4c |
|
21-Jun-2014 |
Chris Craik <ccraik@google.com> |
Wrap ViewGroup content in save/restore to protect composited children bug:15570351 Pos Z composited children are drawn before the primary restore for a RenderNode. This means that without an additional save/restore (which wraps the content) they aren't protected from transformations/clips that happen within the ViewGroup's DisplayList. Also changes RenderNode to use OpenGLRenderer tag for displaylist dumping consistency, and simplifies the entry points into RenderNode drawing, since the distinction between tree root vs tree internal is no longer important. Change-Id: I2621eba0592c74d71f85a91a4ab3d0da2d7468d3
/frameworks/base/libs/hwui/DisplayListOp.h
|
6ac174b97246ed40fe780b29561603b61770fa17 |
|
17-Jun-2014 |
Chris Craik <ccraik@google.com> |
Clean up tessellation cache in prep for other tesselation types bug:15536396 Also fixes compilation warning, avoids SkPaint deep copy Change-Id: I74334f08b1d34c6789aabf968ff62db5bacbed1b
/frameworks/base/libs/hwui/DisplayListOp.h
|
1e5cf9aced40e6e14262e542d0ed0e24cda877a0 |
|
10-Jun-2014 |
Chris Craik <ccraik@google.com> |
am b1c76a1a: Merge "Tessellate on worker threads" into lmp-preview-dev * commit 'b1c76a1abcfb2f33e12fef37ec71d20724863b5e': Tessellate on worker threads
|
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/DisplayListOp.h
|
ce444ca4006cfe0e2151d858da732fc413a716bd |
|
03-Jun-2014 |
John Reck <jreck@google.com> |
Cleanup Change-Id: Ie366390272724a2c1dfda99b0e85806b7a612744
/frameworks/base/libs/hwui/DisplayListOp.h
|
139088228faa7f3c446af7387e017933998a5570 |
|
10-Dec-2013 |
Derek Sollenberger <djsollen@google.com> |
Update HWUI matrix API 1. more closely mirror Skia API by using const ref instead of ptrs 2. store SkMatrix in the drawOp instead of the linear allocation heap Change-Id: I4b9f6f76b9f7d19325e29303d27b793679fd4823
/frameworks/base/libs/hwui/DisplayListOp.h
|
0fa2bd699ab5539c0ce6b79eb6b4b681734b8bb5 |
|
05-May-2014 |
Leon Scroggins III <scroggo@google.com> |
DO NOT MERGE Inspect SkShader to determine hw shader. cherry-pick of Iaa7189178bda1c55f96da044d2a9fa602ba36034 Instead of duplicating internal info about SkShader, inspect the SkShader installed on the SkPaint. core/java/android/view/GLES20Canvas.java: Remove setupModifiers, nResetModifiers, and nSetupShader. core/jni/android/graphics/Shader.cpp: Remove calls to create/destroy the (previously) attached SkiaShader. core/jni/android_view_GLES20Canvas.cpp: Remove native code for setupShader and resetModifiers. graphics/java/android/graphics/BitmapShader.java: graphics/java/android/graphics/ComposeShader.java: graphics/java/android/graphics/LinearGradient.java: graphics/java/android/graphics/RadialGradient.java: graphics/java/android/graphics/Shader.java: graphics/java/android/graphics/SweepGradient.java: Remove code keeping track of native SkiaShader. libs/hwui/Caches.h: Include Extensions.h. libs/hwui/DeferredDisplayList.cpp: Compare shaders on the paint, instead of on DrawModifiers. libs/hwui/DisplayList.cpp: libs/hwui/DisplayList.h: Remove vector of SkiaShaders. libs/hwui/DisplayListOp.h: Access the SkShader on mPaint. Remove SetupShaderOp and ResetShaderOp. libs/hwui/DisplayListRenderer.cpp: libs/hwui/DisplayListRenderer.h: Remove resetShader, setupShader, refShader, and mShaderMap. libs/hwui/FontRenderer.cpp: Pass SkShader to setupDrawShader and setupDrawShaderUniforms. libs/hwui/OpenGLRenderer.cpp: libs/hwui/OpenGLRenderer.h: Add LayerShader, a class inheriting from SkShader, to mimic the behavior of SkiaLayerShader. Unlike SkiaLayerShader, it can be set on the SkPaint so it can be inspected later. Set a LayerShader instead of a SkiaLayerShader. setupDrawShader and setupDrawShaderUniforms now inspect an SkShader passed in. Inspect SkShader instead of mDrawModifiers.mShader. Remove resetShader and setupShader. setupDrawColorUniforms now takes a boolean indicating whether there is a shader. Add an inline function for accessing the SkShader on an SkPaint. In setupDrawBlending(Layer*, bool), do not check the shader (which will never be set), but do check whether the color filter may change the alpha (newly fixed behavior). In setupDrawBlending(SkPaint, ...), check the SkShader and whether the color filter affects alpha (the latter is new behavior). libs/hwui/Renderer.h: Remove pure virtual functions setupShader and resetShader. libs/hwui/ResourceCache.cpp: libs/hwui/ResourceCache.h: Remove functions for refing/unrefing shaders. libs/hwui/SkiaShader.cpp: libs/hwui/SkiaShader.h: Much of this code was redundant and has been removed. Convert structs into class with nothing but static functions for calling describe/setupProgram. libs/hwui/TextureCache.cpp: libs/hwui/TextureCache.h: Use the SkPixelRef as the key to the bitmap Lru cache, since shader inspection will provide a different SkBitmap pointer (though it will hold the correct SkPixelRef with the correct generation ID). tests/CanvasCompare/src/com/android/test/hwuicompare/DisplayModifier.java: tests/CanvasCompare/src/com/android/test/hwuicompare/ResourceModifiers.java: Update manual test to have more shaders: radial, sweep, compose, invalid compose. BUG:10650594 Change-Id: I2e7182b3fc28268e7ca82fac6780540b6b45365c
/frameworks/base/libs/hwui/DisplayListOp.h
|
d490aa426090fc358873821b47ef27ead0c97409 |
|
23-May-2014 |
Chris Craik <ccraik@google.com> |
Merge "Inspect SkShader to determine hw shader."
|
d1ad5e62fda248c6d185cde3cb6d9f01a223066c |
|
05-May-2014 |
Leon Scroggins III <scroggo@google.com> |
Inspect SkShader to determine hw shader. Instead of duplicating internal info about SkShader, inspect the SkShader installed on the SkPaint. core/java/android/view/GLES20Canvas.java: Remove setupModifiers, nResetModifiers, and nSetupShader. core/jni/android/graphics/Shader.cpp: Remove calls to create/destroy the (previously) attached SkiaShader. core/jni/android_view_GLES20Canvas.cpp: Remove native code for setupShader and resetModifiers. graphics/java/android/graphics/BitmapShader.java: graphics/java/android/graphics/ComposeShader.java: graphics/java/android/graphics/LinearGradient.java: graphics/java/android/graphics/RadialGradient.java: graphics/java/android/graphics/Shader.java: graphics/java/android/graphics/SweepGradient.java: Remove code keeping track of native SkiaShader. libs/hwui/Caches.h: Include Extensions.h. libs/hwui/DeferredDisplayList.cpp: Compare shaders on the paint, instead of on DrawModifiers. libs/hwui/DisplayList.cpp: libs/hwui/DisplayList.h: Remove vector of SkiaShaders. libs/hwui/DisplayListOp.h: Access the SkShader on mPaint. Remove SetupShaderOp and ResetShaderOp. libs/hwui/DisplayListRenderer.cpp: libs/hwui/DisplayListRenderer.h: Remove resetShader, setupShader, refShader, and mShaderMap. libs/hwui/FontRenderer.cpp: Pass SkShader to setupDrawShader and setupDrawShaderUniforms. libs/hwui/OpenGLRenderer.cpp: libs/hwui/OpenGLRenderer.h: Add LayerShader, a class inheriting from SkShader, to mimic the behavior of SkiaLayerShader. Unlike SkiaLayerShader, it can be set on the SkPaint so it can be inspected later. Set a LayerShader instead of a SkiaLayerShader. setupDrawShader and setupDrawShaderUniforms now inspect an SkShader passed in. Inspect SkShader instead of mDrawModifiers.mShader. Remove resetShader and setupShader. setupDrawColorUniforms now takes a boolean indicating whether there is a shader. Add an inline function for accessing the SkShader on an SkPaint. In setupDrawBlending(Layer*, bool), do not check the shader (which will never be set), but do check whether the color filter may change the alpha (newly fixed behavior). In setupDrawBlending(SkPaint, ...), check the SkShader and whether the color filter affects alpha (the latter is new behavior). libs/hwui/Renderer.h: Remove pure virtual functions setupShader and resetShader. libs/hwui/ResourceCache.cpp: libs/hwui/ResourceCache.h: Remove functions for refing/unrefing shaders. libs/hwui/SkiaShader.cpp: libs/hwui/SkiaShader.h: Much of this code was redundant and has been removed. Convert structs into class with nothing but static functions for calling describe/setupProgram. libs/hwui/TextureCache.cpp: libs/hwui/TextureCache.h: Use the SkPixelRef as the key to the bitmap Lru cache, since shader inspection will provide a different SkBitmap pointer (though it will hold the correct SkPixelRef with the correct generation ID). tests/CanvasCompare/src/com/android/test/hwuicompare/DisplayModifier.java: tests/CanvasCompare/src/com/android/test/hwuicompare/ResourceModifiers.java: Update manual test to have more shaders: radial, sweep, compose, invalid compose. BUG:10650594 Change-Id: Iaa7189178bda1c55f96da044d2a9fa602ba36034
/frameworks/base/libs/hwui/DisplayListOp.h
|
61317325b7b4b4ffafd9400ab5966e8d7c67df2e |
|
21-May-2014 |
Chris Craik <ccraik@google.com> |
Disable shadow drawing for empty/null outlines Change-Id: I60d0f326cfab97d88c49d17cf32e619b5e60b94a
/frameworks/base/libs/hwui/DisplayListOp.h
|
5b554f010358d8f47e31d92a42aa3edc4a71ec47 |
|
08-May-2014 |
Derek Sollenberger <djsollen@google.com> |
Merge "Avoid caching shadow properties in Java & HWUI."
|
c29a0a4664a4b9871fadd668b632469a0db240b9 |
|
31-Mar-2014 |
Derek Sollenberger <djsollen@google.com> |
Avoid caching shadow properties in Java & HWUI. bug: 10650594 Change-Id: I6f57df002710bb0567ed7e53fc0bfe96cfd504b8
/frameworks/base/libs/hwui/DisplayListOp.h
|
52244fff29042926e21fa897ef5ab11148e35299 |
|
02-May-2014 |
John Reck <jreck@google.com> |
Add CanvasProperty for drawCircle Change-Id: Icbcc030f5033d2094e567d7c519b9d672f2aac1c
/frameworks/base/libs/hwui/DisplayListOp.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/DisplayListOp.h
|
860d155f866cc15a725e7ce03763280987f24901 |
|
12-Apr-2014 |
John Reck <jreck@google.com> |
Fix issue with bitmap uploading Bug: 13912749 Change-Id: Ic23fa1d280118dc93dc2716a4a24cc0bbbdca595
/frameworks/base/libs/hwui/DisplayListOp.h
|
087bc0c14bdccf7c258dce0cdef46a69a839b427 |
|
05-Apr-2014 |
John Reck <jreck@google.com> |
Refcount RenderNode Change-Id: I7a86db8acc2b78ef33d987a43a119f5933d7d752
/frameworks/base/libs/hwui/DisplayListOp.h
|
b265e2ca50b6ceb2fd2987ef1f7d063b1bde19ae |
|
27-Mar-2014 |
Chris Craik <ccraik@google.com> |
Support shadows on the root RenderNode bug:13211941 Cleans up some of the RenderNode method naming Also removes unnecessary clip/save/restores, clipping shadows predictably, as drawn by the parent, before drawing (and clipping, etc.) the shadow casting child. Change-Id: I795115e1fb869bbbdd7be43e279b97490fecc7e0
/frameworks/base/libs/hwui/DisplayListOp.h
|
024433f89684e1f9cb7b15ade7c480c9346fbe4d |
|
26-Mar-2014 |
Chris Craik <ccraik@google.com> |
Disable shadow overdraw avoidance in the inverse clip case The caster is effectivly transparent, so skip the optimization just as is done for alpha < 1.0 Change-Id: I3d294222adf0137e20c1fb5808313d487e92e0a8
/frameworks/base/libs/hwui/DisplayListOp.h
|
8c271ca63b62061fd22cfee78fd6a574b44476fd |
|
25-Mar-2014 |
Chris Craik <ccraik@google.com> |
Add private circular reveal API on View/RenderNode Change-Id: I139c8e12b354083149a665f6768f3f6931a8dd15
/frameworks/base/libs/hwui/DisplayListOp.h
|
e18264b079481a244b30e3f71012c53bbd861f92 |
|
12-Mar-2014 |
John Reck <jreck@google.com> |
Rename DisplayList->RenderNode Change-Id: Id42e23c9a1a6eb6eaeafef707ced7fa6887b03d0
/frameworks/base/libs/hwui/DisplayListOp.h
|
b79a3e301a8d89b9e1b1f6f3d7fd6aa56610a6f0 |
|
11-Mar-2014 |
Chris Craik <ccraik@google.com> |
Fix orthographic shadows projection, simplify shadow reordering Separate matrix passed to shadow system into two parts, one for transforming the polygon XY points (using the actual draw matrix) and a separate one which respects correct 4x4 3d rotations and translations for determining Z values. Change-Id: I7e30a84774a8709df6b2241e8f51fc5583648fe8
/frameworks/base/libs/hwui/DisplayListOp.h
|
67862524056ee2e73a94395139bb8bd0ec1ef38a |
|
28-Feb-2014 |
Chris Craik <ccraik@google.com> |
Fix use of Skia deprecated methods Change-Id: Ib89c20fc94bcce29b7490d6f55c73492735befda
/frameworks/base/libs/hwui/DisplayListOp.h
|
35eeb2d859d0e535b4d23bfd52db76db38b1551c |
|
21-Feb-2014 |
Narayan Kamath <narayan@google.com> |
am 61910447: am 7942397b: am 19256340: am 22c66639: Merge "Fixes for 64bit in libhwui" * commit '6191044729b2dace9c9b4b15b19a8839377d8973': Fixes for 64bit in libhwui
|
73fc558e44be259c0833c8c8074ad2333bcb378d |
|
13-Feb-2014 |
Kévin PETIT <kevin.petit@arm.com> |
Fixes for 64bit in libhwui Using reinterpret_cast allows conversions between pointer types and integers which don't have the same size. The corresponding flags is -Wint-to-pointer-cast. Change-Id: I8ff0c79d235fa6d07b8d9305edc185d946d5133d Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
/frameworks/base/libs/hwui/DisplayListOp.h
|
76d3a1b8d035d27bc80b0f2fc480a903bd001514 |
|
10-Dec-2013 |
Derek Sollenberger <djsollen@google.com> |
Removing SkiaColorFilter and inspecting the native object directly. bug: 10650594 Change-Id: I4fcf66d008765afa0e35d011f58bc792183cb74f
/frameworks/base/libs/hwui/DisplayListOp.h
|
8852ab4357ffb653bafb36f3b9272866834f7a72 |
|
07-Feb-2014 |
Derek Sollenberger <djsollen@google.com> |
Merge "Keep the SkPaint used when creating a layer."
|
d44fbe55a9f434cb5bb0e34c143ba1445141990d |
|
05-Feb-2014 |
Derek Sollenberger <djsollen@google.com> |
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
/frameworks/base/libs/hwui/DisplayListOp.h
|
629f67709b84a6bebdecdc8a500bf83560f557d0 |
|
05-Feb-2014 |
Chris Craik <ccraik@google.com> |
Simplify DisplayList matrices Somewhat unifies the ortho/perspecive paths - the property matrix (translate/scale/rotate) is now always a Matrix4. Change-Id: I36e4fe83d1150ee6e4be5f64f34d0fc8d6525cc6
/frameworks/base/libs/hwui/DisplayListOp.h
|
a2fe7affd3d077ac163da90996cb2e5e0ca3b8d1 |
|
29-Jan-2014 |
Chris Craik <ccraik@google.com> |
Add initial hidden outline APIs Background drawable outline usage and drawable outline calculation still to come. Change-Id: I8c7539f1638f86e1f8eb11f4fe49f705f61d58ba
/frameworks/base/libs/hwui/DisplayListOp.h
|
15a07a21eb33e8ca1c7444944fe0541a53380c0c |
|
26-Jan-2014 |
Chris Craik <ccraik@google.com> |
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
/frameworks/base/libs/hwui/DisplayListOp.h
|
f533e947035795a485344f4c270e16507f974901 |
|
15-Jan-2014 |
Chris Craik <ccraik@google.com> |
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
/frameworks/base/libs/hwui/DisplayListOp.h
|
d218a92c0afb8c0d98135b20b52ac87236e1c935 |
|
03-Jan-2014 |
Chris Craik <ccraik@google.com> |
Use const where possible for drawing parameters They should never be modified by a Renderer, only read and copied. Change-Id: I9d8d55dca19115ee9dfeb2bb3f092ba2fb327cd4
/frameworks/base/libs/hwui/DisplayListOp.h
|
f57776b2d195f0937906eb88b777bb55ccc36967 |
|
26-Oct-2013 |
Chris Craik <ccraik@google.com> |
3d view system! True 3d transformations are now supported by DisplayLists and the renderer, initially with the translationZ property on view. Renderer operations used directly by DisplayList (formerly, clip/save/restore/saveLayer) are now more simply managed by allocating them temporarily on the handler's allocator, which exists for a single frame. This is much simpler than continuing to expand the pool of pre-allocated DisplayListOps now that more operations are called directly by DisplayList, especially with z ordered drawing. Still TODO: -APIs for camera positioning, shadows -Make Z apis public, and expose through XML -Make invalidation / input 3d aware Change-Id: I95fe6fa03f9b6ddd34a7e0c6ec8dd9fe47c6c6eb
/frameworks/base/libs/hwui/DisplayListOp.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/DisplayListOp.h
|
5caebe4c7c8644b1dbf3fef23551373b95a8efd6 |
|
21-Sep-2013 |
Chris Craik <ccraik@google.com> |
am bd842f96: am d8a84a86: Merge "Correct bitmap merging logic" into klp-dev * commit 'bd842f96ed4a9b7887be4702828ea0034d66ef85': Correct bitmap merging logic
|
996fe656340ede058a6f0e6b18f9ec525ddb4e27 |
|
21-Sep-2013 |
Chris Craik <ccraik@google.com> |
Correct bitmap merging logic bug:10863163 This fixes two issues The check for pure translation was incorrect. It was fixed and renamed for clarity. Certain matrix paths weren't setting kTypePositiveScale. For simplicity (and because positive scale is simple to check) removed flag in favor of dynamic checking. Change-Id: Ic5ce235653ef49a68b8b242bd89fc2e95874ecc9
/frameworks/base/libs/hwui/DisplayListOp.h
|
e08e6632294143f889ab68f0c3453ee6802dc60e |
|
18-Sep-2013 |
Chris Craik <ccraik@google.com> |
am 7cb404dd: am a42ceb03: Merge "Disallow negative scale matrices in merged Bitmap drawing" into klp-dev * commit '7cb404dda770da24aaf1b484d6575d5480cf080f': Disallow negative scale matrices in merged Bitmap drawing
|
d965bc5823d878a3fd056b8a95fb4eb578ed3fe4 |
|
16-Sep-2013 |
Chris Craik <ccraik@google.com> |
Disallow negative scale matrices in merged Bitmap drawing bug:10622962 Change-Id: I55ac18ad56b53dc9e6e6ea14cd3ec4bdafa98ac3
/frameworks/base/libs/hwui/DisplayListOp.h
|
7cca88352fc0597a74af13ea0b7c116de29e981e |
|
13-Sep-2013 |
Chris Craik <ccraik@google.com> |
am 3f30e67a: am 88ee0dac: Merge "Move DeferredDisplayState out of ops" into klp-dev * commit '3f30e67afbceb185c52833cec539cc0199716ef0': Move DeferredDisplayState out of ops
|
c1c5f0870282b56dafe5a4d756e4b9e6884655a7 |
|
12-Sep-2013 |
Chris Craik <ccraik@google.com> |
Move DeferredDisplayState out of ops bug:9969358 Instead of storing DeferredDisplayState within an op (thus forcing ops to be tied to a single state instance), associate each op with a new state at DeferredDisplayList insertion time. Now, DisplayLists (and the ops within) can be reused in a single DeferredDisplayList draw call, as ops will use different state instances at different points in the frame. Change-Id: I525ab2abe0c3883679f2fa00b219b293e9ec53d9
/frameworks/base/libs/hwui/DisplayListOp.h
|
3380cfdc77100e87aa8390386ccf390834dea171 |
|
16-Aug-2013 |
Romain Guy <romainguy@google.com> |
Replace float arrays with readable names Change-Id: I32a8be560b60a4ac5cbee2fec4574b2c5df9f825
/frameworks/base/libs/hwui/DisplayListOp.h
|
9b5a1a28c327e6113d68302b1f0eed1d1c6f6183 |
|
09-Aug-2013 |
Romain Guy <romainguy@google.com> |
Take shadow bounds into account for quick rejects Bug #8634346 Change-Id: I995c5205c2959d8e4da638ae47fedcda92eb1b36
/frameworks/base/libs/hwui/DisplayListOp.h
|
7f6d6b0370df4b5a9e0f45bffc31ea6caeeb509d |
|
06-Aug-2013 |
Romain Guy <romainguy@google.com> |
Split assets atlas batches Bug #10185769 The assets atlas contains assets that need to be blended and assets that do not need to be blended. With a single merge id, currently set to be the pointer to the atlas itself, draw ops merging could generate batches of commands containing both opaque and translucent assets. The blend state was chosen from only one of the assets in the batch, leading either to inefficiencies (blending large opaque assets) or incorrect behaviors (not blending translucent assets.) This change introduces two new merge ids in the atlas: an opaque key and a blend key. These keys are simple booleans set to false and true respectively (the values do not matter really.) Their memory addresses are used as the merge ids when createing draw ops batches, allowing all opaque ops to be batched together and all translucent ops to be batched together. Change-Id: I114dba0533c44987e53864b471ccb28c811f2025
/frameworks/base/libs/hwui/DisplayListOp.h
|
b213cec0ce659c1e35c3e7f60a61bae38d94482a |
|
02-Aug-2013 |
Chris Craik <ccraik@google.com> |
Merge "Fix quickReject's handling of AA ramp geometry"
|
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/DisplayListOp.h
|
b7b93e00893f5c690a96bd3e0e10583bc5721f83 |
|
02-Aug-2013 |
Romain Guy <romainguy@google.com> |
Fix region clipping bugs See external bug #58344 Change-Id: Iecd6c41fc8076cd76add2335d3442a6dd8878f12
/frameworks/base/libs/hwui/DisplayListOp.h
|
4e7b772b733593fbe25c733e95b8dcea293234b6 |
|
16-Jul-2013 |
Romain Guy <romainguy@google.com> |
Fix crashes in setMatrix() and concat() setMatrix() was crashing in native code, only with hw acceleration on. concat() would throw a NullPointerException. It now ignores null matrices. Change-Id: Iebd8b410a957d2ba501570c6fbb3f680ff4a1a23
/frameworks/base/libs/hwui/DisplayListOp.h
|
55b6f95ee4ace96c97508bcd14483fb4e9dbeaa0 |
|
28-Jun-2013 |
Romain Guy <romainguy@google.com> |
Track the atlas' generation ID Bug #9589379 If the atlas is terminated/reinitialized and a view does not invalidate in between it might end up using a stale AssetAtlas::Entry. This change is similar to how 9patch meshes are cached in DrawPatchOp: we simply track the generation ID of the cache to make sure we always use the latest data. Change-Id: Ib5abb3769d2ce0eabe9adc04e320ca27c422019e
/frameworks/base/libs/hwui/DisplayListOp.h
|
2c290392c9a934f9ac48364af01c848b01ba8e80 |
|
21-Jun-2013 |
Romain Guy <romainguy@google.com> |
Merge "Batch 9-patches in a single mesh whenever possible"
|
03c00b5a135e68d22ca5bb829b899ebda6ed7e9d |
|
21-Jun-2013 |
Romain Guy <romainguy@google.com> |
Batch 9-patches in a single mesh whenever possible This change also fixes the way batched bitmaps were handled inside a layer. The layer is now correctly dirtied to minimize the amount of pixels to blend. Fix alpha, mode and opaque computations for DrawPatchOp. Change-Id: I1b6cd581c0f0db66c1002bb4fb1a9811e55bfa78
/frameworks/base/libs/hwui/DisplayListOp.h
|
c5493fb7fa1f6995955c667d4377f2337f2cf465 |
|
20-Jun-2013 |
Chris Craik <ccraik@google.com> |
Make op outputting const, for more general logging Change-Id: Iaf78985ee5558e0b5d32d7bc1cd039eaffc820e5
/frameworks/base/libs/hwui/DisplayListOp.h
|
49cc5d71192cbd776e237488218aea18a3ed14b1 |
|
18-Jun-2013 |
Chris Craik <ccraik@google.com> |
Merge "Handle all text bounds as post-translated"
|
f09b746acb266a849f3421df1604ebec161bb93d |
|
18-Jun-2013 |
Chris Craik <ccraik@google.com> |
Handle all text bounds as post-translated We were treating immediate mode bounds as pre translate, which is inconsistent with using them for quickRejection. This fixes the overdraw counter not drawing correctly (since it uses immediate mode drawing. Change-Id: I1c734d367a00942bd7d9b041822c0a9f284e70a8
/frameworks/base/libs/hwui/DisplayListOp.h
|
d72b73cea49f29c41661e55eb6bfdbc04f09d809 |
|
17-Jun-2013 |
Chris Craik <ccraik@google.com> |
Better handle op size edge cases bug:9464358 Previously, empty and unknown sized ops are assumed to fully cover their clip. This is now corrected such that empty sized ops are pre-rejected before defer. Additionally, unknown sized ops disable overdraw avoidance. Change-Id: Icf2ce24f98be5ea6299e24ffcf826790373564a1
/frameworks/base/libs/hwui/DisplayListOp.h
|
5216c3b05fc6c7bacd74be67b932fe3aba89cc8e |
|
15-Jun-2013 |
Romain Guy <romainguy@google.com> |
Merge more 9patches Change-Id: If8b16af84f0ee42afc406922d15897e51d833e68
/frameworks/base/libs/hwui/DisplayListOp.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/DisplayListOp.h
|
4c2547fa9244e78115cde0a259291053108c3dc7 |
|
12-Jun-2013 |
Romain Guy <romainguy@google.com> |
Avoid 9patch cache lookups when possible This optimization saves up to 0.3ms per frame on the Play Store's front page, on a Nexus 4 device. Change-Id: Iaa4ef33c6e3b37e175efd5b9eea9ef59b43f14f3
/frameworks/base/libs/hwui/DisplayListOp.h
|
7f77736599c39cdd5540168fc652cf6846799a33 |
|
22-May-2013 |
Romain Guy <romainguy@google.com> |
Merge "Merge scaled bitmaps with translated bitmaps"
|
2db5e993b626794eb07a0ff354269f9a77da81b3 |
|
22-May-2013 |
Romain Guy <romainguy@google.com> |
Merge scaled bitmaps with translated bitmaps Change-Id: I03089f48f97b69fcb4a0171984d3ff548d41c4a8
/frameworks/base/libs/hwui/DisplayListOp.h
|
41541825bc90dac740e424cdd41a8c997e15cdb7 |
|
04-May-2013 |
Chris Craik <ccraik@google.com> |
Use individual glyph positions to determine text bounds. bug:8766924 Previously text bounds were calculated to be from 0 to totalAdvance in the X, and from the font's top to bottom. These are incorrect, especially in light of the font fallback mechanism. Now, we calculate the bounds of the text as we layout each glyph. Since these are much tighter bounds in the common case, this significantly reduces the amount of clipping required (which in turn enables more aggressive text merging). Change-Id: I172e5466bf5975bf837af894a9964c41db538746
/frameworks/base/libs/hwui/DisplayListOp.h
|
3b748a44c6bd2ea05fe16839caf73dbe50bd7ae9 |
|
18-Apr-2013 |
Romain Guy <romainguy@google.com> |
Pack preloaded framework assets in a texture atlas When the Android runtime starts, the system preloads a series of assets in the Zygote process. These assets are shared across all processes. Unfortunately, each one of these assets is later uploaded in its own OpenGL texture, once per process. This wastes memory and generates unnecessary OpenGL state changes. This CL introduces an asset server that provides an atlas to all processes. Note: bitmaps used by skia shaders are *not* sampled from the atlas. It's an uncommon use case and would require extra texture transforms in the GL shaders. WHAT IS THE ASSETS ATLAS The "assets atlas" is a single, shareable graphic buffer that contains all the system's preloaded bitmap drawables (this includes 9-patches.) The atlas is made of two distinct objects: the graphic buffer that contains the actual pixels and the map which indicates where each preloaded bitmap can be found in the atlas (essentially a pair of x and y coordinates.) HOW IS THE ASSETS ATLAS GENERATED Because we need to support a wide variety of devices and because it is easy to change the list of preloaded drawables, the atlas is generated at runtime, during the startup phase of the system process. There are several steps that lead to the atlas generation: 1. If the device is booting for the first time, or if the device was updated, we need to find the best atlas configuration. To do so, the atlas service tries a number of width, height and algorithm variations that allows us to pack as many assets as possible while using as little memory as possible. Once a best configuration is found, it gets written to disk in /data/system/framework_atlas 2. Given a best configuration (algorithm variant, dimensions and number of bitmaps that can be packed in the atlas), the atlas service packs all the preloaded bitmaps into a single graphic buffer object. 3. The packing is done using Skia in a temporary native bitmap. The Skia bitmap is then copied into the graphic buffer using OpenGL ES to benefit from texture swizzling. HOW PROCESSES USE THE ATLAS Whenever a process' hardware renderer initializes its EGL context, it queries the atlas service for the graphic buffer and the map. It is important to remember that both the context and the map will be valid for the lifetime of the hardware renderer (if the system process goes down, all apps get killed as well.) Every time the hardware renderer needs to render a bitmap, it first checks whether the bitmap can be found in the assets atlas. When the bitmap is part of the atlas, texture coordinates are remapped appropriately before rendering. Change-Id: I8eaecf53e7f6a33d90da3d0047c5ceec89ea3af0
/frameworks/base/libs/hwui/DisplayListOp.h
|
dd671599bed9d3ca28e2c744e8c224e1e15bc914 |
|
19-Apr-2013 |
Chet Haase <chet@google.com> |
Fix quickReject logic to account for setClipChildren() setting The rendering code optimizes by rejecting drawing operations that lie outside of the bounds of their views. This works in most situations, but breaks down when containers have called setClipChildren(false), because we reject drawing that is outside of that container, but which should be drawn anyway. Fix is to pass in the value of that flag to the DisplayList drawing routines which take that flag into account when deciding whether to quickReject any particular operation. Issue #8659277 animation clipping Change-Id: Ief568e4db01b533a97b3c5ea5ad777c03c0eea71
/frameworks/base/libs/hwui/DisplayListOp.h
|
ee5b2c6de7fb32d945a5a1303012a5f94b719dfa |
|
18-Apr-2013 |
Chris Craik <ccraik@google.com> |
Prevent transformed ops from merging in the first place bug:8649215 Previously we prevented ops with non-translate transforms from merging, but missed the case of the first op in a merging batch containing a non-translate transform. This fulfills the assumption of drawText's non-immediate mode that merged ops will have pure translate transforms. Change-Id: I6f6db341aff3f7e84e74b4c3ccf970d585a2db1a
/frameworks/base/libs/hwui/DisplayListOp.h
|
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/DisplayListOp.h
|
e7c69c6fe3eac1fb01126ede550e5dc32979804a |
|
03-Apr-2013 |
Chris Craik <ccraik@google.com> |
Account for hairlines in quick rejection logic bug:8531373 Change-Id: I35444014f23fc61da687694fccc0d13bce718793
/frameworks/base/libs/hwui/DisplayListOp.h
|
7273daace9303f4662444111c40bb83d3ead4a92 |
|
28-Mar-2013 |
Chris Craik <ccraik@google.com> |
Fix issues related to saveLayer/restore deferral bug:8464795 Changes drawModifiers and alpha to be restored for all operations, since saveLayer/restore use these values, not just draw operations Also forces a renderer state restoration before a deferred restore op is played back, in case it is associated with a saveLayer that doesn't have the save_clip flag set Change-Id: I9da5d44fefbfffdee164c98f4f139843dacf85df
/frameworks/base/libs/hwui/DisplayListOp.h
|
d90144db52c7297879b950cbbc85137ed123ab5b |
|
19-Mar-2013 |
Chris Craik <ccraik@google.com> |
Update snapshot upon saveLayer deferral bug:8409891 In order to defer fbo-targetting saveLayer operations, it's necessary to update the snapshot at defer time so that deferred display state (namely, clip and transform) are fbo relative. Re-enables deferring, as the issues with saveLayer are fixed. Change-Id: I74b0779bc732675c747208f0757c3ea85f6dfbed
/frameworks/base/libs/hwui/DisplayListOp.h
|
4494599e5a4931426d5649e1d1c4f9db83824ae8 |
|
20-Mar-2013 |
Chris Craik <ccraik@google.com> |
Merge "Use snapshot alpha for layers" into jb-mr2-dev
|
a08f95cfeca7217f9c533b03663bf0dceedd259a |
|
16-Mar-2013 |
Chris Craik <ccraik@google.com> |
Use snapshot alpha for layers Removes mMultipliedAlpha, using the snapshot alpha for all non-overlapping display list alpha control. Additionally, fixes opacity issues where children of hasOverlappingRendering=false displaylists (both hw layer sublists and other sublists with hasOverlappingRendering=false) Change-Id: I6adc16da855835f9f518f8967628e5d0135c789b
/frameworks/base/libs/hwui/DisplayListOp.h
|
f40b8a939fef0a19b40188f007a3364311d6dabf |
|
15-Mar-2013 |
Chris Craik <ccraik@google.com> |
Merge "Fully deferred displaylist replay" into jb-mr2-dev
|
ff78583d8a73ca35ce65b5d2592570ff6fb9901b |
|
08-Mar-2013 |
Chris Craik <ccraik@google.com> |
Fully deferred displaylist replay bug:8037003 A recursive drawDisplayList call is now entirely deferred before playing back to the screen and issuing GL commands. This way, the entire stream can be inspected, optimized, and batch work (such as uploading textures) before issuing commands. Additionally, this fixes an issue where operations draw could move across restores corresponding to saveLayer(alpha). Those and other similar cases (such as complex clipping, requiring the stencil) are now treated as batching barriers, with the operations that change renderer state in a way that's difficult to defer are just re-issued at flush time. Change-Id: Ie7348166662a5ad89fb9b1e87558334fb826b01e
/frameworks/base/libs/hwui/DisplayListOp.h
|
bd3055f95e67a55648fd84a125e939293115171b |
|
14-Mar-2013 |
Romain Guy <romainguy@google.com> |
Less aggressive glyphs precaching The renderer used to pre-cache glyphs at record time. This then changed to pre-caching at the beginning of every frame. This unfortunately entails a lot of duplicate work on every frame, which amounts to 0.5 to 1ms in some stock applications. This change is somewhere in the middle: pre-caching happens the first time a DrawTextOp is deferred or every time the screen-space transform is different from the last pre-caching operation. Change-Id: Id6d9e2599d90a5b75010b0f0a28746befbf3c205
/frameworks/base/libs/hwui/DisplayListOp.h
|
ca89e2a68703bd428e8b66547d033a6ed35b3595 |
|
09-Mar-2013 |
Romain Guy <romainguy@google.com> |
Precache paths from a worker thread Change-Id: I3e7b53d67e0e03e403beaf55c39350ead7f1e309
/frameworks/base/libs/hwui/DisplayListOp.h
|
624234f69b2a4781d24f3e4c6ae6450729e38397 |
|
06-Mar-2013 |
Romain Guy <romainguy@google.com> |
Take only the scale params into account to rasterize text This change extracts the scale parameters of the current transform to pass then to the font renderer. Rotation and perspective are applied to the generated mesh inside the vertex shader. This limits the number of glyphs we have to create in the font cache and thus reduces memory churn. Change-Id: Ic5b3bae2b2b0e0250a8ee723b071a1709725c749
/frameworks/base/libs/hwui/DisplayListOp.h
|
0f6675332c04c74909425d1d328f02b32c0ff40e |
|
01-Mar-2013 |
Romain Guy <romainguy@google.com> |
Precache glyphs at final raster size The deferred display lists model now allows us to precache glyphs at their exact size on screen. This change also removes debug markers when the renderer defers and reorders display lists. It also adds a flush event marker. Change-Id: I66ec5216dc12b93ecfdad52a7146b1cfb31fbeb4
/frameworks/base/libs/hwui/DisplayListOp.h
|
d6960a49b40703e8af55c1fb628a2e0c5d2b40cf |
|
28-Feb-2013 |
Chris Craik <ccraik@google.com> |
Account for text alignment in Op bounds calculation bug:8243821 Previously this wasn't done for deferred clipping + reordering, so non-left-aligned text would be clipped at defer time, when it wouldn't have been at draw time (in OpenGLRenderer::quickReject()) Change-Id: Ic96949c2dca4378f284606b37d9411ed42f8d203
/frameworks/base/libs/hwui/DisplayListOp.h
|
758724fd09a1599f2c55130f81953cfa6c17c300 |
|
27-Feb-2013 |
Romain Guy <romainguy@google.com> |
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
/frameworks/base/libs/hwui/DisplayListOp.h
|
505d1d64eda6e47caabf8701cb39ec9b176b3238 |
|
22-Feb-2013 |
Romain Guy <romainguy@google.com> |
Merge "Prettify display lists logging"
|
7031ff68bb998dbbd7caf3b2fd75eef747a86725 |
|
22-Feb-2013 |
Romain Guy <romainguy@google.com> |
Prettify display lists logging This change makes it a lot easier to see the tree structure. Change-Id: I4969abd1eb010f1d529671f8d86dc4c930be24f6
/frameworks/base/libs/hwui/DisplayListOp.h
|
b98a016c6769b9e80d392df22fe77a2fca048d9f |
|
21-Feb-2013 |
Chris Craik <ccraik@google.com> |
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
/frameworks/base/libs/hwui/DisplayListOp.h
|
5d11676414b3606792e23c269cf75b44faa1a2af |
|
20-Feb-2013 |
Chris Craik <ccraik@google.com> |
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
/frameworks/base/libs/hwui/DisplayListOp.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/DisplayListOp.h
|
0776a6069365bdea83855db154fa2d37f9d1d808 |
|
15-Feb-2013 |
Chris Craik <ccraik@google.com> |
Move DisplayList to its own cpp file Change-Id: Ic9c1bbf4673ad5c756f3908b2ab7e699edd6a119
/frameworks/base/libs/hwui/DisplayListOp.h
|
3dc553babe515fbf9bd042dd63a792e5de578ecd |
|
04-Feb-2013 |
Chris Craik <ccraik@google.com> |
Simplify display list logging, removing pointers Also fix save indents Change-Id: Ia1add83422fbc200b85fd6688f5be60292b0f178
/frameworks/base/libs/hwui/DisplayListOp.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/DisplayListOp.h
|