Reserve ensures the underlying buffer is the correct size, but
iterating across it is not necessarily valid. Use resize() instead
to ensure that the iterator access is valid
Change-Id: I35ff5f4416bb94cf4ce2c6acf72ffd17ab3e523a
Now the theta = 0 should be on +x axis.
And cos(theta) should correctly represent x value.
Without this fix, the poly theta (from atan2) can be wrongly rotated 90 degrees.
Also, make sure the incoming polygon is CW for the shadow system.
This fix visual artifacts in recent regression for spot shadows.
bug:13553955
Change-Id: I9bbf54db094e7f133326da4dae4610962da849c1
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
bug:14259972
Ensure that translationZ is applied for true3dTransform property
transformations, even if the node doesn't have any other
transformation properties set.
Additionally, use fuzzy compare for translationZ, similar to
rotationX/Y, since they're expenive to leave set in rounding error
cases.
Change-Id: Idafa4423cc7751a8f433237b1f576aa7abb74f6e
Bug: 14052927
destroyCanvasAndSurface() needs a fence as when it returns the
underlying BufferQueue is going to be released from under
the render thread.
Change-Id: I0147a1d5ec5adf0239c761ef22f65cd8c8a137df
bug:9321162
mDestroyed is no longer useful, as RenderNode is ref counted (not to
mention having its lifecycle significantly redesigned).
Change-Id: I429b9dd7740362c85d6416fbae567f0d47098e4e
Bug: 13952590
It was attempting to flush state changes after the canvas was
destroyed, which caused layer updates to crash.
Due to the removal of SetDisplayListData, the sync mode isn't able
to do anything ever, so remove it.
Change-Id: I1e18ce288d81fd47cc6e612afda9476f75ecef2e
Bug: 13914116
Fixes lifecycle issues around setEnabled where ThreadedRenderer
was reporting as being enabled before it had a Surface. This is
incorrect.
Also fix some EGL lifecycle issues
Change-Id: I12ebb279707f9b533a570b61d68735d858b560bf
I816129d49c0118453222916f3c818eccac33663d merges a new version of
Skia that updates various APIs. Call the new ones.
SkBitmap::copyTo now takes an SkColorType instead of an
SkBitmap::Config, so do the conversion with
SkBitmapConfigToColorType or use the enum when it makes sense.
Call SkImageDecoder::decodeSubset instead of (deprecated)
SkImageDecoder::decodeRegion.
Override SkCanvas::ClipVisitor::clipRRect in ClipCopier.
In Canvas::clip calls, call SkCanvas::isClipEmpty(), which was
previously called inside the clip call, to determine the return value.
For various SkPaint effects, call the new factories (as the constructors
have been made protected).
Implement SkJavaOutputStream::bytesWritten(), overriding a new pure
virtual function on SkWStream.
Update Matrix calls to always return true (since SkMatrix calls no
longer return a value).
Depends on I816129d49c0118453222916f3c818eccac33663d (skia).
Change-Id: I5cdcea827ebff587df0bbddc0965e3e0fbf48002
This change dedupes the various properties that were represented both
in TransformationInfo, and RenderProperties on the native side.
RenderNode (and its associated properties) are now permanently
attached to a View in SW or HW. The native copy of these properties
are their sole representation.
Alpha to come in a later CL.
Also fixed issue with copying RenderNode's transform, and added
support of deleting RenderNodes in software rendering.
Change-Id: Ideb6e7f32b780e87aa1c32637c368356b3eee3a1