Commit Graph

1884 Commits

Author SHA1 Message Date
reed
2347b62467 change drawPicture in SkRecord to just ref the picture
also fix some int/unsigned/size_t warnings

BUG=skia:
R=mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/449933002
2014-08-07 12:19:50 -07:00
reed
202ab2a5ca add isRect() check to AAClip, to detect if a soft-clip is really just an irect
taken from (https://codereview.chromium.org/445233006/)

fix: don't assume that the first yoffset is 0, since we may have performed a translate and not
re-alloced our data.

This reverts commit 0aeea6d344.

TBR=

Author: reed@google.com

Review URL: https://codereview.chromium.org/443353004
2014-08-07 11:48:10 -07:00
krajcevski
7b62448065 Revert of - Add astcbitmap to gm slides (https://codereview.chromium.org/444093002/)
Reason for revert:
Breaking DM

Original issue's description:
> - Add astcbitmap to gm slides
> - Add additional ASTC formats
> - Add astc image decoder files
>
> Committed: https://skia.googlesource.com/skia/+/2fc05823fed4b9649338f3029cd1ba05ef49a02f

R=reed@google.com, robertphillips@google.com, halcanary@google.com
TBR=halcanary@google.com, reed@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/447343002
2014-08-07 11:33:59 -07:00
reed
0aeea6d344 Revert of add isRect() check to AAClip, to detect if a soft-clip is really just an irect (https://codereview.chromium.org/445233006/)
Reason for revert:
new code asserts on some pictures

Original issue's description:
> add isRect() check to AAClip, to detect if a soft-clip is really just an irect
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/592cb8d552556b1e922887d506d00b64bc5d0547

R=bsalomon@google.com, humper@google.com
TBR=bsalomon@google.com, humper@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@google.com

Review URL: https://codereview.chromium.org/452533002
2014-08-07 11:19:11 -07:00
krajcevski
2fc05823fe - Add astcbitmap to gm slides
- Add additional ASTC formats
- Add astc image decoder files

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

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/444093002
2014-08-07 11:18:09 -07:00
tomhudson
8aed3c151f Don't fail unit test if resources not found on device.
Not 100% sure about the right thing to do here; looks like some other
tests warn but don't officially fail.

R=djsollen@google.com, tomhudson@google.com

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/451703004
2014-08-07 10:20:51 -07:00
reed
592cb8d552 add isRect() check to AAClip, to detect if a soft-clip is really just an irect
BUG=skia:
R=bsalomon@google.com, humper@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/445233006
2014-08-07 09:20:12 -07:00
Derek Sollenberger
da7a944e29 Revert "Remove SkPaintOptionsAndroid"
This reverts commit 27fb94999b.

Review URL: https://codereview.chromium.org/450513002
2014-08-06 16:34:40 -04:00
Derek Sollenberger
27fb94999b Remove SkPaintOptionsAndroid
Review URL: https://codereview.chromium.org/447873003
2014-08-06 16:30:51 -04:00
fmalita
b5f7826c51 Explicit tile bounds for SkPictureShader
The integer picture size is not granular enough to allow precise tiling
in arbitrary coordinate systems. This CL adds an optional tile bounds
float rect param to control the tile size and location.

(this also allows tile spacing emulation for picture
shaders).

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

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/437393003
2014-08-06 13:07:15 -07:00
djsollen
1b27704eba Remove ALL font fallback logic from Skia.
R=reed@google.com, bungeman@google.com, caryclark@google.com

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/434623002
2014-08-06 06:58:06 -07:00
tomhudson
07544757c9 Parses sample code provided by Android project. Attempts to keep FontFamily data structures produced consistent with expectations of previous versions of Skia.
R=bungeman@google.com, djsollen@google.com, tomhudson@google.com

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/446473003
2014-08-05 13:35:02 -07:00
krajcevski
e90c900ed7 Add ETC1 format to SkTextureCompressor
R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/432143002
2014-08-05 07:37:27 -07:00
tomhudson
f79673bbae Test and generalize font configuration parser
Add a basic unit test for the Android font configuration parser.
Add a check for the new LMP file format; on detection, switch to a new
(as-yet unwritten) parser.

R=bungeman@google.com, djsollen@google.com, tomhudson@google.com

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/439813002
2014-08-05 06:36:14 -07:00
krajcevski
50495571df Revert of Add ETC1 format to SkTextureCompressor (https://codereview.chromium.org/432143002/)
Reason for revert:
Breaking Chrome.

Original issue's description:
> Add ETC1 format to SkTextureCompressor
>
> Committed: https://skia.googlesource.com/skia/+/5d8b1b44ea7636fc8e98247cb311568f277ce3a5

R=robertphillips@google.com
TBR=robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/438443004
2014-08-04 09:47:32 -07:00
krajcevski
5d8b1b44ea Add ETC1 format to SkTextureCompressor
R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/432143002
2014-08-04 09:08:29 -07:00
halcanary
a0cc8334da add a libjpeg test
This tests for a bug in libjpeg where INT32 is typedefed to long
and memory is written to outside of the array.

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

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/435753002
2014-08-01 10:31:48 -07:00
krajcevski
4ad76e3511 Add initial pipeline for decompressors
Committed: https://skia.googlesource.com/skia/+/14a1df0bcd00734e6efbe4a21629fe95118815ef

R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/432503002
2014-07-31 14:12:51 -07:00
robertphillips
0c42332859 Add CTM to the cached layers' key and reduce render target pingponging in layer pre-rendering
The CTM is required on the key so we will re-render when necessary.
The SkGpuDevice change ensures big layers in the midst of atlas-able layers don't cause a render target switch.

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/433553002
2014-07-31 11:02:38 -07:00
mtklein
1b51d261ec Revert of Add initial pipeline for decompressors (https://codereview.chromium.org/432503002/)
Reason for revert:
New test is crashing on Android.

http://108.170.220.21:10117/builders/Test-Android-Nexus10-MaliT604-Arm7-Debug/builds/2509/steps/RunTests/logs/stdio

http://108.170.220.21:10117/builders/Test-Android-Nexus4-Adreno320-Arm7-Debug/builds/2313/steps/RunTests/logs/stdio

Original issue's description:
> Add initial pipeline for decompressors
>
> Committed: https://skia.googlesource.com/skia/+/14a1df0bcd00734e6efbe4a21629fe95118815ef

R=robertphillips@google.com, krajcevski@google.com
TBR=krajcevski@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/425223006
2014-07-31 09:34:21 -07:00
krajcevski
14a1df0bcd Add initial pipeline for decompressors
R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/432503002
2014-07-31 08:42:06 -07:00
dneto
3f22e8c44a Fix end-of-pattern matching for Skia recording optimization.
The recorder optimizer's pattern matcher was accepting command sequences
when it shouldn't have.

In the submitted case, and the pattern matcher was looking for:
	saveLayer, drawBitmap, restore
and in the rendering for the submitted case, the sequence of commands
were:
	saveLayer, drawBitmap, drawBitmap, restore

This sequence was improperly accepted by the matcher, and the optimizer
reduced the sequence to:
	drawBitmap, drawBitmap
where the opacity from the saveLayer paint argument was applied
to the first drawBitmap only.

The user-visible effect in Chrome was a flashing effect on an image
caused by incorrect (too-high) opacity.

The patch adds a Skia test to check for pixel colour values in
a similarly structured recording.  All other Skia tests pass.
Blink layout tests also pass with this change.

BUG=chromium:344987
R=robertphillips@google.com, reed@google.com, mtklein@google.com

Author: dneto@chromium.org

Review URL: https://codereview.chromium.org/430503004
2014-07-30 15:42:22 -07:00
senorblanco
3d822c29d4 Intersect SkPictureImageFilter bounds against clip bounds.
Intersect SkPictureImageFilter bounds against clip bounds
to avoid unnecessary processing. This is how the other
filters work (via applyCropRect()), but SkPictureImageFilter
maintains its own crop.

BUG=skia:
R=bsalomon@google.com

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/428263003
2014-07-30 14:49:31 -07:00
mtklein
e83909f76c Add some debugging to PremulAlphaRoundTrip test.
BUG=skia:2782
R=bensong@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/429313002
2014-07-30 12:37:19 -07:00
senorblanco
55b6d8be99 Implement a persistent uniqueID-based cache for SkImageFilter.
Add a unique ID to SkImageFilter, and use it as part
of a persistent cache of image-filtered results. This is used for
caching frame-to-frame coherent filters.

We also keep track of which filter subtrees do not reference the
src input, and use a GenID of zero for the src input in that case.
That way, subtrees which are not dependent on the filter input can be
cached independently of it.

This gives approximately a 4X speedup on
letmespellitoutforyou.com/samples/svg/filter_terrain.svg on Z620
and Nexus10. The cache key consists of the uniqueID of the filter, the
clip bounds, the CTM and the genID of the input bitmap.

Since this does not yet handle the case where the input primitives
(and part of the resulting filter tree) are unchanged, we have
to keep around the external cache for that painting case.
When the work to cache unchanging input primitives is done, the
old cache can be removed, and the new UniqueIDCache will be renamed
to Cache.

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

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/414483003
2014-07-30 11:26:46 -07:00
mtklein
6d88e6ce51 Fix way-over-allocation in pipe.
https://codereview.chromium.org/283093002 fixed some bugs in pipe memory
allocation, but also introduced one of its own: nearly every block requested
from needOpBytes() got its own 16K allocation.

The correct logic is to take the requested size, add four more bytes for a
DrawOp, make sure that's 4-byte aligned, then check to see if there's enough
space for that in the current block.  If there's not, allocate at least
MIN_BLOCK_SIZE bytes to fit the request.

The bug is that I moved that round-up-to-MIN_BLOCK_SIZE step before checking
for space in the current block.  This means most (all?) blocks will be 16K but
never seem to have room to fit another allocation.  You need 8 bytes?  You get
16K.  You need 8 more bytes?  Nope, can't fit that.  Here's a new 16K...

This reverts the change to the test I made then, which really should have
tipped me off.  It was testing exactly this bug.

BUG=372671
R=tomhudson@chromium.org, tomhudson@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/433463003
2014-07-30 09:17:54 -07:00
krajcevski
b5294e8d45 Bring LATC in line with other formats (i.e. write a blitter and
an "optimized" compression routine).

R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/429683003
2014-07-30 08:34:51 -07:00
robertphillips
09dde64628 Now always use Atlas for layer cache
This is setup for running cluster telemetry tests

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/429593002
2014-07-29 07:14:49 -07:00
robertphillips
8ab8cc07cf Finish removing GrTHashTable
This class is no longer used in Ganesh (in favor of SkTDynamicHash)

R=jvanverth@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/421253003
2014-07-29 06:17:49 -07:00
robertphillips
320c92380f Add plot-based purging to GrLayerCache
This CL allows a GrPlot full of atlased layer to be purged from the atlas to make room for new layers.

R=jvanverth@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/411703003
2014-07-29 06:07:19 -07:00
tfarina
a8e2e1504b Cleanup: Rename SkOSPath functions.
Mostly for brevity and matches better with Python:

Python           | Old C++                 | New C++
os.path.join     | SkOSPath::SkPathJoin    | SkOSPath::Join
os.path.basename | SkOSPath::SkBasename    | SkOSPath::Basename

BUG=None
TEST=make all
R=mtklein@google.com, bsalomon@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/428443002
2014-07-28 19:26:58 -07:00
halcanary
186e699efe disable new test on windows
R=bensong@google.com, djsollen@google.com
TBR=bensong@google.com, djsollen@google.com
CQ_EXTRA_TRYBOTS=tryserver.skia:Test-Win7-ShuttleA-HD2000-x86_64-Release-Trybot
NOTREECHECKS=true

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/424833002
2014-07-28 10:54:26 -07:00
halcanary
b1ab5fdd11 If decoder doesn't ouput indexed color, don't check colortable
R=djsollen@google.com, bungeman@google.com
TBR=bungeman@google.com, djsollen@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/427593002
2014-07-28 08:56:35 -07:00
halcanary
7f8aad84de SkDiscardablePixelRef returns correct indexed color on relock.
R=djsollen@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/428603002
2014-07-28 08:23:55 -07:00
bungeman
d6aeb6dc8f Fix thread unsafe mutex initialization.
BUG=skia:2779
R=robertphillips@google.com, mtklein@google.com, reed@android.com, bsalomon@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/419113002
2014-07-25 11:52:48 -07:00
bsalomon
6d3fe022d6 Rename GrGpuObject to GrGpuResource
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/418143004
2014-07-25 08:35:45 -07:00
bsalomon
c44be0e9e4 Merge GrGpuObject and GrCacheable.
We want to create a new base class for "meta" gr resources as part of the GrResourceCache rewrite and this is an iterim step towards that goal.s

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/414013005
2014-07-25 07:32:33 -07:00
piotaixr
76d5b477c9 Now able to set the localMatrix when creating a SkShader from a SkImage
BUG=skia:2771
R=junov@chromium.org, reed@chromium.org, bsalomon@chromium.org, bsalomon@google.com

Author: piotaixr@chromium.org

Review URL: https://codereview.chromium.org/409653003
2014-07-22 15:02:05 -07:00
scroggo
24519371cb Run CanvasState test across a library boundary.
Refactor CanvasStateTest to pull out functions which can
either be called directly or from a shared library. Add a
command line flag to pass in the path to a library to open
to call those functions from.

Separate different CanvasTest tests into separate DEF_TEST
tests. This allows them to be run in parallel.

Move the ifdefs outside of function declarations to skip
running CanvasTest tests which do nothing.

Add the canvas_state_lib target. It is a shared library that
exports some functions to be called by another version of
Skia.

BUG=b/15693384
R=djsollen@google.com, reed@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/400043003
2014-07-22 12:38:55 -07:00
robertphillips
d771f6bc27 Add auto purging for SkPicture-related Ganesh resources (esp. layers)
This is intended to lower the bookkeeping burden for the Layer Caching feature. Cached layers are now automatically purged when a picture is deleted.

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/408923002
2014-07-22 10:18:06 -07:00
caryclark
17f0b6df72 share dm and command flags
Share command flags between dm and unit tests.
Also, allow dm's core to be included by itself and iOSShell.

Command line flags that are the same (or nearly the same) in DM
and in skia_tests have been moved to common_flags. Authors,
please check to see that the shared common flag is correct for
the tool.

For iOS, the 'tool_main' entry point has a wrapper to allow multiple
tools to be statically linked in the iOSShell.
Since SkCommandLineFlags::Parse can only be called once, these calls
are disabled in the IOS build.

Since the iOS app directory is dynamically assigned a name, use '@' to
select it. (This is the same convention chosen by the Mobile Harness
iOS file system utilities.)

Move the heart of dm.gyp into dm.gypi so that it can be included by
itself and iOSShell.gyp.

Add tools/flags/SkCommonFlags.* to define and declare common
command line flags.

Add support for dm to iOSShell.

BUG=skia:
R=scroggo@google.com, mtklein@google.com, jvanverth@google.com, bsalomon@google.com

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/389653004
2014-07-22 10:15:35 -07:00
bsalomon
dcabb05113 Make GrCacheable implement its own ref counting.
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/392333008
2014-07-21 14:24:01 -07:00
sugoi
518d83dbc1 Skia side RGB to YUV gpu conversion
This code is the one that's currently working in my local chromium build. A few things still need to be addressed and I'll highlight these directly in the code.

BUG=skia:
R=reed@google.com, bsalomon@google.com, senorblanco@google.com, senorblanco@chromium.org, robertphillips@google.com, scroggo@google.com, halcanary@google.com

Author: sugoi@chromium.org

Review URL: https://codereview.chromium.org/374743003
2014-07-21 11:37:39 -07:00
egdaniel
02cafcc1bf Remove gpu shader optimatization for solid white or trans black colors
Running test on the added bench which draws a grid of all white paths, all blue paths, or alternating checkered white/blue paths.

With optimization in (ms):
         White       Blue        Checkered
Linux    ~80         ~80         ~160
N7       ~800        ~1100       ~1500
Moto-e   ~830        ~1100       ~2500

Without optimization in (ms):
         White       Blue        Checkered
Linux    ~80         ~80         ~80
N7       ~1100       ~1100       ~1100
Moto-e   ~1100       ~1100       ~1500

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/5f78d2251a440443c9eaa321dad058d7a32bfef7

R=bsalomon@google.com

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/375823005
2014-07-21 11:37:28 -07:00
robertphillips
3d533ac917 Replace GrTHash with SkTDynamicHash
Mike: SkTDynamicHash changes
Brian: Ganesh changes

This removes three instances of GrTHash leaving the ones in GrTextStrike.h

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/402693003
2014-07-20 09:40:00 -07:00
halcanary
1d1795b199 Make ScaledImageCache unit test less dependent on global state.
motivation:  The ASAN bot routinely trips this unit test.

R=tomhudson@chromium.org, tomhudson@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/401833002
2014-07-18 09:18:41 -07:00
caryclark
19eb3b2f0a update pathops core and tests
split out skpclip (the test of 1M pictures) into its own project

TBR=reed

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/400033002
2014-07-18 05:08:14 -07:00
bungeman
733418f91e Remove SkRefPtr.
R=mtklein@google.com, reed@google.com, bsalomon@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/393913002
2014-07-17 12:17:55 -07:00
bsalomon
e904c09a3a Fix alpha textures in NV ES3 contexts on Windows.
Make unit tests iterate over all the rendering GL context types rather than using kNative.

Fix the extension printing when gStartupSpew is set.

R=jvanverth@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/398183002
2014-07-17 10:50:59 -07:00
halcanary
0db38ccfef erase bitmap inside unit test to make valgrind happier
R=mtklein@google.com
TBR=sunshine

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/397273006
2014-07-17 10:17:28 -07:00
bsalomon
929f29a5c1 Makes GrGLProgramDesc's key store the lengths as well as offsets of the effect keys.
Makes it possible to use GrBackendEffectFactories other than GrTBEF by moving meta-key generation out of GrTBEF.

Cleans up docs around GrBackendEffectFactory.

Committed: https://skia.googlesource.com/skia/+/c0ea398aff8254e31152cbb94c9ab6150428e252

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

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/379113004
2014-07-17 07:55:11 -07:00
halcanary
805ef159d1 Set maximum output size for scaled-image-cache images
Accessable via:
  SkScaledImageCache::{G,S}etMaximumOutputSizeForHighQualityFilter

Also, a unit test.

BUG=389439
R=humper@google.com, tomhudson@google.com, reveman@chromium.org, vangelis@chromium.org, reed@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/394003003
2014-07-17 06:58:01 -07:00
joshualitt
ee5da55477 32 bpp floating point textures
This is VERY preliminary, but it was sufficient for me to get 32 bit floating point textures in a sample app

BUG=skia:
R=bsalomon@chromium.org, bsalomon@google.com

Author: joshualitt@chromium.org

Review URL: https://codereview.chromium.org/359803003
2014-07-16 13:32:56 -07:00
bungeman
c7af812b42 Revert of Reopened: Caching the result of readPixelsSupported (https://codereview.chromium.org/364193004/)
Reason for revert:
This appears to be causing failures on Android when running tests.

Original issue's description:
> Caching the result of readPixelsSupported
>
> The call was calling GR_GL_GetIntegerv 2 times for each readPixels
> and thus was causing a loss of performance
>
> (resubmit of issue 344793008)
>
> Benchmark url: http://packages.gkny.fr/tst/index.html
>
> BUG=skia:2681
>
> Committed: https://skia.googlesource.com/skia/+/753a2964afe5661ce9b2a8ca77ca9d0aabd3173c
>
> Committed: https://skia.googlesource.com/skia/+/8339371f1ec3c57a0741932fd96bff32c53d4e54

R=junov@chromium.org, reed@chromium.org, bsalomon@chromium.org, mtklein@google.com, bsalomon@google.com, piotaixr@chromium.org
TBR=bsalomon@chromium.org, bsalomon@google.com, junov@chromium.org, mtklein@google.com, piotaixr@chromium.org, reed@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:2681

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/395203002
2014-07-16 09:10:41 -07:00
mtklein
7940100fae Revert of Makes GrGLProgramDesc's key store the lengths as well as offsets of the effect keys. (https://codereview.chromium.org/379113004/)
Reason for revert:
Most likely candidate for Valgrind failures:

[21:10:08.755668] ==3036== Use of uninitialised value of size 8
[21:10:08.755753] ==3036==    at 0x734AB2: GrGpuGL::ProgramCache::getProgram(GrGLProgramDesc const&, GrEffectStage const**, GrEffectStage const**) (GrGpuGL_program.cpp:107)
[21:10:08.755788] ==3036==    by 0x734ED2: GrGpuGL::flushGraphicsState(GrGpu::DrawType, GrDeviceCoordTexture const*) (GrGpuGL_program.cpp:253)
[21:10:08.755811] ==3036==    by 0x6E81C2: GrGpu::setupClipAndFlushState(GrGpu::DrawType, GrDeviceCoordTexture const*, GrDrawState::AutoRestoreEffects*, SkRect const*) (GrGpu.cpp:350)
[21:10:08.755837] ==3036==    by 0x6E9BE8: GrGpu::onDraw(GrDrawTarget::DrawInfo const&) (GrGpu.cpp:390)
[21:10:08.755858] ==3036==    by 0x6EEECE: GrInOrderDrawBuffer::flush() (GrDrawTarget.h:506)
[21:10:08.755879] ==3036==    by 0x6D0EB4: GrContext::flush(int) (GrContext.cpp:1327)
[21:10:08.755900] ==3036==    by 0x6D3F8F: GrContext::writeTexturePixels(GrTexture*, int, int, int, int, GrPixelConfig, void const*, unsigned long, unsigned int) (GrContext.cpp:1349)
[21:10:08.755922] ==3036==    by 0x6D39D7: GrContext::writeRenderTargetPixels(GrRenderTarget*, int, int, int, int, GrPixelConfig, void const*, unsigned long, unsigned int) (GrContext.cpp:1632)
[21:10:08.755949] ==3036==    by 0x6FFDF3: GrRenderTarget::writePixels(int, int, int, int, GrPixelConfig, void const*, unsigned long, unsigned int) (GrRenderTarget.cpp:45)
[21:10:08.755978] ==3036==    by 0x735563: SkGpuDevice::onWritePixels(SkImageInfo const&, void const*, unsigned long, int, int) (SkGpuDevice.cpp:280)
[21:10:08.756003] ==3036==    by 0x57A048: SkBaseDevice::writePixels(SkImageInfo const&, void const*, unsigned long, int, int) (SkDevice.cpp:106)
[21:10:08.756025] ==3036==    by 0x56D0AE: SkCanvas::writePixels(SkImageInfo const&, void const*, unsigned long, int, int) (SkCanvas.cpp:700)
[21:10:08.756050] ==3036==    by 0x56D156: SkCanvas::writePixels(SkBitmap const&, int, int) (SkCanvas.cpp:652)
[21:10:08.756077] ==3036==    by 0x5109B6: test_WritePixels(skiatest::Reporter*, GrContextFactory*) (WritePixelsTest.cpp:464)
[21:10:08.756099] ==3036==    by 0x51114C: skiatest::WritePixelsClass::onRun(skiatest::Reporter*) (WritePixelsTest.cpp:361)
[21:10:08.756122] ==3036==    by 0x406BE8: skiatest::Test::run() (Test.cpp:107)
[21:10:08.756145] ==3036==    by 0x4064C2: SkTestRunnable::run() (skia_test.cpp:109)
[21:10:08.756167] ==3036==    by 0x405D1A: tool_main(int, char**) (skia_test.cpp:221)
[21:10:08.756189] ==3036==    by 0x405F75: main (skia_test.cpp:239)
[21:10:08.756211] ==3036==  Uninitialised value was created by a stack allocation
[21:10:08.756233] ==3036==    at 0x734CC8: GrGpuGL::flushGraphicsState(GrGpu::DrawType, GrDeviceCoordTexture const*) (GrGpuGL_program.cpp:213)

Original issue's description:
> Makes GrGLProgramDesc's key store the lengths as well as offsets of the effect keys.
>
> Makes it possible to use GrBackendEffectFactories other than GrTBEF by moving meta-key generation out of GrTBEF.
>
> Cleans up docs around GrBackendEffectFactory.
>
> Committed: https://skia.googlesource.com/skia/+/c0ea398aff8254e31152cbb94c9ab6150428e252

R=robertphillips@google.com, jvanverth@google.com, bsalomon@google.com
TBR=bsalomon@google.com, jvanverth@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/394213002
2014-07-16 06:16:43 -07:00
robertphillips
21048b588f Always have GrLayer's rect be valid
This CL just makes atlasing easier/clearer since there is a separate atlased query method. Not using the rect as a signal also simplifies the rendering of the layer in SkGpuDevice.cpp.

This is calved off from (Add atlased layer purging - https://codereview.chromium.org/367073002/)

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/384233002
2014-07-15 19:46:35 -07:00
bsalomon
c0ea398aff Makes GrGLProgramDesc's key store the lengths as well as offsets of the effect keys.
Makes it possible to use GrBackendEffectFactories other than GrTBEF by moving meta-key generation out of GrTBEF.

Cleans up docs around GrBackendEffectFactory.

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

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/379113004
2014-07-15 19:41:17 -07:00
piotaixr
8339371f1e Caching the result of readPixelsSupported
The call was calling GR_GL_GetIntegerv 2 times for each readPixels
and thus was causing a loss of performance

(resubmit of issue 344793008)

Benchmark url: http://packages.gkny.fr/tst/index.html

BUG=skia:2681

Committed: https://skia.googlesource.com/skia/+/753a2964afe5661ce9b2a8ca77ca9d0aabd3173c

R=junov@chromium.org, reed@chromium.org, bsalomon@chromium.org, mtklein@google.com, bsalomon@google.com

Author: piotaixr@chromium.org

Review URL: https://codereview.chromium.org/364193004
2014-07-15 19:41:08 -07:00
mtklein
184ff37c62 Keep at most one GPU device alive at a time.
NOTREECHECKS=true

BUG=skia:
R=bsalomon@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/392013004
2014-07-15 14:38:53 -07:00
scroggo
41b8687417 Include SkTypes before using ifdefs.
Fixes Android framework build.

When building for the Android framework, we depend on SkUserConfig.h
to define things like SK_SUPPORT_GPU. So we cannot have the first
include inside a guard requring SK_SUPPORT_GPU to be defined. Include
SkTypes first, which will pull in SkUserConfig, define the flag, and
allow us to include GrContextFactory.h.

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

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/394533003
2014-07-14 10:25:01 -07:00
senorblanco
837f5321a4 Fix for saveLayer() with filters vs. the BBox Hierarchy.
When building acceleration structures for SkPicture, we must transform
the primitive's bounds not only by its own SkPaint, but by the paints of
any saveLayer()s currently active above it.

We do this by pushing the SkPaint onto a stack on
saveLayer(), and popping them on restore(). We also push
a NULL paint in save(), so that the pushes and pops are
balanced.

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

Committed: https://skia.googlesource.com/skia/+/6ca0b6a46cbe9bef3e2b9b9db813ec864efd62de

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/380373003
2014-07-14 10:19:55 -07:00
senorblanco
c07e2811dd Revert "Fix for saveLayer() with filters vs. the BBox Hierarchy." and
"resizeimagefiler is ok with a BBH now".

This reverts commits 6ca0b6a46c and 8fa73202ea.

Apparently causing problems in SKP playback.

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

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/381353005
2014-07-14 08:25:34 -07:00
piotaixr
cef04f8188 Deleted SkImage::newShaderClamp: not used, not implemented.
Implemented SkImage::newShader.

BUG=skia:2701, 344804
R=junov@chromium.org, reed@chromium.org, bsalomon@chromium.org, reed@google.com

Author: piotaixr@chromium.org

Review URL: https://codereview.chromium.org/345463009
2014-07-14 07:48:04 -07:00
Robert Phillips
cfaeec446d Remove Skia's use of the default SkPicture constructor and multi-clone
This cannot be landed until (Chrome: Switch to one-at-a-time SkPicture::clone interface - https://codereview.chromium.org/380323002/) has landed.

R=mtklein@google.com
TBR=reed@google.com

Review URL: https://codereview.chromium.org/388833003
2014-07-13 12:00:50 -04:00
robertphillips
dd528967fc Remove SkPicture copy constructor
Given where we're heading with SkPicture why would you need to make a copy?

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/381133002
2014-07-13 07:55:53 -07:00
reed
b184f7f52b Add SkBitmap::readPixels() and reimplement copyTo and SkCanvas::readPixels
This reverts commit 651eaeadeb.

TBR=

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/390693002
2014-07-13 04:32:32 -07:00
reed
651eaeadeb Revert of Add SkBitmap::readPixels() and reimplement copyTo and SkCanvas::readPixels (https://codereview.chromium.org/388803007/)
Reason for revert:
still failing (randomly?) bench sometimes. need stack dump to diagnose.

Original issue's description:
> Add SkBitmap::readPixels() and reimplement copyTo and SkCanvas::readPixels
> usning it.
>
> Revert "Revert of add readPixels() to SkBitmap (https://codereview.chromium.org/377303002/)"
>
> This reverts commit d08cb905a7.
>
> TBR=scroggo@google.com
>
> Committed: https://skia.googlesource.com/skia/+/debba5c3d091159149f8a88ab5dcd44dd72e0dc7

R=reed@google.com
TBR=reed@google.com
NOTREECHECKS=true
NOTRY=true

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/382543005
2014-07-12 13:16:10 -07:00
reed
debba5c3d0 Add SkBitmap::readPixels() and reimplement copyTo and SkCanvas::readPixels
usning it.

Revert "Revert of add readPixels() to SkBitmap (https://codereview.chromium.org/377303002/)"

This reverts commit d08cb905a7.

R=reed@chromium.org
TBR=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/388803007
2014-07-12 12:26:36 -07:00
caryclark
936b73424f ios fixes
skia_ios.mm
Get the app's Documents directory and pass use it to set the resource path.
This is a quick hack which will be replaced by a new application that is
a tiny shim around a command line tool.

SkImageEncoder.h
SkForceLinking.cpp
SkImageDecoder_CG.cpp
Add support for FORCE_LINKING so iOS sees the PNG encoder and others.

SkFloatBits.cpp
SkPoint.cpp
Handle denormalized numbers that are floored by the iOS ARM processor.

SkImageDecoder_iOS.mm
Remove empty encoder factory.

SkTouchGesture.cpp
Return early on empty state on touch rather than aborting (crashing)

JpegTest.cpp
Hal via stackoverflow.com says partial jpegs can be gray as well.

skia_test.cpp
Remove crash handler call for now to avoid link failure.

OverwriteLine.h
Remove fancy line overwrite for iOS.

Resources.cpp
Add interface to set resource directory based on runtime query.

BUG=skia:2736 skia:2737 skia:2738
R=reed@google.com, halcanary@google.com, mtklein@google.com, tfarina@chromium.org

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/373383003
2014-07-11 12:14:51 -07:00
bsalomon
848faf00ec This moves us towards variable length effect keys. The overall program key now allows for it. After the header it stores an array of offsets to effect keys. This allows us to grab the effect keys to pass to effects when they generate code. It also ensures that we can't get a collision by sets of keys that are different lengths but are the same when appended together.
R=robertphillips@google.com, jvanverth@google.com, egdaniel@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/356513003
2014-07-11 10:01:02 -07:00
senorblanco
6ca0b6a46c Fix for saveLayer() with filters vs. the BBox Hierarchy.
When building acceleration structures for SkPicture, we must transform
the primitive's bounds not only by its own SkPaint, but by the paints of
any saveLayer()s currently active above it.

We do this by pushing the SkPaint onto a stack on
saveLayer(), and popping them on restore(). We also push
a NULL paint in save(), so that the pushes and pops are
balanced.

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

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/380373003
2014-07-11 09:56:03 -07:00
jcgregorio
d08cb905a7 Revert of add readPixels() to SkBitmap (https://codereview.chromium.org/377303002/)
Reason for revert:
Maybe causing crashes in bench.

http://108.170.220.120:10117/builders/Test-ChromeOS-Daisy-MaliT604-Arm7-Debug/builds/2608/steps/RunBench/logs/stdio

Original issue's description:
> add readPixels() to SkBitmap
>
> BUG=chromium:390782
>
> Committed: https://skia.googlesource.com/skia/+/c4f216151b6ade70c35fade09a353052f40236b1

R=scroggo@google.com, bsalomon@google.com, reed@google.com
TBR=bsalomon@google.com, reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=chromium:390782

Author: jcgregorio@google.com

Review URL: https://codereview.chromium.org/382243003
2014-07-11 07:48:20 -07:00
reed
bbf9f6d1cb Revert of Slim Skia down to just one murmur3 implementation. (https://codereview.chromium.org/376183004/)
Reason for revert:
broke 10.6 compile

[17:13:56.863876] [4/336] CXX obj/src/core/core.SkBBoxHierarchyRecord.o
[17:13:56.863997] FAILED: c++ -MMD -MF obj/src/core/core.SkBBoxRecord.o.d -DSK_INTERNAL -DSK_GAMMA_SRGB -DSK_GAMMA_APPLY_TO_A8 -DSK_SCALAR_TO_FLOAT_EXCLUDED -DSK_ALLOW_STATIC_GLOBAL_INITIALIZERS=1 -DSK_SUPPORT_GPU=1 -DSK_SUPPORT_OPENCL=0 -DSK_FORCE_DISTANCEFIELD_FONTS=0 -DSK_SCALAR_IS_FLOAT -DSK_BUILD_FOR_MAC -DSK_USE_POSIX_THREADS -DSK_RELEASE -DNDEBUG -I../../include/config -I../../include/core -I../../include/pathops -I../../include/pipe -I../../include/ports -I../../include/utils -I../../include/xml -I../../src/core -I../../src/sfnt -I../../src/image -I../../src/opts -I../../src/utils -I../../include/utils/mac -I../../include/gpu -I../../src/gpu -fasm-blocks -mpascal-strings -O3 -gdwarf-2 -Wnewline-eof -mmacosx-version-min=10.6 -arch x86_64 -mssse3 -fvisibility=hidden -fvisibility-inlines-hidden  -c ../../src/core/SkBBoxRecord.cpp -o obj/src/core/core.SkBBoxRecord.o
[17:13:56.864085] In file included from ../../src/core/SkPictureFlat.h:14,
[17:13:56.864130]                  from ../../src/core/SkPictureData.h:14,
[17:13:56.864173]                  from ../../src/core/SkPictureRecord.h:18,
[17:13:56.864217]                  from ../../src/core/SkBBoxRecord.h:12,
[17:13:56.864261]                  from ../../src/core/SkBBoxRecord.cpp:9:
[17:13:56.864336] ../../src/core/SkChecksum.h: In static member function ‘static uint32_t SkChecksum::Compute(const uint32_t*, size_t)’:
[17:13:56.864397] ../../src/core/SkChecksum.h:127: error: invalid conversion from ‘const uint32_t*’ to ‘const uint32_t*’
[17:13:56.864462] ../../src/core/SkChecksum.h:128: error: invalid conversion from ‘const uint32_t*’ to ‘const uint32_t*’
[17:13:56.864510] ../../src/core/SkChecksum.h:129: error: comparison between distinct pointer types ‘const uint32_t*’ and ‘const uint32_t*’ lacks a cast

Original issue's description:
> Slim Skia down to just one murmur3 implementation.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/6ac0037b70410ff7d5ce5788bc89314223e1a587
>
> Committed: https://skia.googlesource.com/skia/+/67a3271f0de9ccc32d559b042b862528272047cc
>
> Committed: https://skia.googlesource.com/skia/+/53d435990bdb4d14df78013da45a9364d0287ebe

R=mtklein@google.com, mtklein@chromium.org
TBR=mtklein@chromium.org, mtklein@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: reed@google.com

Review URL: https://codereview.chromium.org/381253003
2014-07-10 14:29:43 -07:00
reed
c4f216151b add readPixels() to SkBitmap
BUG=chromium:390782
R=scroggo@google.com, bsalomon@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/377303002
2014-07-10 14:15:57 -07:00
mtklein
53d435990b Slim Skia down to just one murmur3 implementation.
BUG=skia:

Committed: https://skia.googlesource.com/skia/+/6ac0037b70410ff7d5ce5788bc89314223e1a587

Committed: https://skia.googlesource.com/skia/+/67a3271f0de9ccc32d559b042b862528272047cc

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/376183004
2014-07-10 14:10:47 -07:00
scroggo
ecce60bad6 Build Android with SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG.
This flag will be used on Android when built for the framework,
as well as when built for the WebView. Setting this flag for
Android means our tests can fully test CanvasStateTest.

Fix CanvasStateTest. It has bit-rotted since disabling
SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG.

Splitting off from https://codereview.chromium.org/372003002/ ,
as it seems self-contained.

BUG=b/15693384
R=djsollen@google.com, reed@google.com, mtklein@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/375943003
2014-07-09 07:26:40 -07:00
Mike Klein
874a62acef Revert "Remove ability for Release code to call getRefCnt() or getWeakRefCnt()."
This reverts commit 4ae94ffce5.

BUG=skia:

Review URL: https://codereview.chromium.org/382523002
2014-07-09 09:04:07 -04:00
tfarina
0a65e38560 Cleanup: Rename UnitTestTest.cpp to RTConfRegistryTest.cpp
BUG=None
TEST=make tests
R=mtklein@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/374443002
2014-07-08 10:33:28 -07:00
bsalomon
83d081ae1d Goodbye GrEffectRef.
Also, reworked some var names and comments around SkShader::asNewEffect.

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/374923002
2014-07-08 09:56:11 -07:00
senorblanco
9ea3d57fde Clean up SkImageFilter constructors.
Now that all creation of SkImageFilters goes through
factory Create() methods, there's no real reason for the
convenience constructors. Some SkImageFilter subclasses
which actually have zero DAG-able inputs were passing NULL
to the superclass constructor. This actually means 1 input,
with a NULL value, not zero inputs. This becomes more
relevant for the upcoming cache infrastructure, where this
indicates that the filter will use its src input, where in
fact some of these filters do not (they are image generators
only).

Limiting SkImageFilter to a single constructor resolves this
ambiguity.

Along the way, I removed all of the default parameters to
the constructors, since the Create methods always call them
with the full argument list.

BUG=skia:
R=reed@google.com

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/376953003
2014-07-08 09:16:22 -07:00
bsalomon
97b9ab72cd Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*.
Make Sk-effect virtuals produce GrEffect* rather than GrEffectRef*

Make GrEffectRef a typedef for GrEffect.

Committed: https://skia.googlesource.com/skia/+/2011fe9cdfa63b83489a146cea6a724cede352c8

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/377503004
2014-07-08 06:52:35 -07:00
mtklein
4ae94ffce5 Remove ability for Release code to call getRefCnt() or getWeakRefCnt().
These getRefCnt() methods are not thread safe, so Skia code should not
be calling them.  unique() is fine.

SkDEBUG code (SkASSERTs) can still call getRefCnt() / getWeakRefCnt().

This adds tools/RefCntIs.{h,cpp}, which lets tests make their assertions in
both debug and release modes.

BUG=skia:2726
R=senorblanco@chromium.org, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/378643003
2014-07-08 06:48:17 -07:00
reed
969842ac9c Revert of Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*. (https://codereview.chromium.org/377503004/)
Reason for revert:
broke linux builders

Original issue's description:
> Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*.
>
> Make Sk-effect virtuals produce GrEffect* rather than GrEffectRef*
>
> Make GrEffectRef a typedef for GrEffect.
>
> Committed: https://skia.googlesource.com/skia/+/2011fe9cdfa63b83489a146cea6a724cede352c8

R=robertphillips@google.com, bsalomon@google.com
TBR=bsalomon@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: reed@google.com

Review URL: https://codereview.chromium.org/372053003
2014-07-07 15:17:49 -07:00
bsalomon
2011fe9cdf Make GrDrawState and GrPaint take GrEffect* instead of GrEffectRef*.
Make Sk-effect virtuals produce GrEffect* rather than GrEffectRef*

Make GrEffectRef a typedef for GrEffect.

R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/377503004
2014-07-07 15:11:31 -07:00
bsalomon
f99f884cd8 Remove use of GrEffectRef from draw state and below.
R=robertphillips@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/372773002
2014-07-07 11:54:23 -07:00
tfarina
0b7813b8c5 Cleanup: Remove TestXCode project.
GYP generates the project files for us now.

$ GYP_GENERATORS=xcode ./gyp_skia

BUG=None
TEST=None
R=mtklein@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/365263006
2014-07-07 09:31:44 -07:00
mtklein
06d37714f7 Only you can prevent memory leaks.
SkPaint::setFoo() refs the foo, leaving the foo with a bonus ref unless you
call ->unref().

Valgrind caught this:
http://108.170.220.120:10117/builders/Test-Ubuntu12-ShuttleA-GTX550Ti-x86_64-Release-Valgrind/builds/317/steps/RunTests/logs/stdio

BUG=skia:
R=tomhudson@chromium.org, mtklein@google.com, tomhudson@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/377523002
2014-07-07 07:00:14 -07:00
tomhudson
d930511ee7 Linear-time implementation of willPlaybackBitmaps(), computed & cached
on construction in SkPicture. Unit test.

Template trickery thanks to mtklein@.

BUG=skia:2702
R=mtklein@google.com, reed@android.com, reed@google.com, tomhudson@google.com, mtklein, reed

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/366443002
2014-07-05 13:37:53 -07:00
senorblanco
3df05015ef Fix SkColorFilterImageFilter matrix optimization.
The order of matrices passed to multiplication was wrong (apparently,
this optimization was only being tested with matrices which commute).

See Chrome bug http://crbug.com/378362

R=sugoi@chromium.org

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/371523002
2014-07-03 11:13:09 -07:00
reed
e1085e0381 move SkChecksum and SkEmptyShader to private
TBR=reed@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/366133002
2014-07-03 07:26:01 -07:00
reed
7a7c3163f0 return early instead of crashing if fileData fails
BUG=skia:
R=krajcevski@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/362833004
2014-07-02 05:57:51 -07:00
reed
f0aed97aec correctly plumb through explicit rowbytes for allocPixels
BUG=skia:
R=caryclark@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/357073003
2014-07-01 12:48:11 -07:00
tfarina
c846f4a96b Cleanup usage of GetResourcePath() after commit bcbc1788b4.
There was a clean up opportunity left over after
https://skia.googlesource.com/skia/+/bcbc1788b478b1e54079318ad073e8490aa66fae, that could make use of the default parameter of GetResourcePath() function to make some call sites cleaner.

We decided to make it in a separate CL to make reviewer's and author's life easier, so we could catch errors and/or mistakes easily.

BUG=None
TEST=make all && out/Debug/dm && out/Debug/SampleApp
R=mtklein@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/351133003
2014-07-01 12:35:49 -07:00
robertphillips
db539905bb Rename SkPicturePlayback to SkPictureData
This is in preparation for splitting the playback portion of the new SkPictureData class into a new SkPicturePlayback class.

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/362773002
2014-07-01 08:47:04 -07:00
caseq
26337e9702 Fix SkTypeface::serialize() on Mac by properly indicating local fonts
We used to always set isLocalStream to false in SkTypeface_Mac::onGetFontDescriptor(),
which caused SkTypeface::serialize() to never actually serialize fonts.

BUG=skia:2698
R=reed@google.com, bungeman@google.com

Author: caseq@chromium.org

Review URL: https://codereview.chromium.org/353993003
2014-06-30 12:14:52 -07:00
reed
52d9ac6c92 stop calling SkCanvas::getDevice
BUG=skia:
R=bsalomon@google.com, robertphillips@google.com, junov@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/355193006
2014-06-30 09:05:34 -07:00
robertphillips
952841bf41 Begin atlasing
This CL makes it possible for pulled-forward-layers to be atlased. It currently has a couple glaring limitations (which is why it is disabled):

1) the atlased layers cannot be purged nor aged out
2) the texture backing the atlas is not pulled from (or returned to) the resource cache

#1 is on hold until we have a recycling rectanizer

A separate major limitation (the non-atlased layers aren't cached) is blocked until we can transmute entries in the resource cache from scratch to non-scratch while potentially preserving their contents.

Committed: https://skia.googlesource.com/skia/+/55e61f0ef4e5c8c34ac107deaadc9b4ffef3111b

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/354533004
2014-06-30 08:26:50 -07:00
Florin Malita
5f6102d079 SaveFlags be-gone
Remove the deprecated save(SaveFlags), willSave(SaveFlags) and all
traces of kMatrix_SaveFlags/kClip_SaveFlag.

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

Review URL: https://codereview.chromium.org/340403003
2014-06-30 10:13:28 -04:00
robertphillips
e462f2bed3 Revert of Begin atlasing (https://codereview.chromium.org/354533004/)
Reason for revert:
Sigh

Original issue's description:
> Begin atlasing
>
> This CL makes it possible for pulled-forward-layers to be atlased. It currently has a couple glaring limitations (which is why it is disabled):
>
> 1) the atlased layers cannot be purged nor aged out
> 2) the texture backing the atlas is not pulled from (or returned to) the resource cache
>
> #1 is on hold until we have a recycling rectanizer
>
> A separate major limitation (the non-atlased layers aren't cached) is blocked until we can transmute entries in the resource cache from scratch to non-scratch while potentially preserving their contents.
>
> Committed: https://skia.googlesource.com/skia/+/55e61f0ef4e5c8c34ac107deaadc9b4ffef3111b

R=bsalomon@google.com
TBR=bsalomon@google.com
NOTREECHECKS=true
NOTRY=true

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/359953002
2014-06-29 17:16:27 -07:00
robertphillips
55e61f0ef4 Begin atlasing
This CL makes it possible for pulled-forward-layers to be atlased. It currently has a couple glaring limitations (which is why it is disabled):

1) the atlased layers cannot be purged nor aged out
2) the texture backing the atlas is not pulled from (or returned to) the resource cache

#1 is on hold until we have a recycling rectanizer

A separate major limitation (the non-atlased layers aren't cached) is blocked until we can transmute entries in the resource cache from scratch to non-scratch while potentially preserving their contents.

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/354533004
2014-06-29 15:08:31 -07:00
reed
4af35f348b writepixels needs to bump genID
TBR=

Author: reed@google.com

Review URL: https://codereview.chromium.org/352573005
2014-06-27 17:47:49 -07:00
mtklein
d3e474e20c Deprecate SkPicture::clone().
Chrome will need -DSK_SUPPORT_LEGACY_PICTURE_CLONE.

This removes the modes from our tools that use clone().  No
bots run these.  DM used clone() in a way that we can just
share the picture now.

I plan to bring back the ability to test multithreaded
picture rendering soon.

BUG=skia:2378
R=robertphillips@google.com, mtklein@google.com, bsalomon@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/338633011
2014-06-27 12:34:44 -07:00
robertphillips
e5c1e3cd63 Fix RRect tranform bug
When a RRect is an oval transforming the rectangle and the radii separately can result in a non-oval result (i.e., due to numerical issues some tiny straight edges may creep in). This CL remedies the situation by computing the new radii directly from the transformed rect.

BUG=skia:2696
R=caryclark@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/354913004
2014-06-27 08:59:26 -07:00
henrik.smiding
3bb195ef0d Add SSE4 optimization of S32A_Opaque_Blitrow
Adds optimization of Skia S32A_Opaque_Blitrow blitter using SSE4.2 SIMD
instruction set. Special case for when alpha is zero or opaque.

Performance increase of 10%-400% compared to the existing SSE2
optimization (measured on Silvermont architecture).
Noticeable in ~25 different skia bench subtests, especially in
bitmap_8888_*, repeatTile_*, and morph_*.

bitmap_8888_A - 100% faster
bitmap_8888_A_source_transparent - 250% faster
bitmap_8888_A_source_opaque - 25% faster
bitmap_8888_A_scale_bicubic - 75% faster

Signed-off-by: Henrik Smiding <henrik.smiding@intel.com>

Committed: https://skia.googlesource.com/skia/+/e2527b147679b0c43019fae7d59cc3777d2d097e

Committed: https://skia.googlesource.com/skia/+/b5c281e1e06af3be804309877de1dac6145686b9

R=reed@google.com, mtklein@google.com, tomhudson@google.com, djsollen@google.com, joakim.landberg@intel.com

Author: henrik.smiding@intel.com

Review URL: https://codereview.chromium.org/289473009
2014-06-27 08:03:17 -07:00
reed
982542dce8 add SkSurface::NewRasterDirectReleaseProc
allows for lifetime control of pixel memory on raster surface

BUG=skia:
R=fmalita@google.com, bsalomon@google.com, fmalita@chromium.org

Author: reed@google.com

Review URL: https://codereview.chromium.org/351373005
2014-06-27 06:48:14 -07:00
reed
8c0c7b0bcd remove unnecessary bitmapdevice references
TBR=

Author: reed@google.com

Review URL: https://codereview.chromium.org/354143004
2014-06-27 05:49:54 -07:00
reed
2a8ca93171 don't create explicit bitmapdevice when not needed
TBR=

Author: reed@google.com

Review URL: https://codereview.chromium.org/349213006
2014-06-26 22:12:09 -07:00
tfarina
11a005ee01 Promote SkInterpolator unit test to our tests driver.
BUG=None
TEST=make tests && out/Debug/tests -m Interpolator
R=mtklein@google.com, bsalomon@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/351713005
2014-06-26 13:07:05 -07:00
senorblanco
7bf1068473 Remove SkBicubicImageFilter, and all related tests.
Now that we have SkResizeImageFilter, and the bicubic
resizing is part of skia proper, there's no need for a
specialized image filter.

BUG=skia:
R=bsalomon@google.com

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/357793002
2014-06-25 14:39:06 -07:00
tfarina
12345aee12 Rename TestSize.cpp to SizeTest.cpp
It is the only file where Test is the prefix rather than the sufix.
 This patch fixes that so it matches with the rest of the files
 under tests/ directory.

And separate SkISize test into its own DEF_TEST().

BUG=None
TEST=make tests && out/Debug/tests
R=mtklein@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/337783007
2014-06-25 10:39:02 -07:00
caryclark
66a5d8bf13 add path dump test
Add a unit test for SkPath::dump(). The unit test exposed a minor
bug (inconsistent CRs) and an unused parameter (title).

R=bsalomon@google.com
TBR=bsalomon
BUG=skia:1836

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/351833003
2014-06-24 08:30:18 -07:00
Mike Klein
c11530ea73 Tick off some TODOs:
- support fRecord in copy constructor
  - support SkDrawPictureCallback

Moved SkDrawPictureCallback to its own header so
SkRecordDraw can include it without pulling in all of
SkPicture.

Adding an SkAutoSaveRestore to SkRecordDraw was the easiest
way to match the balance guarantees of the callback, and
probably not a bad idea in general.  Updated its tests.

BUG=skia:
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/349973008
2014-06-24 11:29:06 -04:00
caryclark
a8d2ffb1c2 add pathops tight bounds; conform path ops' gyp to unit tests
Implement path tight bounds using path ops machinery. This is not
as efficient as it could be; for instance, internally, it creates
a path ops structure more suited to intersection. If this shows
up as a performance bottleneck, it could be improved.

Fix path ops gyp files, which have fallen out of sync with other
tests.

R=mtklein@google.com, bsalomon@google.com
TBR=mtklein
BUG=skia:1712

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/348343002
2014-06-24 07:55:12 -07:00
tfarina
9ea53f93e7 Preprend Test to test function name generated by DEF_TEST() macro.
That way when declaring a test with DEF_TEST() macro, you don't have to
uniquify the test name because it might colide with the class it is
being testing.

For example, if you are testing SkBase64 and do:

DEF_TEST(SkBase64, reporter) {
}

That will generate an error because the macro will declare a function
named SkBase64 which colides with the type SkBase64.

By adding Test to the function name we avoid this problem.

Fixed the entries found with the following command line:

$ git grep "Test, r" | grep DEF

BUG=None
TEST=make tests && out/Debug/tests
R=mtklein@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/345753007
2014-06-24 06:50:39 -07:00
Mike Klein
6fc763e3c2 No one uses SkPicture::swap.
BUG=skia:
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/349313004
2014-06-23 15:29:52 -04:00
tfarina
bcbc1788b4 Refactor how we handle resources path in Tests.
This idea emerged while doing https://codereview.chromium.org/321723002/
(commit 880914c35c).

BUG=None
TEST=make tests && out/Debug/tests
R=mtklein@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/346453002
2014-06-18 14:32:49 -07:00
mtklein
30e6e2af14 Add basic stacktrace handler using libunwind.
This means we will all have to apt-get install libunwind8-dev on Linux.  Mac comes with everything we need already.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/343583005
2014-06-18 11:44:18 -07:00
caryclark
e4097e3a0b Fix last pathops skp bug
This fixes the last bug discovered by iterating through the 800K
skp corpus representing the top 1M websites. For every clip on the
stack, the paths are replaced with the pathop intersection. The
resulting draw is compared with the original draw for pixel errors.

At least two prominent bugs remain. In one, the winding value is
confused by a cubic with an inflection. In the other, a quad/cubic
pair, nearly coincident, fails to find an intersection.

These minor changes include ignoring very tiny self-intersections
of cubics, and processing degenerate edges that don't connect to
anything else.

R=reed@android.com
TBR=reed

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/340103002
2014-06-18 07:24:19 -07:00
humper
4a24cd8ff4 Fifth attempt to land faster rect blur. Remove unnecessary conditionals from the shader.
approved over in https://codereview.chromium.org/331863006/; reuploading
because it had the wrong base url

BUG=skia:2095
R=bsalomon@google.com
TBR=bsalomon

Author: humper@google.com

Review URL: https://codereview.chromium.org/341543005
2014-06-17 13:39:31 -07:00
mtklein
887f3979f0 Add EXPERIMENTAL_beginRecording() for SkRecord-based recording.
The interesting stuff is in SkPictureRecorder.{h,cpp}.  The rest is mostly moving SkRecord from its own directories into core to avoid circular dependencies in GYP.

After plumbing SkRecord all the way through in Picture, I'll delete its old entry point include/record/SkRecording.h.  For now it and record.gypi need to stay where they are to keep Chrome building.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/331573004
2014-06-17 12:08:16 -07:00
reed
c3b3266b7d hide SkBitmap::Config entirely (behind a flag)
patch from issue 339463002

TBR=

I think the NoGPU failure is unrelated, so ignoring
NOTRY=True

Author: reed@google.com

Review URL: https://codereview.chromium.org/340533002
2014-06-17 08:38:31 -07:00
caryclark
dac1d17027 Enabling the canvas bit to turn the clip stack into a flat replace exposed around 100 failures when testing the 800K skp set generated from the top 1M web sites.
This fixes all but one of those failures.

Major changes include:
- Replace angle indices with angle pointers. This was motivated by the need to add angles later but not renumber existing angles.
- Aggressive segment chase. When the winding is known on a segment, more aggressively passing that winding to adjacent segments allows fragmented data sets to succeed.
- Line segments with ends nearly the same are treated as coincident first.
- Transfer partial coincidence by observing that if segment A is partially coincident to B and C then B and C may be partially coincident.

TBR=reed

Author: caryclark@google.com

Review URL: https://codereview.chromium.org/272153002
2014-06-17 05:15:38 -07:00
reed
0689d7b12e stop using SkBitmap::Config
R=scroggo@google.com

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/338493005
2014-06-14 05:30:20 -07:00
reed
bfefc7c95f hide Config in SkImageDecoder -- use SkColorType instead
patch from issue 334613003

TBR=scroggo

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/334793002
2014-06-12 17:40:00 -07:00
scroggo
e07c1ab408 Revert of third try at landing improved blur rect; this time with more correctness (https://codereview.chromium.org/331443003/)
Reason for revert:
Failing layout test: https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Linux/32762/layout-test-results/virtual/gpu/fast/canvas/canvas-draw-canvas-on-canvas-shadow-pretty-diff.html

Original issue's description:
> third try at landing improved blur rect; this time with more correctness
>
> BUG=skia:2095
> R=bsalomon@google.com
> TBR=bsalomon
>
> Committed: https://skia.googlesource.com/skia/+/72abfc2b4e7caead660f6b6a05e60d05eaf1a66f

R=bsalomon@google.com, reed@google.com, humper@google.com
TBR=bsalomon@google.com, humper@google.com, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2095

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/333763002
2014-06-12 12:10:24 -07:00
tfarina
da4ed3289e Cleanup: Delete sk_tools::make_filepath() in favor of SkOSPath::SkPathJoin().
BUG=None
TEST=make tools tests && out/Debug/tests
R=epoger@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/327403002
2014-06-12 08:50:56 -07:00
humper
72abfc2b4e third try at landing improved blur rect; this time with more correctness
BUG=skia:2095
R=bsalomon@google.com
TBR=bsalomon

Author: humper@google.com

Review URL: https://codereview.chromium.org/331443003
2014-06-11 12:42:49 -07:00
krajcevski
2b310e46eb Texture compression unit tests along with a couple of bug fixes
R=robertphillips@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/330453005
2014-06-11 12:26:49 -07:00
robertphillips
0bdbea75ff Remove picture pre-allocation from SkPictureRecorder
This CL improves the separation of the SkPicture and SkPictureRecord classes. It delays creation of the SkPicture (in SkPictureRecorder) until recording is actually completed. To accomplish this the SkRecord-derived classes now get SkPathHeap and SkPictureContentInfo members that are absorbed by the SkPicture when it is constructed.

As an ancillary change, this CL also moves the SkPictureContentInfo object from SkPicture to SkPicturePlayback. This is intended to centralize all the data in the SkPicturePlayback object.

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/324293004
2014-06-11 11:37:55 -07:00
tfarina
1c99ea8ed8 Cleanup: Delete sk_tools::get_basename() in favor of SkOSPath::SkBasename().
BUG=None
TEST=make tests && out/Debug/tests
R=epoger@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/321693002
2014-06-11 08:58:50 -07:00
reed
b0b1aa04ed Revert of second try at landing improved blur rect (https://codereview.chromium.org/325703002/)
Reason for revert:
broke some fast/canvas layout tests

Original issue's description:
> second try at landing improved blur rect
>
> BUG=skia:2095
> TBR=bsalomon
>
> Committed: https://skia.googlesource.com/skia/+/e9ea0d6b7d59ac3b7e257281e545b24bcc0d2a76

R=bsalomon@google.com, reed@chromium.org, humper@google.com
TBR=bsalomon@google.com, humper@google.com, reed@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:2095

Author: reed@google.com

Review URL: https://codereview.chromium.org/322423002
2014-06-11 07:26:23 -07:00
robertphillips
9058d602d0 Fix error revealed by Android unit test
The issue is/was that the original Picture/PictureRecorder that is being partially replayed is not guaranteed to issue any more commands before attempting to modify the existing data. Such modification is prohibited if there is a extant copy-on-write snapshot. Rather then further complicate the SkWriter32::snapshot capability for a dis-preferred use case, this CL simply copies the operation data.

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/316063005
2014-06-10 11:45:46 -07:00
reed
6c22573edb hide SkBitmap::setConfig
patch from issue 325733002

TBR=scroggo

Author: reed@chromium.org

Review URL: https://codereview.chromium.org/322963002
2014-06-09 19:52:07 -07:00
humper
e9ea0d6b7d second try at landing improved blur rect
BUG=skia:2095
R=bsalomon@google.com
TBR=bsalomon

Author: humper@google.com

Review URL: https://codereview.chromium.org/325703002
2014-06-09 14:35:21 -07:00
tfarina
880914c35c Reland "Clean up Test's resourcePath code."
This relands commit 91359bed48 (Clean up
Test's resourcePath code."

BUG=None
TEST=make dm && out/Debug/dm
R=mtklein@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/321723002
2014-06-09 12:05:34 -07:00
cdalton
511923443f Generate path names on the client side
Pre-allocates a range of path names and manages allocations within
that range on the client side. This allows us to generate new path
objects in a feed-forward manner that doesn't require round trips to
the GL server.

BUG=skia:
R=bsalomon@google.com, markkilgard@gmail.com

Author: cdalton@nvidia.com

Review URL: https://codereview.chromium.org/304403003
2014-06-09 11:16:58 -07:00
robertphillips
9f1c241e0d Remove SkPicture::kUsePathBoundsForClip_RecordingFlag
The real question is whether we ever want to record a picture without using the path bounds for a conservative (but faster) clip answer?

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/316143003
2014-06-09 06:25:34 -07:00
robertphillips
e2f2b98444 No longer limit SkPictureRecorder::partialReplay to Android
Toggling this for local testing is a bit of a chore.

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/316173004
2014-06-08 13:12:44 -07:00
mtklein
91359bed48 Revert of Clean up Test's resourcePath code. (https://codereview.chromium.org/319473003/)
Reason for revert:
Some benchmarks are written in a way that makes this change unsafe (e.g. const char* resPath = GetResourcePath().c_str(); in SkipZeroesBench) and Valgrind and ASAN caught that.  We can try again after a more careful cleanup of GetResourcePath().

Original issue's description:
> Clean up resourcePath code.
>
> 1) Make the implementation of SetResourcePath/GetResourcePath of GM and SkBenchmark match with the one in Test.
> 2) Make gResourcePath a static pointer to const char and move it inside the classes.
>
> BUG=None
> TEST=make tests && out/Debug/tests
>      make gm && out/Debug/gm
>      make bench && out/Debug/bench
> R=mtklein@google.com
>
> Committed: https://skia.googlesource.com/skia/+/52e4f413ffe2d281f9e90ff2147db08083ffcba7

R=tfarina@chromium.org
TBR=tfarina@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=None

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/320733002
2014-06-08 07:02:47 -07:00
tfarina
52e4f413ff Clean up resourcePath code.
1) Make the implementation of SetResourcePath/GetResourcePath of GM and SkBenchmark match with the one in Test.
2) Make gResourcePath a static pointer to const char and move it inside the classes.

BUG=None
TEST=make tests && out/Debug/tests
     make gm && out/Debug/gm
     make bench && out/Debug/bench

R=mtklein@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/319473003
2014-06-07 20:50:44 -07:00
jvanverth
d78a2fac37 Rollback of fe689c46 and all subsequent changes
BUG=skia:
R=humper@google.com
TBR=humper@google.com
NOTRY=True
NOTREECHECKS=True

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/324463005
2014-06-06 13:40:36 -07:00
humper
da1c00914e disable GPU/CPU blur match test (possibly temporary)
BUG=skia:
TBR=jvanverth
NOTRY=True
NOTREECHECKS=True

Author: humper@google.com

Review URL: https://codereview.chromium.org/322593002
2014-06-06 11:37:24 -07:00
krajcevski
c250d2e4ab Initial KTX encoder
The encoder comes with tests to check that the encoding/decoding
operations between ETC encoded bitmaps and ARGB bitmaps are sane.

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

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/312353003
2014-06-06 06:16:28 -07:00
robertphillips
c2fce56522 Add bench for rectanizers
R=bsalomon@google.com, jvanverth@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/319523003
2014-06-05 07:18:03 -07:00
robertphillips
9b14f26d0f Alter SkCanvas::drawPicture (devirtualize, take const SkPicture, take pointer)
R=reed@google.com, bsalomon@google.com, mtklein@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/313613004
2014-06-04 05:40:44 -07:00
scroggo
65044bfe02 Return NULL when building empty LayerRasterizer.
In SkLayerRasterizer::snapshotRasterizer() and ::detachRasterizer(),
if no layers have been added, do not attempt to create an
SkLayerRasterizer. Instead, return NULL.

This fixes an error when running tests on Android.

Update dox to state that NULL may be returned.

Add tests.

R=reed@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/313653006
2014-06-03 13:12:51 -07:00
krajcevski
99ffe24200 Initial KTX file decoder
R=bsalomon@google.com, robertphillips@google.com, halcanary@google.com, reed@google.com

Author: krajcevski@google.com

Review URL: https://codereview.chromium.org/302333002
2014-06-03 13:04:35 -07:00
reed
868074b50b remove SkBounder -- unused and unloved
BUG=skia:
R=scroggo@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/312553006
2014-06-03 10:54:00 -07:00
robertphillips
dcf9ab14a1 Remove legacy picture recording
This is unblocked now that Android no longer uses the old interface.

This is just the first step in cleaning this up. Future CLs will constify SkPicture access in SkCanvas and split up the SkPicture/SkPicturePlayback/SkPictureRecord trio.

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/313613002
2014-06-03 10:04:47 -07:00
mtklein
1b81877880 Clean up SkOnce:
1 Remove atExit feature: clients can do it just as well as SkOnce can.
  2 Remove support for functors: no one but the unit test did that.
  3 Remove support for unused non-static SkOnceFlag (no SK_ONCE_INIT).
  4 Add SkOnce variants for no-arg functions so we're not forced to pass dummy values all the time.
  5 Merge SkSpinlock and SkOnceFlag, making all members private.
  6 More notes about memory barriers, adding an acquire load after acquiring the spinlock.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/302083003
2014-06-02 11:26:59 -07:00