Commit Graph

1229 Commits

Author SHA1 Message Date
skia.committer@gmail.com
6e515d67d2 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@12477 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-04 07:02:26 +00:00
mtklein@google.com
cb08f98693 Fix 32/64 bit warnings on g++-4.2.
BUG=

Review URL: https://codereview.chromium.org/98343006

git-svn-id: http://skia.googlecode.com/svn/trunk@12470 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-03 19:27:41 +00:00
commit-bot@chromium.org
55ca8244cc Refactor FourByteInterps. Add 64-bit Fast version. Add tests.
Effect on benches (only _fast_ should be affected, and only on 64-bit):

Desktop (64-bit)
four_byte_interp_slow_255 NONRENDERING c          7.80       7.84      -0.04    -0.5%
four_byte_interp_slow_256 NONRENDERING c          7.38       7.36      +0.02    +0.3%
four_byte_interp_fast_256 NONRENDERING c          4.86       4.38      +0.48    +9.9%
four_byte_interp_fast_255 NONRENDERING c          5.80       5.16      +0.64   +11.0%

N5 (32-bit)
four_byte_interp_slow_256 NONRENDERING c         22.22      22.66      -0.44    -2.0%
four_byte_interp_fast_255 NONRENDERING c         22.22      22.22      +0.00    +0.0%
four_byte_interp_fast_256 NONRENDERING c         18.81      18.81      +0.00    +0.0%
four_byte_interp_slow_255 NONRENDERING c         22.42      22.42      +0.00    +0.0%

BUG=
R=reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/100923003

git-svn-id: http://skia.googlecode.com/svn/trunk@12468 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-03 18:53:30 +00:00
robertphillips@google.com
b06e88dc65 Fix for SkPathRef::CreateTransformedCopy bug
https://codereview.chromium.org/99423004/



git-svn-id: http://skia.googlecode.com/svn/trunk@12464 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-03 17:15:36 +00:00
robertphillips@google.com
466310dbd3 Move fIsOval from SkPath to SkPathRef
https://codereview.chromium.org/89123002/



git-svn-id: http://skia.googlecode.com/svn/trunk@12463 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-03 16:43:54 +00:00
robertphillips@google.com
ca316f576e Revert of r12450 (Move fIsOval from SkPath to SkPathRef)
git-svn-id: http://skia.googlecode.com/svn/trunk@12452 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-03 00:23:39 +00:00
robertphillips@google.com
31f0ffc9c3 Move fIsOval from SkPath to SkPathRef
https://codereview.chromium.org/89123002/



git-svn-id: http://skia.googlecode.com/svn/trunk@12450 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-02 23:55:11 +00:00
rmistry@google.com
d6bab02386 Reverting r12427
git-svn-id: http://skia.googlecode.com/svn/trunk@12428 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-02 13:50:38 +00:00
skia.committer@gmail.com
5b39f5ba9c Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@12427 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-02 13:36:22 +00:00
commit-bot@chromium.org
742058f0ca Speed up GrResourceCache lookup by inlining GrBinHashKey comparisons
The GCC compilers for Android and Ubuntu do not seem to be able to
inline the memcmp operations on GrBinHashKey data. Write the comparisons
manually. Also shortcut GrBinHashKey::EQ to skip comparison when hashes
do not match.

Speeds up grresourcecache_find test on ARM and x86_64. Speeds up
grresourcecache_add on x86_64.

In order to test the change, moves ad hoc Gr unit tests from
src/gr_unittest.cpp to tests/GrUnitTests to be consistent with other
tests and enables GrUnitTests.

Fixes a regression from r2863 with where re-setting GrBinHashKey data
would not set the hash correctly. This should also improve the hash
function itself. The regression caused many of the hash operations be
no-ops. This is caught by the unit test.

Renames the comparison functions that GrHashTable needs from EQ, LT to
Equals, LessThan.

