History log of /frameworks/base/libs/hwui/Renderer.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
12f5e3433226f0a2886a98b0b8da8d5e947c5cde 07-Nov-2014 John Reck <jreck@google.com> Fix wrong-thread issue

Bug: 18259560

Change-Id: Ic63a86efba9c86f21defac0695a73db8b09ae284
/frameworks/base/libs/hwui/Renderer.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/Renderer.h
bc341912b124ea52d1a383bb8cc0a12d0671eaa2 23-Sep-2014 Chris Craik <ccraik@google.com> Reject transparent draws more conservatively

bug:17600162

Transparent draws are not safe to reject for all xfermodes other than
clear. Now, to be safe, only perform the rejection for SrcOver draws
since other modes are fairly uncommon.

We could specifically determine whether the xfermode could change the
output given a transparent input, but there's little to be gained from
the additional complexity.

Change-Id: Ia699ac4bdc4da3353955840b53f1922d3cb1d85d
/frameworks/base/libs/hwui/Renderer.h
73821c8d2bd453de6bf3f516e1f1cdb9a132f4a7 17-Sep-2014 Chris Craik <ccraik@google.com> Handle premultiplication correctly for ColorMatrixColorFilters

bug:17405627

Previously, the input content to the color matrix computation was left
premultiplied. Since the color matrix could reduce the alpha channel,
the alpha was re-multiplied, but this was incomplete, and incorrect.

Instead, apply the color matrix in unpremultiplied space.

Change-Id: I87b8e03d2e228e6ded81f7bbfea952605d7a095c
/frameworks/base/libs/hwui/Renderer.h
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/Renderer.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/Renderer.h
058fc640017c90120c599d378a4cbc55668b05b7 24-Jul-2014 Chris Craik <ccraik@google.com> Connect shadow style attributes to renderer

bug:15859361

Moves lighting info out of StatefulBaseRenderer, since it's not useful
at record time, and only used by OGLR.

Change-Id: I7ab065d02d9304afad1dc4c48597a7a621366f8e
/frameworks/base/libs/hwui/Renderer.h
f23b25abfb76e75f63103abc882bc91b8327a957 27-Jun-2014 Chris Craik <ccraik@google.com> Remove isRecording() method from renderers

DisplayListRenderer is all that's accessed from java, and is entirely
separate from OpenGLRenderer now.

Change-Id: Ie733be71520c13fdb55dfe3522bb445ae2b50ac1
/frameworks/base/libs/hwui/Renderer.h
3b20251a355c88193c439f928a84ae69483fb488 23-Jun-2014 John Reck <jreck@google.com> No-fail invokeFunctor

Bug: 15513308
Bug: 15449247

Change-Id: I13a29f9c8d4975cdda6dcb33b6332c2555ff0f7c
/frameworks/base/libs/hwui/Renderer.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/Renderer.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/Renderer.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/Renderer.h
797b95b26bbb7557678af78b9a2a61830158920f 21-May-2014 Chris Craik <ccraik@google.com> Define light position (using new lighting spec) in Java

Also updates the relative shadow strengths.

Change-Id: I6cac7275d38df98aea9f0dda463cd7207102986a
/frameworks/base/libs/hwui/Renderer.h
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/Renderer.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/Renderer.h
e18264b079481a244b30e3f71012c53bbd861f92 12-Mar-2014 John Reck <jreck@google.com> Rename DisplayList->RenderNode

Change-Id: Id42e23c9a1a6eb6eaeafef707ced7fa6887b03d0
/frameworks/base/libs/hwui/Renderer.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/Renderer.h
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/Renderer.h
4f02bf4eef6af47f35c70c4dda5b7b9523d89ca0 04-Jan-2014 John Reck <jreck@google.com> Native-side proxy

Remove RemoteGLRenderer
Remove reflection-based control

Change-Id: If17c2bbb61c7141986d88c4763def77ed1074985
/frameworks/base/libs/hwui/Renderer.h
2114aef4eaa1c6539d4fe83bb130395dad7fbae7 15-Jan-2014 John Reck <jreck@google.com> Remove dead code

Change-Id: I9c96d3d21bd3faed91a5146f5a2b8916c634fdff
/frameworks/base/libs/hwui/Renderer.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/Renderer.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/Renderer.h
14e513058ed4168c94e015638d16f5f87fd8063a 31-Dec-2013 Chris Craik <ccraik@google.com> 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
/frameworks/base/libs/hwui/Renderer.h
b458942bb6e6cf13c68341dda35ef5cee060f5ae 27-Dec-2013 Chris Craik <ccraik@google.com> Create abstract base class for OpenGLRenderer

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
/frameworks/base/libs/hwui/Renderer.h