djsollen@google.com
c9ab987efc
Implement multi-threaded picture playback via cloning.
...
The CL adds SkPicture.clone() which produces a thread-safe copy by
creating a shallow copy of the thread-safe data within the picture and
a deep copy of the data that is not (e.g. SkPaint). This implementation
re-flattens the paints when cloning instead of retaining the flattened
paints from the recording process.
Changes were also needed to various classes to ensure thread safety
Review URL: https://codereview.appspot.com/6459105
git-svn-id: http://skia.googlecode.com/svn/trunk@5335 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-29 18:52:07 +00:00
rmistry@google.com
d6176b0dca
Result of running tools/sanitize_source_files.py (which was added in https://codereview.appspot.com/6465078/ )
...
This CL is part II of IV (I broke down the 1280 files into 4 CLs).
Review URL: https://codereview.appspot.com/6474054
git-svn-id: http://skia.googlecode.com/svn/trunk@5263 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-23 18:14:13 +00:00
reed@google.com
3b3e895df6
remove EdgeType enum. Unimportant distinction, and removing speeds up quickReject
...
Review URL: https://codereview.appspot.com/6448161
git-svn-id: http://skia.googlecode.com/svn/trunk@5140 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-16 20:53:31 +00:00
tomhudson@google.com
8afae61a57
Clean up most clang warnings outside animator/
...
http://codereview.appspot.com/6464058/
git-svn-id: http://skia.googlecode.com/svn/trunk@5079 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-14 15:03:35 +00:00
djsollen@google.com
21830d9009
Refactor Bitmap Storage for SkPicture using SkPipe's design.
...
Refactor Picture and Pipe bitmap storage into common data structure
Update SkFlattenable buffers to be more modular.
This CL is an effort to stage the conversion to named
parameters for all SkFlattenable commands. This particular
stage only does the following two things...
1. Move flattenable buffers from SkFlattenable.h into
their own header.
2. Update and Add new read write methods for better clarity
and convenience.
BUG=
Review URL: https://codereview.appspot.com/6445079
git-svn-id: http://skia.googlecode.com/svn/trunk@4994 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-07 19:49:41 +00:00
junov@chromium.org
88e29146c1
Moving DeferredDevice and DeferredGPipeController classes out of the deferred canvas API header
...
Review URL: https://codereview.appspot.com/6449104
git-svn-id: http://skia.googlecode.com/svn/trunk@4989 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-07 16:48:22 +00:00
junov@chromium.org
3de7acc180
Removing the SkPicture backend from SkDeferredCanvas code
...
Review URL: https://codereview.appspot.com/6446095
git-svn-id: http://skia.googlecode.com/svn/trunk@4974 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-07 14:53:59 +00:00
junov@chromium.org
cd62ecf39a
Fixing leak of SkPixelRef object in CanvasTest
...
Review URL: https://codereview.appspot.com/6441095
git-svn-id: http://skia.googlecode.com/svn/trunk@4925 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-02 17:43:25 +00:00
djsollen@google.com
7dade42e6f
Always store pixels of mutable bitmaps when recording a SkPicture.
...
Prior to this CL mutable bitmaps only saved a copy of their pixels
if a flag was set at recording time. That flag has been removed
and the default behavior when recording a mutable bitmap is to
make a copy of it's pixels. This is the only way to ensure that
the pixels are not manipulated before we playback their contents.
However, enabling this behavior breaks the recording of extracted
bitmaps in SkPicture. This is because we currently cache bitmaps
within a picture based only on their pixelRef. This results in
false positive cache hit when drawing an extracted bitmap as it
shares a pixelRef with its orginating bitmap. Therefore we must
update the index of the bitmap cache to be both the pixelRef AND
the size and offset of the bitmap using those pixels.
BUG=
TEST=extractbitmap.cpp
Review URL: https://codereview.appspot.com/6439043
git-svn-id: http://skia.googlecode.com/svn/trunk@4809 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-27 15:58:23 +00:00
junov@chromium.org
426aebc850
Adding new steps to Canvas unit test to validate that the deferred
...
canvas state coherence test case passes with sequences of draw commands
that trigger flushes and purges of deferred draw commands.
This CL confirms that using SkGPipe fixes the deferred canvas issues that are
the root problem of crbug.com/133432
BUG=https://code.google.com/p/chromium/issues/detail?id=133432
Review URL: https://codereview.appspot.com/6416049
git-svn-id: http://skia.googlecode.com/svn/trunk@4687 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-20 13:21:58 +00:00
junov@chromium.org
cff01c5b60
Improving CanvasTest to verify that the destination canvas of an SkDeferredCanvas has the same state as a plain SkCanvas that received the same draw commands.
...
This new test code shows that the SkGPipe port of SkDeferredCanvas solves problems we were having with SkPicture.
Review URL: https://codereview.appspot.com/6425048
git-svn-id: http://skia.googlecode.com/svn/trunk@4665 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-18 21:50:26 +00:00
junov@chromium.org
4e6dfa5152
Adding bracketing save/restore calls to SkPicture at record time and
...
preparing tests for enforcing save/restore balancing constraints on SkPicture
Review URL: http://codereview.appspot.com/6354105/
git-svn-id: http://skia.googlecode.com/svn/trunk@4618 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-16 14:04:59 +00:00
junov@chromium.org
a6c9e0e02b
Cleanup restore offsets at end of SkPicture recording
...
Review URL: http://codereview.appspot.com/6355099/
TEST=skia unit test CanvasTest, test step TwoClipOps
BUG=https://code.google.com/p/chromium/issues/detail?id=133432
git-svn-id: http://skia.googlecode.com/svn/trunk@4577 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-12 17:47:34 +00:00
reed@google.com
e2589aeebf
Change SkFlatData to have a sentinel value, allowing the Compare function to
...
not need a loop-end-test.
Review URL: https://codereview.appspot.com/6355086
git-svn-id: http://skia.googlecode.com/svn/trunk@4517 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-10 19:38:01 +00:00
caryclark@google.com
42639cddc3
fix warnings on Mac in tests
...
Fix these class of warnings:
- unused functions
- unused locals
- sign mismatch
- missing function prototypes
- missing newline at end of file
- 64 to 32 bit truncation
The changes prefer to link in dead code in the debug build
with 'if (false)' than to comment it out, but trivial cases
are commented out or sometimes deleted if it appears to be
a copy/paste error.
Review URL: https://codereview.appspot.com/6301045
git-svn-id: http://skia.googlecode.com/svn/trunk@4175 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-06 12:03:39 +00:00
robertphillips@google.com
977b9c8af3
Instance counting for SkRefCnt-derived objects (w/ CanvasTest fix)
...
http://codereview.appspot.com/6242070/
git-svn-id: http://skia.googlecode.com/svn/trunk@4170 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-05 19:35:09 +00:00
junov@chromium.org
4866cc0afb
Adding option to serialize mutable bitmaps in SkPicture
...
BUG=http://code.google.com/p/chromium/issues/detail?id=115654
REVIEW=http://codereview.appspot.com/6221066/
git-svn-id: http://skia.googlecode.com/svn/trunk@4130 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-01 21:23:07 +00:00
djsollen@google.com
d2700eec7e
Refactor dictionaries for use by entities other than just SkPicture
...
Review URL: https://codereview.appspot.com/6101043
git-svn-id: http://skia.googlecode.com/svn/trunk@4077 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-30 16:54:13 +00:00
djsollen@google.com
f0a062bc45
Add device to top level N-way canvas.
...
Review URL: https://codereview.appspot.com/6131062
git-svn-id: http://skia.googlecode.com/svn/trunk@3811 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-05-01 16:50:25 +00:00
reed@google.com
90c07ea1d0
replace getTotalClipStack() with replayClips()+ClipVisitor
...
git-svn-id: http://skia.googlecode.com/svn/trunk@3670 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-04-13 13:50:27 +00:00
epoger@google.com
94fa43c625
Fix SkPathStroker::lineTo() for line with length SK_ScalarNearlyZero
...
Review URL: https://codereview.appspot.com/5992077
git-svn-id: http://skia.googlecode.com/svn/trunk@3650 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-04-11 17:51:01 +00:00
djsollen@google.com
e63793a2c8
Upstream changes from Android repository.
...
Review URL: https://codereview.appspot.com/5752055
git-svn-id: http://skia.googlecode.com/svn/trunk@3449 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-03-21 15:39:03 +00:00
junov@chromium.org
a907ac3e3e
Modify SkDeferredCanvas so that it uses its inherited SkCanvas to track matrix and clipping state
...
Removed 'virtual' from a few canvas methods that no longer need it thanks to this change.
BUG=http://code.google.com/p/skia/issues/detail?id=506
TEST=Canvas unit test
REVIEW=http://codereview.appspot.com/5697052/
git-svn-id: http://skia.googlecode.com/svn/trunk@3261 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-24 21:54:07 +00:00
junov@chromium.org
0b5b0ce39c
reverting r3257 because of gm failure.
...
git-svn-id: http://skia.googlecode.com/svn/trunk@3258 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-24 20:44:56 +00:00
junov@chromium.org
421bcc375a
Modify SkDeferredCanvas so that it uses its inherited SkCanvas to track matrix and clipping state
...
Removed 'virtual' from a few canvas methods that no longer need it thanks to this change.
BUG=http://code.google.com/p/skia/issues/detail?id=506
TEST=Canvas unit test
REVIEW=http://codereview.appspot.com/5697052/
git-svn-id: http://skia.googlecode.com/svn/trunk@3256 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-24 20:07:08 +00:00
junov@chromium.org
87f982c808
Fix for crash in SkDeferredCanvas when optional SkPaint argument is NULL
...
BUG=http://code.google.com/p/skia/issues/detail?id=505
TEST=Canvas unit test
REVIEW=http://codereview.appspot.com/5699054/
git-svn-id: http://skia.googlecode.com/svn/trunk@3246 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-23 21:34:34 +00:00
junov@chromium.org
dadcfdc929
Fixing Canvas unit test to correctly verify object flattening in SkPicture
...
BUG=http://code.google.com/p/skia/issues/detail?id=507
TEST=Canvas unit test
REVIEW=http://codereview.appspot.com/5685082/
git-svn-id: http://skia.googlecode.com/svn/trunk@3235 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-23 14:59:22 +00:00
junov@chromium.org
76b9c4b71b
Disabling failing unit test on linux
...
TBR=reed
TEST=unit test CanvasTest
BUG=http://code.google.com/p/skia/issues/detail?id=507
git-svn-id: http://skia.googlecode.com/svn/trunk@3229 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-22 21:24:41 +00:00
junov@chromium.org
1cc8f6f3c4
Adding more unit testing for SkCanvas and derived classes.
...
BUG=http://code.google.com/p/skia/issues/detail?id=481
REVIEW=http://codereview.appspot.com/5674077/
TEST=unit test CanvasTest
git-svn-id: http://skia.googlecode.com/svn/trunk@3228 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-02-22 21:00:42 +00:00
reed@google.com
7c2029367c
add canvas::isDrawingToLayer(), as a fast query for chrome; faster than
...
setting up a drawiter and counting the layers.
git-svn-id: http://skia.googlecode.com/svn/trunk@2875 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-14 18:48:05 +00:00
reed@google.com
37f3ae0b9f
add unittest for save/restore
...
git-svn-id: http://skia.googlecode.com/svn/trunk@2751 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-11-28 16:06:04 +00:00