Commit Graph

1209 Commits

Author SHA1 Message Date
commit-bot@chromium.org
4d0f008895 rebaseline_server: fail fast if skpdiff binary is not available
NOTRY=True
R=rmistry@google.com

Author: epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13484 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-18 14:38:22 +00:00
commit-bot@chromium.org
dac522589e replace SkBitmap::Config with SkColorType in gms
add helper installMaskPixels() to SkBitmap

BUG=skia:
R=halcanary@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13482 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-17 21:21:46 +00:00
commit-bot@chromium.org
e5b2af955b Store SkRRects in SkClipStack
BUG=skia:2181
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13465 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-16 13:25:24 +00:00
robertphillips@google.com
7fac718702 Fix valgrind suppressions (again)
https://codereview.chromium.org/166193003/



git-svn-id: http://skia.googlecode.com/svn/trunk@13449 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-14 14:08:05 +00:00
skia.committer@gmail.com
02d6f54616 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13447 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-14 03:02:05 +00:00
commit-bot@chromium.org
35d4872f9a Gyp flag to disable inlining.
To turn off all inlining, rebuild after running the command

$ GYP_DEFINES=skia_disable_inlining=1 ./gyp_skia

Provides an initial value in one GM to avoid an uninitialized variable warning.

BUG=skia:2126
R=scroggo@google.com, mtklein@google.com, tomhudson@google.com

Author: tomhudson@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13437 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-13 18:36:36 +00:00
commit-bot@chromium.org
536b15ffb0 rebaseline_server: create ImagePairSet-- holds a number of ImagePairs to examine
See https://goto.google.com/ChangingRbsJson and bug 1919 for additional context

BUG=skia:1919
NOTRY=True
R=rmistry@google.com

Author: epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13434 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-13 17:17:05 +00:00
commit-bot@chromium.org
c3bd8af6d5 add peekPixels to SkCanvas and SkSurface
fix reference to SkBaseDevice, which was only a problem in no-gpu build

This reverts commit 4fa44a6bf73891b21917fb90d02beef9143bffa3.

R=reed@google.com