Renames GrTBinHashKey to GrBinHashKey. The GrTBinHashKey used to
forward comparison functions to an ENTRY template class, which would
extract the key and call back to the GrTBinHashKey. This would save
the user from writing one comparison function when comparison was done
with int ENTRY::compare(). There's no real benefit in this now. Also
this was used only for one class (GrTextureStripAtlas). The other use
in GrResourceKey was not actually using the provided "shortcut". The
new GrBinHashKey is not templated with the entry, rather just provides
== and < functions. The users of GrTHashTable provide the needed
functions now.

Adds explicit documentation of functions that are actually needed
GrTHashTable for the Key template. Adds SK_DEBUG guards according to
the contract.

R=bsalomon@google.com, mtklein@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/88113002

git-svn-id: http://skia.googlecode.com/svn/trunk@12426 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-28 08:24:29 +00:00
commit-bot@chromium.org
23d2cf9b07 Trying to add the same scaled image twice shouldn't assert.
This unbreaks bench_pictures --multi foo for me.

BUG=skia:1868
R=reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/89293002

git-svn-id: http://skia.googlecode.com/svn/trunk@12422 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-27 20:22:23 +00:00
bungeman@google.com
a9a4b04a98 Fix Valgrind reports of test branching on uninitialized data.
Fixes reports like:
[07:10:01.235147] [ 71/188] (9) Serialization
[07:10:01.235186] ==20052== Thread 3:
[07:10:01.235223] ==20052== Conditional jump or move depends on uninitialised value(s)
[07:10:01.235259] ==20052==    at 0x546632: SkRRect::setRectRadii(SkRect const&, SkPoint const*) (SkRect.h:426)
[07:10:01.735876] ==20052==    by 0x546FB7: SkRRect::readFromMemory(void const*, unsigned long) (SkRRect.cpp:362)
[07:10:01.735965] ==20052==    by 0x47F87F: Tests(skiatest::Reporter*) (SerializationTest.cpp:20)
[07:10:01.736007] ==20052==    by 0x480367: skiatest::SerializationClass::onRun(skiatest::Reporter*) (SerializationTest.cpp:212)
[07:10:01.736048] ==20052==    by 0x4881DA: skiatest::Test::run() (Test.cpp:109)
[07:10:01.736086] ==20052==    by 0x482516: SkTestRunnable::run() (skia_test.cpp:155)
[07:10:01.736122] ==20052==    by 0x6236E5: SkThreadPool::Loop(void*) (SkThreadPool.cpp:97)
[07:10:01.736158] ==20052==    by 0x62DDB2: thread_start(void*) (SkThreadUtils_pthread.cpp:66)
[07:10:01.736192] ==20052==    by 0x4E39E99: start_thread (pthread_create.c:308)
[07:10:01.736228] ==20052==    by 0x6A5BCCC: clone (clone.S:112)
[07:10:01.736262] ==20052==  Uninitialised value was created by a stack allocation
[07:10:01.736296] ==20052==    at 0x47EC6A: Tests(skiatest::Reporter*) (SerializationTest.cpp:155)



git-svn-id: http://skia.googlecode.com/svn/trunk@12419 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-27 17:00:12 +00:00
mtklein@google.com
ca5bb87a31 DM: write failed comparison mode .pngs one more level deep in the tree.
E.g.  instead of having to compare
    /tmp/dm/565/optimizations.png
vs.
    /tmp/dm/replay/optimizations_565.png

it's now

    /tmp/dm/565/optimizations.png
vs.
    /tmp/dm/replay/565/optimizations.png

This lets working with skdiff go a lot more smoothly.

BUG=
R=bsalomon@google.com

Review URL: https://codereview.chromium.org/88773002

git-svn-id: http://skia.googlecode.com/svn/trunk@12402 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-26 22:06:12 +00:00
commit-bot@chromium.org
11f392ed53 Revert "Revert "remove kA1_Config, as it is no longer supported""
This reverts commit 36d712f2d4c5c79719280ad95523e6aaa88b068e.

BUG=
R=rmistry@google.com, mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/86483002

