| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
| |
Bug: 17947547
Pull the ResourceCache (aka, ref-counting side channel) out of
Caches so that DisplayListRenderer doesn't use Caches, avoiding
the risk of instantiating Caches on the wrong thread or
without a GL context
Change-Id: I7d63b70b3b0a0163308c5dedd6ef255eadebe8fd
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
Bug: 16526750
Change-Id: I4c087160e80432739321172fd57880846c8de6e0
|
| |
|
|
| |
Change-Id: I635c6627d098b661fb9b0ba1bd42fa6d7277d287
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
Change-Id: I7a86db8acc2b78ef33d987a43a119f5933d7d752
|
| |
|
|
| |
Change-Id: I9380d161fd3ddd7b569c262dd8e7aa0c96151b1e
|
| |
|
|
| |
Change-Id: I5c1c375f45946609b1635d952c5adf55e23bdd60
|
| |
|
|
|
|
| |
This reverts commit 0334c314a5721f49b4d172a9cefe10f157cb28a4.
Change-Id: I64714d17fb877e1b43c65eb44820d1128281c7a2
|
| |
|
|
| |
Change-Id: I4d81a7849eba60a1a9debce74eedd55d6331842d
|
| |
|
|
| |
Change-Id: Ia9888b4fb2c849d95a8c395cafef2e2294a23aae
|
| |
|
|
| |
Change-Id: I7aa474d65a3d12efd4ffb731e07ee42f4d348183
|
| |
|
|
| |
Change-Id: Id42e23c9a1a6eb6eaeafef707ced7fa6887b03d0
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
Change-Id: Iad688c8395ccd4673cc129973802b5f01dfb45ba
|
| |
|
|
|
|
|
|
| |
- Tune and simplify shadow parameters
- Remove additional inner rings
- Improve polygon ray casting algorithm
Change-Id: If0f28b2d66ae0480b675942bb65e8fcd2864425d
|
| |
|
|
|
|
| |
Bug: 13339664
Change-Id: Iafb8ba77bdf1d971c1d0a345ff525e7f7fa80352
|
| |\ |
|
| | |
| |
| |
| | |
Change-Id: Ib5d00c83e81d9d4c384685a84988a681da8b4490
|
| |/
|
|
| |
Change-Id: I6ad6b78531cc0426dc2ea82a32775f7b0265b5b1
|
| |
|
|
| |
Change-Id: I53418d580c98f706e971545cff81b9921c12cc5f
|
| |
|
|
| |
Change-Id: Ibc4b3958feb3b5dba91d30af470d76555a6209c8
|
| |
|
|
| |
Change-Id: If40dc27b2fdc41c3ed355bc9029474b1344c1a03
|
| |\ |
|
| | |
| |
| |
| |
| | |
bug: 10650594
Change-Id: I4fcf66d008765afa0e35d011f58bc792183cb74f
|
| | |
| |
| |
| |
| |
| | |
Global perspective isn't yet hooked up in rendering.
Change-Id: I64ad272ea5dc523505260ce114f0a6bebdcfe9dc
|
| |/
|
|
| |
Change-Id: I6ba23b589e579599d018600d0744be0efe2028c1
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |\ \ |
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |/
|
|
|
|
|
| |
Somewhat unifies the ortho/perspecive paths - the property matrix
(translate/scale/rotate) is now always a Matrix4.
Change-Id: I36e4fe83d1150ee6e4be5f64f34d0fc8d6525cc6
|
| |
|
|
|
|
|
| |
Background drawable outline usage and drawable outline calculation
still to come.
Change-Id: I8c7539f1638f86e1f8eb11f4fe49f705f61d58ba
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
Change-Id: Ie6b3af3065d4d10ec0bc9b419223d3458d297ea8
|
| |
|
|
|
|
|
|
|
| |
bug:12581401
Adds temporary logging which should log/crash earlier on incorrectly
reordering hierarchies.
Change-Id: Iee00940718c3cc868161e754aff93cd3b2747094
|
| |
|
|
|
|
|
| |
The ortho projection can't handle 3d translation, so skip that step if
perspective projection isn't enabled.
Change-Id: I231e6bcecc82e876b697e098e034f0fd3b06efde
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
Change-Id: I9e36f68d7be5cfd4d69a84a51824cb9a642fe18d
|
| |
|
|
|
|
| |
Does not handle reordering/translating the projected DisplayList.
Change-Id: I6f1ebb2b20b7436c86fe849b35d582fd9c8a8967
|
| |
|
|
|
|
| |
They should never be modified by a Renderer, only read and copied.
Change-Id: I9d8d55dca19115ee9dfeb2bb3f092ba2fb327cd4
|
| |
|
|
|
|
|
| |
Fix several build warnings (struct != class, int != size_t) and errors
(variable leng non-POD arrays).
Change-Id: I70b4e784365514303d8954bfcb1f39d7c22c1321
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This will eventually serve as a base class to allow
DisplayListRenderer to split off from OpenGLRenderer, and could
eventually support other rendering approaches, such as an
SkCanvas/SkPicture.
This will also be the main source of (implementation-independent)
documentation of the canvas/renderer methods.
Change-Id: I52047f338f5cf86a3b0b3002af7154bff5c3c227
|
| |
|
|
| |
Change-Id: I6de00bc577d5b3a1fbc9ca3a3b3668fcfa32b867
|
| |
|
|
|
| |
bug:12191897
Change-Id: I72ed3801e72c657b9d7736b0efb33c5e7cfd5b57
|
| |
|
|
| |
Change-Id: I17772f61efce727cb4c1111f4d97f58c741786b8
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|