robertphillips@google.com
c23a63b9e2
Added test to ensure getConservativeBounds' result is clamped to render target
...
http://codereview.appspot.com/6447063/
git-svn-id: http://skia.googlecode.com/svn/trunk@4846 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-31 11:47:29 +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
rileya@google.com
589708bf7c
Split SkGradientShader into separate files for each gradient subclass.
...
Review URL: https://codereview.appspot.com/6447049
git-svn-id: http://skia.googlecode.com/svn/trunk@4792 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-26 20:04:23 +00:00
scroggo@google.com
15011ee5e4
Make SkDeferredCanvas query SkGPipeWriter for space allocated for bitmaps.
...
SkGPipe now has a method to report how much memory is used for its shared heap.
BUG=http://code.google.com/p/skia/issues/detail?id=738
TEST=DeferredCanvasTest
Review URL: https://codereview.appspot.com/6445046
git-svn-id: http://skia.googlecode.com/svn/trunk@4791 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-26 20:03:32 +00:00
robertphillips@google.com
cc6493bbef
Added ctor to SkClipStack and isEmpty method
...
http://codereview.appspot.com/6444048/
git-svn-id: http://skia.googlecode.com/svn/trunk@4787 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-26 18:39:13 +00:00
reed@google.com
0bb18bb264
explicitly track if a path is finite or not
...
we need this (it appears) so we can definitively reject non-finite paths
in canvas, before passing them down into the guts.
Review URL: https://codereview.appspot.com/6453047
git-svn-id: http://skia.googlecode.com/svn/trunk@4784 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-26 15:20:36 +00:00
junov@chromium.org
b10a6bd0a7
Refactoring how SkDeferredCanvas manages mutable bitmaps
...
This CL makes the SkGPipe flavor of SkDeferredCanvas properly
decide whether to flush or record mutable bitmaps. The flushing
is now managed by conditionally switching the canvas to non-deferred
mode, which avoids an unnecessary transient copy of the bitmap.
BUG=http://code.google.com/p/chromium/issues/detail?id=137884
TEST=DeferredCanvas unit test, sub test TestDeferredCanvasMemoryLimit
Review URL: https://codereview.appspot.com/6421060
git-svn-id: http://skia.googlecode.com/svn/trunk@4756 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-25 17:27:13 +00:00
robertphillips@google.com
4c2a2f7c5e
Added isIntersectionOfRects to SkClipStack
...
http://codereview.appspot.com/6434050/
git-svn-id: http://skia.googlecode.com/svn/trunk@4745 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-24 22:07:50 +00:00
scroggo@google.com
dd39488997
Avoid a loop in writeString and writePad by zeroing padding first.
...
Also add a benchmark to time the new improved writeString. Before
my change the bench took ~1.23ms and afterwards it takes ~.95ms.
Add some testing to ensure that writePad works properly.
TEST=Writer32Test, WriterBench
Review URL: https://codereview.appspot.com/6438045
git-svn-id: http://skia.googlecode.com/svn/trunk@4742 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-24 20:47:55 +00:00
robertphillips@google.com
607fe077c8
Added bound computation to SkClipStack
...
http://codereview.appspot.com/6419048/
This will require re-baselining of complexclip* and filltypespersp
git-svn-id: http://skia.googlecode.com/svn/trunk@4730 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-24 13:54:00 +00:00
reed@google.com
f79430350d
add protected method for internal_dispose overrides to jam fRefCnt before
...
calling destructor.
move SkTRefArray to actually inherit from SkRefCnt
Review URL: https://codereview.appspot.com/6422057
git-svn-id: http://skia.googlecode.com/svn/trunk@4719 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-23 14:50:38 +00:00
scroggo@google.com
e9617eb352
In SkWriter32::writeString, initialize all memory reserved.
...
SkFlatData compares data which is sometimes created by writeString.
Initialize all the memory in writeString so it does not compare
uninitialized memory.
See http://code.google.com/p/skia/issues/detail?id=721&thanks=721
Review URL: https://codereview.appspot.com/6428054
git-svn-id: http://skia.googlecode.com/svn/trunk@4715 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-23 13:44:10 +00:00
junov@chromium.org
bfeddae9da
Fix unbound memory consumption problem with run away deferred canvases.
...
With this CL, deferred canvases will trigger a flush when then the
memory allocated for recording commands (including flattened objects)
exceeds 64MB.
TEST=DeferredCanvas skia unit test, test step TestDeferredCanvasMemoryLimit
BUG=http://code.google.com/p/chromium/issues/detail?id=137884
Review URL: https://codereview.appspot.com/6425053
git-svn-id: http://skia.googlecode.com/svn/trunk@4714 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-23 13:35:14 +00:00
reed@google.com
a276975a62
check for memory leaks in debug-build
...
git-svn-id: http://skia.googlecode.com/svn/trunk@4712 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-22 22:33:05 +00:00
reed@google.com
80ba7964cd
add SkTRefArray, in hopes that it will enable more sharing between pictureplaybacks
...
in different threads.
git-svn-id: http://skia.googlecode.com/svn/trunk@4709 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-21 17:31:40 +00:00
robertphillips@google.com
80214e26c5
Made clarifying renamings to SkClipStack's iterators (and added to unit test)
...
http://codereview.appspot.com/6423051/
git-svn-id: http://skia.googlecode.com/svn/trunk@4692 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-20 15:33:18 +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
reed@google.com
d074c3709a
Need to apply matrix to advance in generateAdvance (as we already were in generateMetrics)
...
Fixes b/6833339
Expand existing unittest to detect this (we needed to set both scale and skew on the paint)
git-svn-id: http://skia.googlecode.com/svn/trunk@4647 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-18 13:45:58 +00:00
robertphillips@google.com
2e41becaa9
fix for non-Windows-specific compiler error in r4624
...
git-svn-id: http://skia.googlecode.com/svn/trunk@4625 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-16 17:19:21 +00:00
robertphillips@google.com
0a78b0f4a2
Refactor SkDeque's iterator and allocation method
...
http://codereview.appspot.com/6353098/
git-svn-id: http://skia.googlecode.com/svn/trunk@4624 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-16 16:58:49 +00:00
scroggo@google.com
50ccb0a738
Add a skia method to perform an atomic add.
...
Complements sk_atomic_inc for when you want to increase by more than one.
This time, use the correct atomic add function on Windows.
Reviewed at https://codereview.appspot.com/6399050/
Review URL: https://codereview.appspot.com/6407048
git-svn-id: http://skia.googlecode.com/svn/trunk@4623 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-16 16:51:28 +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
scroggo@google.com
96cbd2c4d2
Revert "Add a method to atomic add."
...
This reverts commit eb539cf92f487daf9567ffbbba6b6653406d43ae.
BUG=
TEST=
Review URL: https://codereview.appspot.com/6395051
git-svn-id: http://skia.googlecode.com/svn/trunk@4615 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-16 13:22:56 +00:00
scroggo@google.com
e3f84f3911
Add a skia method to perform an atomic add.
...
Complements sk_atomic_inc for when you want to increase by more than one.
Review URL: https://codereview.appspot.com/6350106
git-svn-id: http://skia.googlecode.com/svn/trunk@4614 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-16 13:13:29 +00:00
vandebo@chromium.org
238be8c7e5
[PDF] Add link annotations.
...
Review URL: https://codereview.appspot.com/6346100
git-svn-id: http://skia.googlecode.com/svn/trunk@4609 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-13 20:06:02 +00:00
keyar@chromium.org
b630c6c8b7
Updated make_filepath test to reflect changes in picture_utils. TBR
...
Review URL: https://codereview.appspot.com/6350105
git-svn-id: http://skia.googlecode.com/svn/trunk@4606 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-13 18:43:39 +00:00
borenet@google.com
0cb1e2bcae
Disable WritePixelsTest on Android
...
This fails on Xoom. Re-enable when #634 is fixed.
Review URL: https://codereview.appspot.com/6354099
git-svn-id: http://skia.googlecode.com/svn/trunk@4584 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-12 19:48:42 +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
b0a34d80c5
idea: add annotation to SkPaint
...
Review URL: https://codereview.appspot.com/6355050
git-svn-id: http://skia.googlecode.com/svn/trunk@4555 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-11 19:57:55 +00:00
reed@google.com
79382af267
remove debugging printfs
...
git-svn-id: http://skia.googlecode.com/svn/trunk@4551 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-11 18:55:23 +00:00
reed@google.com
91bd45967c
add SkDataSet class, so SkAnnotation can be more immutable-like
...
Review URL: https://codereview.appspot.com/6354091
git-svn-id: http://skia.googlecode.com/svn/trunk@4542 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-11 17:24:49 +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
bsalomon@google.com
4eefe6132c
Handle convex paths with degeneracies in cheap direction computation
...
Review URL: http://codereview.appspot.com/6349085/
git-svn-id: http://skia.googlecode.com/svn/trunk@4515 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-10 18:28:12 +00:00
robertphillips@google.com
59f46b81f8
Fixed Windows compiler complaints
...
http://codereview.appspot.com/6392044
git-svn-id: http://skia.googlecode.com/svn/trunk@4511 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-10 17:30:58 +00:00
keyar@chromium.org
c3d5831e05
Allow specific files and multiple inputs for picture testing tools.
...
Changed the render_pictures, bench_pictures and test_pictures.py so that multiple inputs can be given. Furthermore, specific files can also be specified.
Unit tests have also been added for picture_utils.cpp.
Committed http://code.google.com/p/skia/source/detail?r=4486
Review URL: https://codereview.appspot.com/6345054
git-svn-id: http://skia.googlecode.com/svn/trunk@4488 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-09 18:44:51 +00:00
mike@reedtribe.org
e60b9106ba
add test for SkChecksum
...
git-svn-id: http://skia.googlecode.com/svn/trunk@4462 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-09 01:53:07 +00:00
reed@google.com
a63a851afb
update test for new NewFromCString behavior
...
git-svn-id: http://skia.googlecode.com/svn/trunk@4431 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-02 20:29:00 +00:00
reed@google.com
dbc936dff3
add SkData::NewFromCString()
...
git-svn-id: http://skia.googlecode.com/svn/trunk@4383 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-28 15:40:09 +00:00
robertphillips@google.com
b74af872cc
Separated Inst counting from the SK_DEBUG #define (now SK_ENABLE_INST_COUNT)
...
http://codereview.appspot.com/6353047/
git-svn-id: http://skia.googlecode.com/svn/trunk@4376 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-27 19:41:42 +00:00
djsollen@google.com
edae1416ba
Fix metrics test to no longer include the cpp.
...
The inclusion of the cpp caused linker errors when building skia
components as shared libaries for inclusion in an Android app.
Review URL: https://codereview.appspot.com/6338063
git-svn-id: http://skia.googlecode.com/svn/trunk@4323 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-25 17:01:46 +00:00
bsalomon@google.com
4da34e36cb
Add GrMemoryPool as a helper to override operators new/delete
...
Review URL: http://codereview.appspot.com/6306090/
git-svn-id: http://skia.googlecode.com/svn/trunk@4282 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-19 15:40:27 +00:00
reed@google.com
b59ed51564
add test for http://code.google.com/p/chromium/issues/detail?id=131181
...
git-svn-id: http://skia.googlecode.com/svn/trunk@4266 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-15 18:26:04 +00:00
schenney@chromium.org
fedd09ba7e
Really fix the build.
...
git-svn-id: http://skia.googlecode.com/svn/trunk@4253 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-13 18:29:20 +00:00
schenney@chromium.org
aaf1688959
Speculative build fix. Tests do not fail locally.
...
git-svn-id: http://skia.googlecode.com/svn/trunk@4248 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-13 17:41:00 +00:00
schenney@chromium.org
7e963605d5
Fix the problem of rendering closePath not properly after a moveTo call in
...
canvas 2D interface. If there is a polyline, followed by a moveTo and a
closePath, both the moveTo and the closePath should be ignored for the purposes
of drawing, and the polyline should not be closed (unless force closed is true
(for filling, for instance).
Tested for path with both valid and degenerate content, when asked to
consume degenerates and not, force closed and not.
This patch also includes a uni test refactoring to reduce the amount of code
to test path iteration and zero length paths.
BUG=6297049
TEST=tests/PathTest.cpp, testIter method.
Review URL: https://codereview.appspot.com/6300086
git-svn-id: http://skia.googlecode.com/svn/trunk@4247 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-13 17:05:43 +00:00
reed@google.com
51c62a6cfa
add readPtr and writePtr to SkReader32 and SkWriter32
...
add template helper SkSWriter32, which allocates initial storage buffer
Review URL: https://codereview.appspot.com/6299075
git-svn-id: http://skia.googlecode.com/svn/trunk@4237 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-12 20:47:53 +00:00
reed@google.com
7886ad3de1
remove SK_CAN_USE_FLOAT (deprecated)
...
git-svn-id: http://skia.googlecode.com/svn/trunk@4232 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-11 21:21:26 +00:00
djsollen@google.com
94e75ee46a
Rename the existing flatten(void*) methods.
...
This change avoids naminc confusion with the SkFlattenable flatten methods and
also changes SkPath to use the void* model instead of taking a SkReader32.
Review URL: https://codereview.appspot.com/6299062
git-svn-id: http://skia.googlecode.com/svn/trunk@4215 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-08 18:30:46 +00:00
bsalomon@google.com
df9d656c35
Add SkPath::getVerbs/countVerbs
...
Review URL: http://codereview.appspot.com/6306053/
git-svn-id: http://skia.googlecode.com/svn/trunk@4209 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-07 21:43:15 +00:00