git-svn-id: http://skia.googlecode.com/svn/trunk@12392 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-26 12:51:57 +00:00
skia.committer@gmail.com
ec18ce7df6 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@12389 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-26 07:02:21 +00:00
reed@google.com
72e7808d62 Revert "remove kA1_Config, as it is no longer supported"
This reverts commit 2d72d8b242eac6e9d30228f5b0a407236491c369.

git-svn-id: http://skia.googlecode.com/svn/trunk@12387 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-25 20:54:56 +00:00
commit-bot@chromium.org
4b413c8bb1 remove SkFloatToScalar macro
BUG=
R=reed@google.com, djsollen@google.com

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/85463005

git-svn-id: http://skia.googlecode.com/svn/trunk@12385 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-25 19:44:07 +00:00
reed@google.com
2a1f4464d1 remove kA1_Config, as it is no longer supported
BUG=
R=djsollen@google.com

Review URL: https://codereview.chromium.org/83093005

git-svn-id: http://skia.googlecode.com/svn/trunk@12384 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-25 18:58:29 +00:00
caryclark@google.com
02352d14d4 remove more unused static functions
git-svn-id: http://skia.googlecode.com/svn/trunk@12379 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-25 15:05:05 +00:00
caryclark@google.com
111417aae9 remove unused static function
git-svn-id: http://skia.googlecode.com/svn/trunk@12378 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-25 14:36:58 +00:00
caryclark@google.com
927b7028d4 remove unused reduce order code
BUG=

Review URL: https://codereview.chromium.org/85763002

git-svn-id: http://skia.googlecode.com/svn/trunk@12377 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-25 14:18:21 +00:00
caryclark@google.com
28d219c568 fix pathops quad line intersection
git-svn-id: http://skia.googlecode.com/svn/trunk@12374 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-25 13:39:12 +00:00
mtklein@google.com
6e223af090 I feel like my clang is especially sensitive to unused variables.
BUG=

Review URL: https://codereview.chromium.org/82913006

git-svn-id: http://skia.googlecode.com/svn/trunk@12369 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-22 20:43:54 +00:00
commit-bot@chromium.org
866f4e34a9 optimize pathops coverage
Remove unused code from SkOpSegment.cpp and friends.
Add new tests exposed by coverage.
Fix a bug exposed by coverage -- removing the need to detect points that are nearby when intersecting.
Add gyp rule for building coverage flavor on Mac.

R=mtklein@google.com

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/75453003

git-svn-id: http://skia.googlecode.com/svn/trunk@12344 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-21 17:04:29 +00:00
halcanary@google.com
ad04eb49f5 Add SkImageGenerator Interface
-   Add SkDiscardablePixelRef class that uses SkDiscardableMemory and
    a SkImageGenerator.

-   Add SkDecodingImageGenerator class as an example of a
    SkImageGenerator.

-   Add DecodingImageGenerator unit test.

-   Add SkBasicDiscardableMemory implmentation for unit tests only.

R=reed@google.com, scroggo@google.com

Review URL: https://codereview.chromium.org/74793011

git-svn-id: http://skia.googlecode.com/svn/trunk@12341 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-21 15:32:08 +00:00
commit-bot@chromium.org
8b656c6db4 Avoid printing draw target info to stderr while running unit tests
Change draw target dump function to return a SkString. Clients can do
whatever they want with the string.

BUG=skia:1837
R=caryclark@google.com, bsalomon@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/72353003

git-svn-id: http://skia.googlecode.com/svn/trunk@12340 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-21 15:23:15 +00:00
scroggo@google.com
7d8013f306 Changes to SkTDStackNester.
SkTDStackNester is a class used by PdfViewer to assist in saving
and restoring the PDF state. Clean up and test this class.

Add some documentation.

Add FIXME's where I have questions to resolve.

Fix a bug where fNestingLevel was not initialized.

Remove a commented out line of code copied over from
SkTDStack.

Rename SkTDStackNester::nests() to nestingLevel() and make it const.

Remove unnecessary predeclaration and friend declaration.