Author: reed@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13432 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-13 17:14:46 +00:00
commit-bot@chromium.org
bda591c739 Revert of add peekPixels to SkCanvas and SkSurface (https://codereview.chromium.org/161733002/)
Reason for revert:
compile issues with gm/xfermodes3

Original issue's description:
> add peekPixels to SkCanvas and SkSurface
>
> clone of https://codereview.chromium.org/159723006/
>
> Committed: https://code.google.com/p/skia/source/detail?r=13427

R=jvanverth@google.com
NOTREECHECKS=true
NOTRY=true

Author: reed@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13428 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-13 15:29:03 +00:00
mike@reedtribe.org
b2d93a9122 add peekPixels to SkCanvas and SkSurface
clone of https://codereview.chromium.org/159723006/

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13427 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-13 15:11:11 +00:00
commit-bot@chromium.org
44546f85d9 Add the perceptual difference metric to the rebaseline server
* Finds the location of the skpdiff binary.
* Calculates the perceptual difference percentage using the skpdiff binary (treats -1 as 0% perceptual similarity).
* Replaces the weightedDiffMeasure in view.html with perceptualDifferent.

BUG=skia:2019
NOTRY=true

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

R=epoger@google.com

Author: rmistry@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13410 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-11 18:21:26 +00:00
robertphillips@google.com
dd31ac470b Fix valgrind suppressions
https://codereview.chromium.org/158493004/



git-svn-id: http://skia.googlecode.com/svn/trunk@13403 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-11 15:23:21 +00:00
commit-bot@chromium.org
589bd3da34 Revert of Add the perceptual difference metric to the rebaseline server (https://codereview.chromium.org/147453003/)
Reason for revert:
Caused failure in RunGmSelfTests:
http://108.170.219.160:10117/builders/Housekeeper-PerCommit/builds/154/steps/RunGmSelfTests/logs/stdio

Filed:
https://code.google.com/p/skia/issues/detail?id=2160

Original issue's description:
> Add the perceptual difference metric to the rebaseline server
>
> * Finds the location of the skpdiff binary.
> * Calculates the perceptual difference percentage using the skpdiff binary.
> * Replaces the weightedDiffMeasure in view.html with perceptualDifferent.
>
> BUG=skia:2019
> NOTRY=true
>
> Committed: http://code.google.com/p/skia/source/detail?r=13398

R=epoger@google.com
TBR=epoger@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2019

Author: rmistry@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13399 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-11 13:30:33 +00:00
commit-bot@chromium.org
af34eb9b74 Add the perceptual difference metric to the rebaseline server
* Finds the location of the skpdiff binary.
* Calculates the perceptual difference percentage using the skpdiff binary.
* Replaces the weightedDiffMeasure in view.html with perceptualDifferent.

BUG=skia:2019
NOTRY=true
R=epoger@google.com

Author: rmistry@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13398 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-11 12:33:58 +00:00
commit-bot@chromium.org
9985ef5ed8 rebaseline_server: add ImagePair class, a step towards new intermediate JSON schema
See https://goto.google.com/ChangingRbsJson and bug 1919 for additional context

BUG=skia:1919
NOTRY=True
R=rmistry@google.com

Author: epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13385 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-10 18:19:30 +00:00
skia.committer@gmail.com
f0b0cda76f Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13376 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-09 03:02:01 +00:00
commit-bot@chromium.org
f053980016 Specialize GrConvexPolyEffect for AA rects, use for AA clip rects.
BUG=skia:2051
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13375 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-08 19:31:05 +00:00
commit-bot@chromium.org
b21fac156d Make GMs aware of what tool they're being run in.
Add a saveLayer set of draws to convex_poly_clip and fix GPU bug where polygon clips don't account for the translation between clip and device space.

BUG=skia:2051
R=robertphillips@google.com, reed@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13371 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-07 21:13:11 +00:00
commit-bot@chromium.org
e6af4fb34b rebaseline_server: properly handle unexpected GETs
BUG=skia:2147
NOTRY=True
R=rmistry@google.com

Author: epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13366 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-07 18:21:59 +00:00
commit-bot@chromium.org
5e0995e4b3 Revert of Revert "Serialization of SkPictureImageFilter" (https://codereview.chromium.org/153583007/)
Reason for revert:
New SKPs with version20 are in Google Storage due to http://108.170.219.160:10117/builders/Housekeeper-Nightly-RecreateSKPs/builds/22

Original issue's description:
> Revert "Serialization of SkPictureImageFilter"
>
> This reverts commit 227321b30106e57942929eb96fa5bc22544f6c9e.
>
> Revert "Sanitizing source files in Housekeeper-Nightly"
>
> This reverts commit baf28584b7636c01355f8d8d972e06aa7fb66d77.
>
> TBR=robertphillips@google.com,sugoi@google.com
>
> Committed: https://code.google.com/p/skia/source/detail?r=13356

R=robertphillips@google.com, sugoi@google.com, fmalita@google.com, fmalita@chromium.org
TBR=fmalita@chromium.org, fmalita@google.com, robertphillips@google.com, sugoi@google.com
NOTREECHECKS=true
NOTRY=true

Author: rmistry@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13357 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-07 12:20:04 +00:00
fmalita@google.com
7713c38dc0 Revert "Serialization of SkPictureImageFilter"
This reverts commit 227321b30106e57942929eb96fa5bc22544f6c9e.

Revert "Sanitizing source files in Housekeeper-Nightly"

This reverts commit baf28584b7636c01355f8d8d972e06aa7fb66d77.

TBR=robertphillips@google.com,sugoi@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13356 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-07 05:55:39 +00:00
skia.committer@gmail.com
c5acc6c827 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13355 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-07 03:02:05 +00:00
commit-bot@chromium.org
6f0ba479a8 rebaseline_server: add "show only"/"show all" buttons to some columns
BUG=skia:2143
NOTRY=True
R=bsalomon@google.com

Author: epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13349 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-06 20:22:25 +00:00
reed@google.com
d5808bd35a add inital gm for colorfilters
BUG=skia:
R=djsollen@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13346 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-06 16:53:25 +00:00
commit-bot@chromium.org
1c188ed9fa rebaseline_server: get "image size" working again
BUG=skia:2134
NOTRY=True
R=rmistry@google.com

Author: epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13343 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-06 15:17:28 +00:00
senorblanco@chromium.org
67117808ee Fix memory leak in imagefiltersclipped GM (found by valgrind).
TBR=robertphillips

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13334 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-06 00:36:01 +00:00
commit-bot@chromium.org
ae761f7545 Make SkImageFilter methods const.
SkImageFilter had some non-const methods that could all be made const.
This is a first step towards making SkImageFilter immutable.

BUG=skia:2097
R=mtklein@google.com, reed@google.com, robertphillips@google.com

Author: dominikg@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13330 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-05 22:32:02 +00:00
commit-bot@chromium.org
ceba079e3b rebaseline_server: add bgcolor slider for pixelDiff column
BUG=skia:1904
NOTRY=True
R=robertphillips@google.com, rmistry@google.com

Author: epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13325 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-05 19:49:17 +00:00
commit-bot@chromium.org
c69b0d0ee5 gm self-test: stop checking stdout and stderr
BUG=skia:1568
NOTRY=True
R=bsalomon@google.com

Author: epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13324 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-05 18:44:31 +00:00
senorblanco@chromium.org
c4b12f19a4 Implement correct clipping for image filters.
Image filters in Skia currently clip the size of the the offscreen
bitmap used for filtering to the device clip bounds. This means that
any pixel-moving filter (e.g., blur) has edge artifacts at the clip
boundaries. This is problematic for tiling, where a single SkPicture
is played back with a clip set to the tile boundaries.

By implementing the onFilterBounds() traversal, and using it in
saveLayer() when a filter is present, we can clip the layer to the
expanded clip rect. Note that this requires that the traversal be
performed in reverse as compared to computeFastBounds().  (It's also
done in device space, unlike computeFastBounds()).

New test imagefiltersclipped tests pixel-moving filters when clipped
by various clip rects.
New test imageblurtiled tests tiled (compositor-style) rendering of
blurred text. There should be no artifacts at the tile boundaries.

BUG=337831
R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13323 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-05 17:51:22 +00:00
reed@google.com
76f10a3bd9 remove SkCanvas::createCompatibleDevice, and add SkCanvas::newSurface
BUG=skia:
R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13319 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-05 15:32:21 +00:00
skia.committer@gmail.com
1dab403e44 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13316 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-05 03:01:48 +00:00
commit-bot@chromium.org
076f078a5e Add magnifier to rebaseline server.
NOTRY=true
BUG=skia:1917
R=epoger@google.com

Author: rmistry@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13315 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-04 22:45:40 +00:00
reed@google.com
11db6fa9b9 convert gm tool to use surfaces instead of devices
BUG=skia:
R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13301 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-04 15:30:57 +00:00
commit-bot@chromium.org
b511be5a9b Add rect clip to convex_poly_clip GM
BUG=skia:2051
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13300 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-04 15:09:16 +00:00
commit-bot@chromium.org
6adce6783c Allow GMs to be used as benchmarks. Make convex_poly_clip opt in.
R=reed@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13279 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-03 14:48:17 +00:00
commit-bot@chromium.org
a343c844ec Add GM with convex polygon clips
BUG=skia:2051
R=reed@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13262 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-31 14:48:58 +00:00
skia.committer@gmail.com
4c18e9fbb6 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13258 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-31 03:01:59 +00:00
commit-bot@chromium.org
8b0e8ac5f5 Refactor read and write buffers.
Eliminates SkFlattenable{Read,Write}Buffer, promoting SkOrdered{Read,Write}Buffer
a step each in the hierarchy.

What used to be this:

SkFlattenableWriteBuffer -> SkOrderedWriteBuffer
SkFlattenableReadBuffer  -> SkOrderedReadBuffer
SkFlattenableReadBuffer  -> SkValidatingReadBuffer

is now

SkWriteBuffer
SkReadBuffer -> SkValidatingReadBuffer

Benefits:
  - code is simpler, names are less wordy
  - the generic SkFlattenableFooBuffer code in SkPaint was incorrect; removed
  - write buffers are completely devirtualized, important for record speed

This refactoring was mostly mechanical.  You aren't going to find anything
interesting in files with less than 10 lines changed.

BUG=skia:
R=reed@google.com, scroggo@google.com, djsollen@google.com, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13245 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-30 18:58:24 +00:00
robertphillips@google.com
5fbccb35eb Suppress new valgrind complaint
https://codereview.chromium.org/144853006/



git-svn-id: http://skia.googlecode.com/svn/trunk@13244 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-30 18:51:29 +00:00
commit-bot@chromium.org
c3fe54975d Add convex polygon rendering effect and GM to test it.
BUG=skia:2051
R=robertphillips@google.com, jvanverth@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13242 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-30 18:15:51 +00:00
reed@google.com
7fa2a65c0c fix more 64bit warnings
BUG=skia:

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13190 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-27 13:42:58 +00:00
commit-bot@chromium.org
440ddf433b Add NVPR configs to GM
BUG=skia:2042
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13187 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-26 18:07:40 +00:00
reed@google.com
eb9a46cbbb add legacy/helper allocN32Pixels, and convert gm to use it
This is an intermediate api, but might help us quickly get to a point where
no one is creating bitmaps in a 2-step process (setConfig + alloc).

BUG=skia:
R=halcanary@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13182 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-25 16:46:20 +00:00
commit-bot@chromium.org
d1630e8fc0 new tool: download all GM images for a given builder, ready for skdiff
BUG=skia:1919
R=rmistry@google.com, bsalomon@google.com

Author: epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13172 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-24 18:34:11 +00:00
commit-bot@chromium.org
dd10e0ec4c make GM self-test run gm/rebaseline_server unittests
R=borenet@google.com

Author: epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13170 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-24 18:28:35 +00:00
commit-bot@chromium.org
6dda827913 add leaks flag to show unref'd insts
Leaks are shown optionally instead of always for tests, gm, and bench.
The current display does not show actual leaks necessarily, but
shows global objects that were not deleted when the test ended.
To enable the end-of-run leak display, pass --leaks or -l.

BUG=skia:
R=mtklein@google.com

Author: caryclark@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13151 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-23 17:21:19 +00:00
commit-bot@chromium.org
7873333236 Remove GetGr() hack.
It seems no GM are using this.

BUG=None
TEST=SampleApp
R=bsalomon@google.com, caryclark@google.com

Author: tfarina@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13141 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-22 14:43:47 +00:00
senorblanco@chromium.org
2bfe36b68d Apply the CTM to filter parameters for SkBlurImageFilter, SkDropShadowImageFilter, SkDisplacementMapEffect and SkMorphologyImageFilter. I had resisted this (and may later put in an assert that the CTM contains no rotation, skew or perspective), but it just makes the filters play better with Skia generally.
This revealed that the displacement map was not handling clipping or upstream cropping at all well (the color would "swim" through the displacement at the edge of the clip rect). Fixed by passing through the correct offsets to the bitmap accesses in both raster and GPU paths. Same for morphology.

R=sugoi@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13127 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-20 19:58:28 +00:00
commit-bot@chromium.org
2ab1ba0555 Make leak counters thread-safe and turn them on by default for Debug
Make leak counters implemented with SK_DECLARE_INST_COUNT thread-safe.
Enable the leak counting for Debug builds when Skia is built as a
static library. Having SK_DECLARE_INST_COUNT without
SK_DEFINE_INST_COUNT relies on static variables in member functions
declared in the header files. These might be duplicated in the clients
of the library when Skia is built as a dynamic library, producing
incorrect operation.

Protect the instance counter initialization step (initStep) by
using SkOnce.

Makes SkOnce.h part of the public API, since SkInstCnt is public.

Protect the per-class child list shared variable with a per-class mutex.

Changes the behavior in the way that if the child list has been
"cleaned up", it will still try to create subsequent child lists.

BUG=skia:1219
R=robertphillips@google.com, mtklein@google.com, bsalomon@google.com, bungeman@google.com, djsollen@google.com

Author: kkinnunen@nvidia.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13120 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-17 17:55:02 +00:00