Remove index() (both const and non-const versions). They were
unused, return something that may not be expected (index from
the top, rather than from the bottom), and don't work to get any
elements in earlier Recs once the first one is full.

Report a warning if the nesting level goes above the maximum level,
or if we attempt to bring it below zero.

Prevent fNestingLevel from dropping below zero.

Add kUnusedObject_SkPdfIssue, and use it where appropriate.

Depends on https://codereview.chromium.org/64093009/

R=mtklein@google.com

Review URL: https://codereview.chromium.org/68843006

git-svn-id: http://skia.googlecode.com/svn/trunk@12328 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-20 21:40:57 +00:00
commit-bot@chromium.org
3495c9118d GpuTest::GetContext() doesn't exist.
BUG=
R=bsalomon@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/76143003

git-svn-id: http://skia.googlecode.com/svn/trunk@12320 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-20 17:59:54 +00:00
robertphillips@google.com
701b40543d Fix DocumentTest/SkDocument memory leaks
https://codereview.chromium.org/72833002/



git-svn-id: http://skia.googlecode.com/svn/trunk@12302 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-18 16:26:25 +00:00
commit-bot@chromium.org
a1a097ee81 increase coverage of SkPath.cpp, remove unused code
Using Mike Klein's excellent coverage tool, increase the
unit testing of SkPath.cpp from 70% to 95%.

Along the way, determined that these functions were not
maintained or used:

SkPath::pathTo
SkPath::contains

as well as a large block of SkPath::cheapGetDirection().

Changed SkPath::validate() to permit infinities in
the path data points.

Fixed errors in preserving direction.
Fixed error setting direction when convexity is unknown.

Added missing conic to moveTo only detector.

BUG=
R=bsalomon@google.com, reed@google.com

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/65493004

git-svn-id: http://skia.googlecode.com/svn/trunk@12291 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-14 16:53:22 +00:00
robertphillips@google.com
cb3b615af7 Address some more valgrind issues
R=borenet@google.com

Review URL: https://codereview.chromium.org/59713010

git-svn-id: http://skia.googlecode.com/svn/trunk@12286 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-14 14:47:56 +00:00
robertphillips@google.com
e293005bd4 "Fix" another crash in DeferredCanvasTest on valgrind bot
https://codereview.chromium.org/71463003/



git-svn-id: http://skia.googlecode.com/svn/trunk@12265 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-13 14:26:52 +00:00
scroggo@google.com
09a5383adc Hide implementation details: SkFrontBufferedStream
R=reed@google.com

Review URL: https://codereview.chromium.org/25581002

git-svn-id: http://skia.googlecode.com/svn/trunk@12256 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-12 20:53:05 +00:00
robertphillips@google.com
5fa42d1621 "Fix" another crash on valgrind bot
https://codereview.chromium.org/70463002/



git-svn-id: http://skia.googlecode.com/svn/trunk@12248 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-12 17:33:02 +00:00
robertphillips@google.com
d6bea606c6 Silence another valgrind leak
https://codereview.chromium.org/68523006/



git-svn-id: http://skia.googlecode.com/svn/trunk@12236 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-12 14:05:15 +00:00
robertphillips@google.com
3bddb38e64 Fix crash in tests on valgrind bot
https://codereview.chromium.org/63543005/



git-svn-id: http://skia.googlecode.com/svn/trunk@12234 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-12 13:51:03 +00:00
robertphillips@google.com
6acc8f473d Add another FontConfig suppression to valgrind suppressions
https://codereview.chromium.org/69403002/



git-svn-id: http://skia.googlecode.com/svn/trunk@12226 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-11 20:04:28 +00:00
skia.committer@gmail.com
ed000840d4 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@12208 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-09 07:02:23 +00:00
commit-bot@chromium.org
11e5b972a9 Add sk_float_rsqrt with SSE + NEON fast paths.
Current numbers:

N4:
running bench [640 480]      math_fastIsqrt    NONRENDERING: cmsecs =      3.12
running bench [640 480]      math_slowIsqrt    NONRENDERING: cmsecs =      4.82
running bench [640 480] math_sk_float_rsqrt    NONRENDERING: cmsecs =      1.99

Desktop:
running bench [640 480]      math_fastIsqrt    NONRENDERING: cmsecs =      0.89
running bench [640 480]      math_slowIsqrt    NONRENDERING: cmsecs =      0.94
running bench [640 480] math_sk_float_rsqrt    NONRENDERING: cmsecs =      0.09

Haven't found any other benches where this is a significant effect yet.

BUG=
R=reed@google.com

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/60083014

git-svn-id: http://skia.googlecode.com/svn/trunk@12203 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-08 20:14:16 +00:00
commit-bot@chromium.org
8f457e3230 Adding error checks to SkRBuffer
BUG=
R=robertphillips@google.com, bsalomon@google.com, reed@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/61913002

git-svn-id: http://skia.googlecode.com/svn/trunk@12202 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-08 19:22:57 +00:00
commit-bot@chromium.org
9901727f21 Fix stale assert in GrDrawTarget::print
Fix stale assert in GrDrawTarget::print.

R=bsalomon@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/66333002

git-svn-id: http://skia.googlecode.com/svn/trunk@12201 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-08 18:45:27 +00:00
caryclark@google.com
c4a4f9db6b fix compile error
git-svn-id: http://skia.googlecode.com/svn/trunk@12200 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-08 18:11:08 +00:00
caryclark@google.com
1510726d60 fix line intersection
git-svn-id: http://skia.googlecode.com/svn/trunk@12197 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-08 18:00:01 +00:00
commit-bot@chromium.org
42feaaf0a5 use quads for mixed radius rrects
Create a specialized version of adding a pair of corner quads
that avoids the overhead of the full arc machinery.

This is on the way to changing Chrome to calling Skia directly to create fully general round rects rather than rolling their own.

R=robertphillips@google.com, reed@google.com

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/60203002

git-svn-id: http://skia.googlecode.com/svn/trunk@12190 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-08 15:51:12 +00:00
halcanary@google.com
1f0121af49 New SkRTConf macro SK_CONF_TRY_SET: no complaint on missing configuration
SK_CONF_TRY_SET() is like SK_CONF_SET(), but doesn't complain if
confname can't be found.  This is useful if the SK_CONF_DECLARE is
inside a source file whose linkage is dependent on the system.

Internally to the SkRTConf system, SkRTConfRegistry::set() was given
an additional parameter controling wanrings.

A new RuntimeConfig unit test was introduced.  It should run silently.
In the future, it should be expanded to cover all of the SkRTConf
functionality.

(For example, the images.jpeg.suppressDecoderWarnings variable is
defined and used only in SkImageDecoder_libjpeg.cpp, but on MacOS, we
use Core Graphics via SkImageDecoder_CG.cpp - SkImageDecoder_libjpeg
is never linked in.  The same is true of the Windows Imaging Component
on Windows.)

BUG=
R=reed@google.com

Review URL: https://codereview.chromium.org/54503007

git-svn-id: http://skia.googlecode.com/svn/trunk@12155 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-06 15:07:44 +00:00
commit-bot@chromium.org
6e3e42296b Break up SkLazyPixelRef functionally into class hierarchy.
The reason for this CL is to allow greater decoder flexibility.
Chrome currently uses its own decoding functions.  These allow for
greater flexibility in dealing with images with multiple frames or
partial data.  The DecodeProc function was not flexible enough to
handle these.  Instead of asking the decoder to squeeze everything
into the DecodeProc, we now ask the downstream library to inherit from
SkCachingPixelRef.  If WebKit's LazyDecodingPixelRef is re-tooled to
inherit from SkCachingPixelRef, then it can make use of Skia's caching
ability while still allowing it to deal with multiple frames, scaling,
subsetting, and partial data.

-   The abstract SkCachingPixelRef class handles caching the decoded
    data in a SkScaledImageCache.  This class relies on the virtual
    functions onDecodeInfo() and onDecode() to do the actual decoding
    of data.

-   The SkLazyCachingPixelRef class is derived from SkCachingPixelRef.
    It provides an implementation of onDecodeInfo() and onDecode() in
    terms of calls to a SkBitmapFactory::DecodeProc function.  It also
    provides an Install() static method which installs a new
    SkLazyCachingPixelRef into a SkBitmap.

SkLazyCachingPixelRef exists for two reasons: to test
SkCachingPixelRef within Skia and as an example for downstream
developers to make their own classes that inherit from
SkCachingPixelRef.

-   The CachedDecodingPixelRefTest was updated to test the
    SkLazyCachingPixelRef class and indirectly the SkCachingPixelRef
    class.

BUG=
R=reed@google.com, scroggo@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/54203006

git-svn-id: http://skia.googlecode.com/svn/trunk@12149 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-06 10:08:30 +00:00
scroggo@google.com
20e3cd2c9f Add SkRRect::transform.
Much like SkPath::transform, it transforms an SkRRect based on an
SkMatrix. Unlike SkPath::transform, it will fail for matrices that
contain perspective or skewing.

Required by a future change (https://codereview.chromium.org/48623006)
to speed up drawing large blurry rounded rectangles by using ninepatches.

TODO: This could easily support 90 degree rotations, if desired.

BUG=https://b.corp.google.com/issue?id=11174385
R=reed@google.com, robertphillips@google.com

Review URL: https://codereview.chromium.org/52703003

git-svn-id: http://skia.googlecode.com/svn/trunk@12132 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-05 15:54:42 +00:00
commit-bot@chromium.org
4faa869cda Checking structure sizes before reading them from memory to avoid overflowing the buffer's stream.
BUG=
R=reed@google.com, mtklein@google.com, senorblanco@chromium.org

Committed: https://code.google.com/p/skia/source/detail?r=12114

Committed: https://code.google.com/p/skia/source/detail?r=12119

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/41253002

git-svn-id: http://skia.googlecode.com/svn/trunk@12130 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-05 15:46:56 +00:00
commit-bot@chromium.org
d3e5842db0 Avoid re-rendering stencil clip for every draw with reducable clip stack
Fixes the cases where clip stack reduction would cause clip to be
re-rendered to stencil for each draw call. This causes unneeded
slowdown.

Stencil cache would not be used because the clip stack generation id communicated
by the clip stack element list would be invalid. This happended due to

 a) clip stack reduction creating new elements in the element list.

 b) purging logic removing the generation id, but reduction logic
    selecting already purged element, and thus the generation id, as
    the representative state of the clip.

Cases of a) where reduction would flatten the stack to a single new
element were fixed by assigning the generation id of the top-most
element of the clip stack as the generation id of the new
element. This is not strictly minimal, but enables more caching than
using invalid id.

Cases of a) where reduction would substitute a stack element with a
new element the generation id of the substituted element is used.

The b) part was fixed by removing the purging logic. It was not
exactly correct, as the previously purged states were actually
used. The purging was not used for anything.

Changes SkClipStack API to highlight that invalid generation id is
never returned by SkClipStack. Empty stacks are wide open. Changes the
clients to reflect this.

Fixes a crash when not passing anti-alias out parameter to
GrReducedClip::ReduceClipStack. The crash is not exercised in the
current code.

Committed: http://code.google.com/p/skia/source/detail?r=12084

R=bsalomon@google.com, robertphillips@google.com

Author: kkinnunen@nvidia.com

Review URL: https://codereview.chromium.org/48593003

git-svn-id: http://skia.googlecode.com/svn/trunk@12127 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-05 15:03:08 +00:00
reed@google.com
12a23866fe Revert "Checking structure sizes before reading them from memory to avoid overflowing the buffer's stream."
This reverts commit 6bc22e8ef1ea70a1b58409aa21254358c50f149a.

git-svn-id: http://skia.googlecode.com/svn/trunk@12124 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-04 21:35:55 +00:00