Commit Graph

3161 Commits

Author SHA1 Message Date
senorblanco@chromium.org
0a5c233e3b Implement bounds traversals for tile and matrix convolution filters.
Add a new GM that exercises tiled drawing all pixel-moving filters
(and some non-pixel-moving ones) and compares it against non-tiled
drawing of the same filters. Fixing this test revealed that tile and
matrix convolution filters had no onFilterBounds() traversals
(test-driven development FTW). Tile requires (conservatively) the
bounds to include the whole source rect, since it may end up in the
result. Matrix convolution requires the bounds to be offset by the
kernel size and target.

R=reed@google.com
BUG=skia:

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14432 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-29 15:20:39 +00:00
reed@google.com
daaafa6e81 add asAShadowBlur for android to drawlooper
BUG=skia:
R=djsollen@google.com, scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14431 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-29 15:20:16 +00:00
commit-bot@chromium.org
19bce5fc4b add SK_API to include/record
Failed builders https://codereview.chromium.org/225023031/ at PS 24 look like they're failing because we're not exposing these symbols when Skia's a dynamic library.

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14425 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-28 21:04:32 +00:00
commit-bot@chromium.org
e396455d2d move common blur types into central header
BUG=skia:
R=scroggo@google.com, djsollen@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14411 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-28 16:25:35 +00:00
commit-bot@chromium.org
9c9005a347 Move SkShader::fLocalMatrix into SkShader constructor.
As a first step towards removing SkShader::setLocalMatrix, which will make
SkShader thread-safe, remove calls to setLocalMatrix that happen immediately
after the shader is being created. Instead, pass the matrix into the constructor
or factory method.

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

Author: dominikg@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14401 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-28 14:55:39 +00:00
commit-bot@chromium.org
f672cead70 teach TSAN about SkSpinlock, SkRefCnt, and SkOnce
BUG=skia:

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

NOTRY=true
NOTREECHECKS=true

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

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14390 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-27 19:21:51 +00:00
commit-bot@chromium.org
a537627f06 Revert of teach TSAN about SkSpinlock, SkRefCnt, and SkOnce (https://codereview.chromium.org/247813005/)
Reason for revert:
breaks blink in roll

Original issue's description:
> teach TSAN about SkSpinlock, SkRefCnt, and SkOnce
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14353
>
> NOTRY=true
> NOTREECHECKS=true
>
> Committed: http://code.google.com/p/skia/source/detail?r=14354

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

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14389 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-27 19:14:46 +00:00
commit-bot@chromium.org
f66967243c Use EXT_direct_state_access for path matrix manipulation
Use EXT_direct_state_access for path matrix manipulation when using
NV_path_rendering extension. This makes Chromium command buffer
integration easier, since the current matrix mode does not need to be
exposed as state and fewer function calls and enums are needed.

BUG=chromium:344330
R=bsalomon@google.com

Author: kkinnunen@nvidia.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14374 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-25 06:21:30 +00:00
skia.committer@gmail.com
cc9dbfb1d2 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@14372 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-25 03:05:58 +00:00
commit-bot@chromium.org
e2cb12a82a First pass at GPU veto
As a short term solution this CL collects information during the recording process for use in suitableForGpuRasterization.

BUG=366495
R=bsalomon@google.com, reed@google.com, alokp@chromium.org

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14368 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-24 21:53:13 +00:00
commit-bot@chromium.org
d70fa2013a Deprecate SaveFlags use in the public SkCanvas API.
Because we still have internal users for now (to support the deprecated
mode), this CL introduces an external-only variant of deprecation.

Chromium is no longer using the deprecated methods, but Android may need
to suppress SK_ATTR_EXTERNALLY_DEPRECATED warnings.

R=reed@google.com, robertphillips@google.com, scroggo@google.com, bungeman@google.com, mtklein@google.com

Author: fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14367 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-24 21:51:58 +00:00
commit-bot@chromium.org
d0306a1593 Revert of Add nanosecond timer. (https://codereview.chromium.org/250243002/)
Reason for revert:
breaks EVERYTHING

Original issue's description:
> Add nanosecond timer.
>
> I've been finding it hard to get enough resolution out of our existing timers when measuring really tiny pictures.
>
> BUG=skia:2378
>
> Committed: http://code.google.com/p/skia/source/detail?r=14362

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

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14364 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-24 20:17:24 +00:00
commit-bot@chromium.org
74b43a9d4c Add nanosecond timer.
I've been finding it hard to get enough resolution out of our existing timers when measuring really tiny pictures.

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14362 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-24 20:04:20 +00:00
commit-bot@chromium.org
76a3b2abd0 Remove support for inheriting the paint color from SkColorShader
BUG=skia:2453
R=reed@google.com, mtklein@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14355 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-24 16:54:46 +00:00
commit-bot@chromium.org
6d4e90a2d4 teach TSAN about SkSpinlock, SkRefCnt, and SkOnce
BUG=skia:

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

NOTRY=true
NOTREECHECKS=true
R=bsalomon@google.com, bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14354 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-24 15:40:46 +00:00
commit-bot@chromium.org
1d24eb20e7 teach TSAN about SkSpinlock, SkRefCnt, and SkOnce
BUG=skia:
R=bsalomon@google.com, bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14353 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-24 15:33:54 +00:00
commit-bot@chromium.org
732bd66ac2 Rearrange SkRecord public API to fit better with cc/resources/picture
BUG=skia:2378
R=reed@google.com, danakj@chromium.org, enne@chromium.org, mtklein@google.com, robertphillips@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14351 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-24 15:22:55 +00:00
skia.committer@gmail.com
b0430d0245 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@14346 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-24 03:05:07 +00:00
senorblanco@chromium.org
a49c0a540c Add a missing SK_API to SkImageFilter::Cache.
TBR=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14343 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-23 23:07:00 +00:00
commit-bot@chromium.org
8f831f262f First step in pulling SkPicturePlayback & SkPictureRecord out of SkPicture
This CL begins the process of making SkPicturePlayback & SkPictureRecord independent of SkPicture. It just moves the PathHeap into SkPicture to get a feel for where all this is going to lead.

Some items of note:

SkTimedPicture (debugger/QT) should wind up being just an SkPicturePlayback-derived object.

All the flattening & unflattening should migrate out of SkPicturePlayback and into SkPicture.

SkPicture::initForPlayback should eventually become something just SkPictureRecorder::endRecording calls.

SkPicture is passed into SkPicturePlayback's & SkPictureRecord's constructors. SkPicturePlayback only
holds onto a "const SkPicture*". The SkPicturePlayback:: CreateFromStream & CreateFromBuffer methods pass a non-const
SkPicture* down the call stack.

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14341 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-23 22:35:42 +00:00
commit-bot@chromium.org
0a6fe71f1b Use fixed function pipeline only when drawing paths
Use fixed function pipeline only when drawing paths. Previously FF
vertex shader was used when drawing normal geometry if path rendering
was enabled.

This is required to make Chromium integration easier. This way
fixed function vertex shading, including vertexshader-less programs,
need not be implemented in the Chromium command buffer.

Removes FF TexGen functionality, as it is not used anymore. Likewise
removes the fixedFunctionSupport GL capability flag.

BUG=chromium:344330
R=bsalomon@google.com

Author: kkinnunen@nvidia.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14334 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-23 19:26:26 +00:00
commit-bot@chromium.org
f117781362 fix size_t/int warnings
BUG=skia:
R=mtklein@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14332 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-23 19:19:44 +00:00
commit-bot@chromium.org
3adcc34033 stop using deprecated bitmap::config for gpu
BUG=skia:
R=bsalomon@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14330 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-23 19:18:09 +00:00
commit-bot@chromium.org
87fcd95019 Revert of Revert of Extract most of the mutable state of SkShader into a separate Context object. (https://codereview.chromium.org/249643002/)
Reason for revert:
Chromium side change landed along side DEPS roll that includes r14323.

Original issue's description:
> Revert of Extract most of the mutable state of SkShader into a separate Context object. (https://codereview.chromium.org/207683004/)
>
> Reason for revert:
> This is blocking the DEPS roll into Chromium. Failures can be seen here:
>
> http://build.chromium.org/p/tryserver.chromium/builders/android_dbg/builds/174333
>
> Original issue's description:
> > Extract most of the mutable state of SkShader into a separate Context object.
> >
> > SkShader currently stores some state during draw calls via setContext(...).
> > Move that mutable state into a separate SkShader::Context class that is
> > constructed on demand for the duration of the draw.
> >
> > Calls to setContext() are replaced with createContext() which returns a context
> > corresponding to the shader object or NULL if the parameters to createContext
> > are invalid.
> >
> > TEST=out/Debug/dm
> > BUG=skia:1976
> >
> > Committed: http://code.google.com/p/skia/source/detail?r=14216
> >
> > Committed: http://code.google.com/p/skia/source/detail?r=14323
>
> TBR=scroggo@google.com,skyostil@chromium.org,tomhudson@chromium.org,senorblanco@chromium.org,reed@google.com,bungeman@google.com,dominikg@chromium.org
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:1976
>
> Committed: http://code.google.com/p/skia/source/detail?r=14326

R=scroggo@google.com, skyostil@chromium.org, tomhudson@chromium.org, senorblanco@chromium.org, reed@google.com, bungeman@google.com, dominikg@chromium.org
TBR=bungeman@google.com, dominikg@chromium.org, reed@google.com, scroggo@google.com, senorblanco@chromium.org, skyostil@chromium.org, tomhudson@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:1976

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14328 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-23 19:10:51 +00:00
commit-bot@chromium.org
6e5671d8c9 Revert of Extract most of the mutable state of SkShader into a separate Context object. (https://codereview.chromium.org/207683004/)
Reason for revert:
This is blocking the DEPS roll into Chromium. Failures can be seen here:

http://build.chromium.org/p/tryserver.chromium/builders/android_dbg/builds/174333

Original issue's description:
> Extract most of the mutable state of SkShader into a separate Context object.
>
> SkShader currently stores some state during draw calls via setContext(...).
> Move that mutable state into a separate SkShader::Context class that is
> constructed on demand for the duration of the draw.
>
> Calls to setContext() are replaced with createContext() which returns a context
> corresponding to the shader object or NULL if the parameters to createContext
> are invalid.
>
> TEST=out/Debug/dm
> BUG=skia:1976
>
> Committed: http://code.google.com/p/skia/source/detail?r=14216
>
> Committed: http://code.google.com/p/skia/source/detail?r=14323

R=scroggo@google.com, skyostil@chromium.org, tomhudson@chromium.org, senorblanco@chromium.org, reed@google.com, bungeman@google.com, dominikg@chromium.org
TBR=bungeman@google.com, dominikg@chromium.org, reed@google.com, scroggo@google.com, senorblanco@chromium.org, skyostil@chromium.org, tomhudson@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:1976

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14326 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-23 16:16:55 +00:00
commit-bot@chromium.org
6e332f768f Revert of eliminate config param -- it was always self's config (https://codereview.chromium.org/246513002/)
Reason for revert:
Causes some layout_test failures around texture backed bitmaps. Test names and crash logs accessible via: https://storage.googleapis.com/chromium-layout-test-archives/linux_layout/13845/layout-test-results/results.html



Original issue's description:
> eliminate config param -- it was always self's config
>
> BUG=skia:
> R=bsalomon@google.com
>
> Committed: https://code.google.com/p/skia/source/detail?r=14303

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

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14324 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-23 14:52:14 +00:00
commit-bot@chromium.org
bc2f1dc85e Extract most of the mutable state of SkShader into a separate Context object.
SkShader currently stores some state during draw calls via setContext(...).
Move that mutable state into a separate SkShader::Context class that is
constructed on demand for the duration of the draw.

Calls to setContext() are replaced with createContext() which returns a context
corresponding to the shader object or NULL if the parameters to createContext
are invalid.

TEST=out/Debug/dm
BUG=skia:1976

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

R=scroggo@google.com, skyostil@chromium.org, tomhudson@chromium.org, senorblanco@chromium.org, reed@google.com, bungeman@google.com

Author: dominikg@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14323 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-23 09:11:58 +00:00
reed@google.com
e0d9ce890e Make drawText calls non-virtual, to ease SkFont and TextBlob (https://codereview.chromium.org/243853006/)"
associated chrome change (to be committed with DEPS roll)
https://codereview.chromium.org/248693002/

This reverts commit bfaceb53f58c9625b5471fcff35b5ca9ca3ae29c.

TBR=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14321 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-23 04:00:17 +00:00
commit-bot@chromium.org
60b5dce199 expose CGImage -> SkBitmap
BUG=skia:
R=scroggo@google.com, halcanary@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14315 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-22 20:24:33 +00:00
commit-bot@chromium.org
945ec3a2be Revert of make drawText calls non-virtual, to ease SkFont and TextBlob (https://codereview.chromium.org/243853006/)
Reason for revert:
need to test more the code-path where we don't opt into the new virtuals

Original issue's description:
> make drawText calls non-virtual, to ease SkFont and TextBlob
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14307

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

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14314 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-22 20:07:30 +00:00
commit-bot@chromium.org
4325d114a5 make drawText calls non-virtual, to ease SkFont and TextBlob
BUG=skia:
R=robertphillips@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14307 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-22 19:03:02 +00:00
reed@google.com
dcacd5fd5a eliminate config param -- it was always self's config
BUG=skia:
R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14303 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-22 18:22:30 +00:00
commit-bot@chromium.org
aec143824c Add asADash entry point into SkPathEffect to allow extracting Dash info from PathEffects
BUG=skia:
R=bsalomon@google.com, reed@google.com

Author: egdaniel@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14297 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-22 15:21:18 +00:00
commit-bot@chromium.org
02a094c3aa SK_API-export SkBBHFactory & friends.
R=reed@google.com, robertphillips@google.com

Author: fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14295 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-22 13:33:16 +00:00
commit-bot@chromium.org
6b4aaa77dc add optional origin parameter to accessTopLayerPixels
BUG=skia:
R=bsalomon@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14290 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-21 21:09:38 +00:00
commit-bot@chromium.org
2c4e75cc3c Remove offset to SkMallocPixelRef::NewWithData - use SkData::NewSubset instead.
R=scroggo@google.com, mtklein@google.com, reed@google.com

Author: halcanary@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14289 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-21 21:08:14 +00:00
commit-bot@chromium.org
855e88edfa Fixes for SkPictureShader.
Update comment in header to make it more clear that the picture
should be unaltered after creating the shader. We want our shaders
to be immutable, and this supports that.

Make the factory return NULL if the shader would have never drawn
anyway i.e. for a null picture or picture with no width/height.

Addresses comments I brought up in
https://codereview.chromium.org/221923007/#msg16.

BUG=skia:1976
R=reed@google.com, fmalita@chromium.org, robertphillips@google.com

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14288 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-21 19:33:12 +00:00
commit-bot@chromium.org
44d83c1e81 Add flipped gradient branch to two point conical gradient
BUG=skia:

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

R=bsalomon@google.com

Author: egdaniel@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14271 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-21 13:10:25 +00:00
skia.committer@gmail.com
f7927dd607 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@14270 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-20 03:04:55 +00:00
commit-bot@chromium.org
0f1fef834c inline SkMulDiv now that 64bit mul is inlineable
TBR=caryclark@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14268 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-19 22:12:35 +00:00
robertphillips@google.com
770963f23f Staging for cleanup of SkPicture-related headers
https://codereview.chromium.org/243173002



git-svn-id: http://skia.googlecode.com/svn/trunk@14258 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-18 18:04:41 +00:00
skia.committer@gmail.com
60bd7519a9 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@14252 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-18 03:03:54 +00:00
commit-bot@chromium.org
5fb2ce38b3 Staged removal of SkPicture-derived classes
This CL removes the SkPicture-derived classes (with a flag to keeps clients working). In the process it also lightens the recording factory function so it is no longer ref counted).

The only interesting bits are in SkPicture* and Sk*Picture.*

R=reed@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14251 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-17 23:35:06 +00:00
commit-bot@chromium.org
53783b026a Revert of Extract most of the mutable state of SkShader into a separate Context object. (https://codereview.chromium.org/207683004/)
Reason for revert:
Causing memory leaks in Chromium.

Original issue's description:
> Extract most of the mutable state of SkShader into a separate Context object.
>
> SkShader currently stores some state during draw calls via setContext(...).
> Move that mutable state into a separate SkShader::Context class that is
> constructed on demand for the duration of the draw.
>
> Calls to setContext() are replaced with createContext() which returns a context
> corresponding to the shader object or NULL if the parameters to createContext
> are invalid.
>
> TEST=out/Debug/dm
> BUG=skia:1976
>
> Committed: http://code.google.com/p/skia/source/detail?r=14216

R=scroggo@google.com, skyostil@chromium.org, tomhudson@chromium.org, senorblanco@chromium.org, reed@google.com, dominikg@chromium.org
TBR=dominikg@chromium.org, reed@google.com, scroggo@google.com, senorblanco@chromium.org, skyostil@chromium.org, tomhudson@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:1976

Author: bungeman@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14247 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-17 21:09:49 +00:00
bungeman@google.com
ec2d8b37b0 Revert r14218.
git-svn-id: http://skia.googlecode.com/svn/trunk@14246 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-17 21:09:00 +00:00
commit-bot@chromium.org
cc277b729b Orphan ProcXfermode, with an eye towards removing it
BUG=skia:
R=scroggo@google.com, mtklein@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14238 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-17 15:19:32 +00:00
commit-bot@chromium.org
7518ff2d7e Revert of Add flipped gradient branch to two point conical gradient (https://codereview.chromium.org/227623004/)
Reason for revert:
Breaking all CompareGMs

Original issue's description:
> Add flipped gradient branch to two point conical gradient
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14235

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

Author: egdaniel@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14236 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-17 13:57:31 +00:00
commit-bot@chromium.org
cf41935735 Add flipped gradient branch to two point conical gradient
BUG=skia:
R=bsalomon@google.com, mtklein@google.com

Author: egdaniel@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14235 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-17 13:28:06 +00:00
skia.committer@gmail.com
667b98d947 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@14234 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-17 03:05:10 +00:00
robertphillips@google.com
8121c6cb70 Reverting r14225 (Fix SK_SUPPORT_DEPRECATED_RECORD_FLAGS handling - https://codereview.chromium.org/237673017/) due to compiler complaints
git-svn-id: http://skia.googlecode.com/svn/trunk@14226 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-16 17:10:12 +00:00
robertphillips@google.com
a387db2905 Fix SK_SUPPORT_DEPRECATED_RECORD_FLAGS handling
https://codereview.chromium.org/237673017/



git-svn-id: http://skia.googlecode.com/svn/trunk@14225 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-16 17:00:05 +00:00
commit-bot@chromium.org
39426e2bcc read/write function_ptrs as just void*, and not as 'array of bytes'
BUG=skia:
R=mtklein@google.com, bungeman@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14224 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-16 16:24:08 +00:00
commit-bot@chromium.org
d393b17cf3 Retract SkPicture::kOptimizeForClippedPlayback_RecordingFlag from public API
This CL sets the stage for retracting the SkPicture::kOptimizeForClippedPlayback_RecordingFlag flag
from the public API (more work needs to be done in Blink & Chrome). In the new world the only way
to set this flag (and thus instantiate an SkPicture-derived
class) is by passing a factory to the SkPictureRecorder class. This is to get all clients always using
factories so that we can then change the factory call used (i.e., so the factory just creates a BBH) and
do away with the SkPicture-derived classes.

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14221 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-16 16:02:10 +00:00
reed@google.com
0fcd6ca4e0 fix #if SK_DEBUG -- should be #ifdef SK_DEBUG
git-svn-id: http://skia.googlecode.com/svn/trunk@14218 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-16 13:44:43 +00:00
commit-bot@chromium.org
85faf50875 remove legacy filter-flags, and store FilterLevel directly
BUG=skia:
R=robertphillips@google.com, humper@google.com, jvanverth@google.com, mtklein@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14217 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-16 12:58:02 +00:00
commit-bot@chromium.org
001f4ed2fb Extract most of the mutable state of SkShader into a separate Context object.
SkShader currently stores some state during draw calls via setContext(...).
Move that mutable state into a separate SkShader::Context class that is
constructed on demand for the duration of the draw.

Calls to setContext() are replaced with createContext() which returns a context
corresponding to the shader object or NULL if the parameters to createContext
are invalid.

TEST=out/Debug/dm
BUG=skia:1976
R=scroggo@google.com, skyostil@chromium.org, tomhudson@chromium.org, senorblanco@chromium.org, reed@google.com, bungeman@google.com

Author: dominikg@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14216 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-16 10:16:39 +00:00
bungeman@google.com
51b0d0bc5c Add cast for warning as error on Windows from r14201.
git-svn-id: http://skia.googlecode.com/svn/trunk@14202 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 16:08:29 +00:00
bungeman@google.com
d3fbd34099 Fix size of rotated text with FreeType.
This generalizes and shares the solution found for a similar issue with
GDI. The issue is that the text size is applied early, and the rest of
the transformation late. This allows us to isolate and independently
control the text size from the rest of the transformation.

R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14201 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 15:52:07 +00:00
commit-bot@chromium.org
73cb15351f Make sure SkDrawLooper objects can only be allocated on the heap.
Make constructors of SkLayerDrawLooper and SkBlurDrawLooper non-public.
Remove addLayer* methods from SkLayerDrawLooper. SkLayerDrawLooper::Builder is
used to create new objects.
Provide factory method for creating SkBlurDrawLooper.

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

Author: dominikg@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14200 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 15:48:36 +00:00
commit-bot@chromium.org
beb8b3a4da Add GL_CHROMIUM_map_sub functions to GrGLInterface and bit to GrGLCaps.
BUG=skia:2402
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14199 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 15:37:51 +00:00
commit-bot@chromium.org
762cd80437 Move distance field generation to the glyph cache.
Distance fields are currently created in GrTextStrike, which is the wrong place. This moves that to the glyph cache where it belongs.

As part of my testing, I found that when we fall back to paths in the GrDistanceFieldTextContext it was not scaling them properly, so that's fixed in here too.

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

Author: jvanverth@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14193 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 22:05:07 +00:00
commit-bot@chromium.org
b17a24fedb SkRecord: turn on cull annotation pass in public API.
Also, switch Skia internal tools over to use the public headers where
possible.  Where it's not, the tools -Isrc/record explicitly now, and
if it's not obvious, note why they don't use SkRecording.h.

BUG=skia:2378
R=reed@google.com, mtklein@google.com, fmalita@chromium.org

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14191 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 20:33:05 +00:00
commit-bot@chromium.org
4431e7757c Mike R: please sanity check SkPostConfig.h
Mike K: please sanity check Test.cpp and skia_test.cpp

Feel free to look at the rest, but I don't expect any in depth review of path ops innards.

Path Ops first iteration used QuickSort to order segments radiating from an intersection to compute the winding rule.

This revision uses a circular sort instead. Breaking out the circular sort into its own long-lived structure (SkOpAngle) allows doing less work and provides a home for caching additional sorting data.

The circle sort is more stable than the former sort, has a robust ordering and fewer exceptions. It finds unsortable ordering less often. It is less reliant on the initial curve  tangent, using convex hulls instead whenever it can.

Additional debug validation makes sure that the computed structures are self-consistent. A new visualization tool helps verify that the angle ordering is correct.

The 70+M tests pass with this change on Windows, Mac, Linux 32 and Linux 64 in debug and release.

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

Author: caryclark@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14183 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 17:08:59 +00:00
senorblanco@chromium.org
1a479e7547 Allow clients to specify an external SkImageFilter cache.
This change allows external callers to substitute their own
SkImageFilter cache for the default intra-frame cache in Skia. This
allows the caller to perform inter-frame caching for example, by the
maintaining a persistent cache between frames and doing custom
invalidation.

R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14181 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 15:51:48 +00:00
commit-bot@chromium.org
5d0b150257 resize canvas for GM + typo
This change resized the canvas for some GM cases. It is better to show the visual difference in viewer.html for these cases after the CL applied.

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

Author: yunchao.he@intel.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14177 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 15:02:19 +00:00
skia.committer@gmail.com
5199701acb Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@14172 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 03:04:57 +00:00
robertphillips@google.com
84b18c7e3e split SkPictureRecorder out of SkPicture
https://codereview.chromium.org/214953003/



git-svn-id: http://skia.googlecode.com/svn/trunk@14171 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-13 19:09:42 +00:00
commit-bot@chromium.org
f7efa502d6 Implement intra-frame cacheing in image filters.
When image filters are processed within Skia, they simply do
a blind recursion. This has the side-effect of turning the
DAG into a tree. I.e., nodes visited more than once during
the traversal will be processed more than once.

This change implements a very simple cacheing scheme: a
cache is created before traversing the DAG, and handed
into the processing traversal. Before recursing into a child
in SkImageFilter::filterImage(), the cache is checked for a
hit, and early-out is performed. Otherwise, the node is
processed, and its result bitmap and location (offset) are
cached, but only if it contains two or more children and
thus will be visited again during the traversal.

Currently, the child count is approximated with the
refcount. This is good enough in most cases (and exactly
correct for the Chrome use case). We could add an exact
child count to the image filter, but this will require
violating the immutability of image filters slightly in
order to bump the child count as nodes are connected. I
leave it up to the reviewer to decide which is better.

R=reed@google.com

Author: senorblanco@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14160 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 18:57:00 +00:00
commit-bot@chromium.org
cae54f1f21 remove picture-backed surfaces
BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14159 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 18:34:35 +00:00
commit-bot@chromium.org
c4b21e6c03 Mark our territory with (C).
BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14158 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 18:33:31 +00:00
commit-bot@chromium.org
28fcae2ec7 Revert of Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/234243002/)
Reason for revert:
Want to reland the original CL.

Original issue's description:
> Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/227433009/)
>
> Reason for revert:
> breaking the Chrome deps roll.
> http://build.chromium.org/p/chromium.linux/builders/Linux%20GN%20%28dbg%29/builds/839/steps/compile/logs/stdio
>
> Original issue's description:
> > Rename kPMColor_SkColorType to kN32_SkColorType.
> >
> > The new name better represents what this flag means.
> >
> > BUG=skia:2384
> >
> > Committed: http://code.google.com/p/skia/source/detail?r=14117
>
> TBR=reed@google.com,scroggo@google.com
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:2384
>
> Committed: http://code.google.com/p/skia/source/detail?r=14144

R=reed@google.com, bensong@google.com
TBR=bensong@google.com, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2384

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14156 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 17:15:40 +00:00
commit-bot@chromium.org
c873329ae9 Update bench to be able to preprocess skps
This allows benchmarking of optimization improvements and plumbs in the purging API. The purging is necessary so we don't magically get faster because the saveLayers are always pre-generated.

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14154 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 15:54:14 +00:00
commit-bot@chromium.org
96edc24598 Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/227433009/)
Reason for revert:
Chrome's side of define changes not easy to figure out quickly. Reverting this for DEPS roll for now.

Original issue's description:
> Rename kPMColor_SkColorType to kN32_SkColorType.
>
> The new name better represents what this flag means.
>
> BUG=skia:2384
>
> Committed: http://code.google.com/p/skia/source/detail?r=14117

R=reed@google.com, scroggo@google.com
TBR=reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2384

Author: bensong@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14149 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 13:47:30 +00:00
commit-bot@chromium.org
18fd2b923a Add a focused public API for src/record.
BUG=skia:2378
R=reed@google.com, robertphillips@google.com, mtklein@google.com, fmalita@chromium.org

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14146 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-10 23:30:59 +00:00
commit-bot@chromium.org
d923288e50 Revert of Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/234243002/)
Reason for revert:
fixes on the chrome side are landing (brettw), keep fingers crossed.

Original issue's description:
> Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/227433009/)
>
> Reason for revert:
> breaking the Chrome deps roll.
> http://build.chromium.org/p/chromium.linux/builders/Linux%20GN%20%28dbg%29/builds/839/steps/compile/logs/stdio
>
> Original issue's description:
> > Rename kPMColor_SkColorType to kN32_SkColorType.
> >
> > The new name better represents what this flag means.
> >
> > BUG=skia:2384
> >
> > Committed: http://code.google.com/p/skia/source/detail?r=14117
>
> TBR=reed@google.com,scroggo@google.com
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:2384
>
> Committed: http://code.google.com/p/skia/source/detail?r=14144

R=reed@google.com, scroggo@google.com
TBR=reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2384

Author: bensong@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14145 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-10 22:49:20 +00:00
commit-bot@chromium.org
757ebd20ef Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/227433009/)
Reason for revert:
breaking the Chrome deps roll.
http://build.chromium.org/p/chromium.linux/builders/Linux%20GN%20%28dbg%29/builds/839/steps/compile/logs/stdio

Original issue's description:
> Rename kPMColor_SkColorType to kN32_SkColorType.
>
> The new name better represents what this flag means.
>
> BUG=skia:2384
>
> Committed: http://code.google.com/p/skia/source/detail?r=14117

R=reed@google.com, scroggo@google.com
TBR=reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2384

Author: bensong@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14144 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-10 22:36:34 +00:00
bungeman@google.com
4770a3b7a2 Clean up the default gamma settings.
This makes it a compile error to specify both SK_GAMMA_EXPONENT
and SK_GAMMA_SRGB. It also ensures that SK_GAMMA_EXPONENT will
be set consistently.

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14143 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-10 22:26:29 +00:00
commit-bot@chromium.org
6573ce70e6 Create SkLayerRasterizer w/o destroying Builder.
Add a new method to SkLayerRasterizer::Builder that creates a new
SkLayerRasterizer without destroying the Builder. Necessary to
continue to support Android's API.

Also fix a bug where creating a Builder and never calling
detachRasterizer results in not calling the destructor for any SkPaints
in the Builder.

Add tests.

BUG=b/13729784
R=reed@google.com, dominikg@chromium.org

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14139 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-10 20:42:53 +00:00
commit-bot@chromium.org
2f569980c9 Add MakeEmpty to GrIRect16
The GrLayerCache will use this capability.

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14136 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-10 18:36:19 +00:00
mtklein@google.com
e4a4f12bb5 Real fix for SK_API / Windows shared lib problems.
Ben reviewed this over my shoulder, and we tested on his machine.


git-svn-id: http://skia.googlecode.com/svn/trunk@14122 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-09 22:54:57 +00:00
commit-bot@chromium.org
0a09d7195b Implement drawDRRect for GPU
BUG=skia:2259
R=jvanverth@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14118 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-09 21:26:11 +00:00
commit-bot@chromium.org
149e9a107c Rename kPMColor_SkColorType to kN32_SkColorType.
The new name better represents what this flag means.

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

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14117 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-09 20:45:29 +00:00
commit-bot@chromium.org
4460e75bc7 Define SK_CPU_X86 on x86 machines.
Use this to only register flattening for SkSSE2ProcCoeffXfermode::CreateProc when it's linked.

BUG=skia:

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14108 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-09 16:50:55 +00:00
skia.committer@gmail.com
e1d9443758 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@14102 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-09 03:04:11 +00:00
reed@google.com
bafee11dd1 fix warning by removing padding field
git-svn-id: http://skia.googlecode.com/svn/trunk@14093 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-08 15:29:10 +00:00
commit-bot@chromium.org
c5d9bb0f67 Initial picture shader implementation
This CL adds an SkPictureShader class to support SkPicture-based
patterns.

The implementation renders the picture into an SkBitmap tile and then
delegates to SkBitmapProcShader for the actual operation.

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

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

Author: fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14092 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-08 15:19:34 +00:00
reed@google.com
43c27586e8 WIP -- SkFont
BUG=skia:
R=bungeman@google.com, fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14090 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-08 15:04:29 +00:00
fmalita@google.com
667240a2e8 Relax the assert in SkReadBuffer::setPictureVersion().
I'm hitting this with SkPictureShader serialization because there can be
multiple pictures deserialized from the same buffer.

I think we can relax the assert to allow setting the same version
multiple times.

(Alternatively, we could guard all the callers - but since setting the
same version is a no-op, that seems overkill)

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14089 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-08 14:11:26 +00:00
commit-bot@chromium.org
8865d09cf8 Revert of Initial picture shader implementation (https://codereview.chromium.org/221923007/)
Reason for revert:
breaking the buildbots. Subsequent CL only addressed CompareGMs but GenerateGMs are also failing.

Original issue's description:
> Initial picture shader implementation
>
> This CL adds an SkPictureShader class to support SkPicture-based
> patterns.
>
> The implementation renders the picture into an SkBitmap tile and then
> delegates to SkBitmapProcShader for the actual operation.
>
> R=reed@google.com,robertphillips@google.com,bsalomon@google.com
>
> Committed: http://code.google.com/p/skia/source/detail?r=14085

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

Author: bensong@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14087 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-07 23:45:31 +00:00
commit-bot@chromium.org
592b2d13c9 Initial picture shader implementation
This CL adds an SkPictureShader class to support SkPicture-based
patterns.

The implementation renders the picture into an SkBitmap tile and then
delegates to SkBitmapProcShader for the actual operation.

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

Author: fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14085 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-07 23:11:45 +00:00
commit-bot@chromium.org
fc94829337 remove SK_SUPPORT_LEGACY_COMPATIBLEDEVICE_CONFIG
remove SK_SUPPORT_LEGACY_GETDEVICECAPABILITIES

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

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14083 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-07 21:33:06 +00:00
commit-bot@chromium.org
e3beb6bd7d SkNonCopyable should be used with private inheritance.
This is mostly s/public SkNoncopyable/SkNoncopyable/g.

Two classes (SkDrawLooper::Context and SkPicture::OperationList) don't actually work with SkNoncopyable because they introduce a virtual destructor.  I added SkNoncopyableVirtual to make them work as intended.  Sort of questionable whether they really need to be noncopyable in the first place, but I guess it doesn't hurt to keep the behavior the same.

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14081 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-07 19:34:38 +00:00
commit-bot@chromium.org
2b4e370a2f Convert SkPicture's generation ID to a unique ID
This CL addresses linger code review comments on r14037 (Add generation ID to SkPicture https://codereview.chromium.org/222683002/)

R=reed@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14079 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-07 18:26:22 +00:00
commit-bot@chromium.org
b554440543 Remove SkResizeImageFilter.
Its functionality has been subsumed by SkMatrixImageFilter, and it's no longer
used in Blink.

BUG=skia:
R=bsalomon@google.com

Author: senorblanco@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14073 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-07 15:11:08 +00:00
commit-bot@chromium.org
622eda7373 Remove deprecated function.
We have switched Android to call decodeSubset, so this function
is no longer necessary.

R=reed@google.com

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14072 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-07 14:00:31 +00:00
commit-bot@chromium.org
d01ec71f9c Revert to old behavior regarding SK_CPU_ARM and update documentation around SK_CPU_ARM64 on iOS.
R=robertphillips@google.com

Author: djsollen@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14057 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-03 23:39:46 +00:00
djsollen@google.com
b6779439c4 Fix ios build in chromium when targeting multiple architectures
R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14048 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-03 17:50:01 +00:00
commit-bot@chromium.org
8ec45cede9 Add more big endian platforms
This patch adds more platforms to the list that have the BIGENDIAN defines set.

Downstream users are using parts of SKIA on BigEndian machines.

R=cmp@chromium.org, bungeman@google.com, bsalomon@google.com, reed@google.com, sergeyberezin@chromium.org

Author: steve@ssinger.info

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14046 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-03 16:38:01 +00:00
skia.committer@gmail.com
a9157727f7 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@14039 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-03 03:04:26 +00:00
robertphillips@google.com
e930a07562 Add a GrLayerCache to GrContext
https://codereview.chromium.org/217343006/



git-svn-id: http://skia.googlecode.com/svn/trunk@14038 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-03 00:34:27 +00:00
robertphillips@google.com
d5500886a2 Add generation ID to SkPicture
https://codereview.chromium.org/222683002/



git-svn-id: http://skia.googlecode.com/svn/trunk@14037 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-02 23:51:13 +00:00
commit-bot@chromium.org
51a11b7f2f Arithmetic mode now has the option of not validating the output color, which will allow multiple arithmetic operations to be done sequentially, without intermediate clamping. This is required for mimicking blink's current behavior.
BUG=skia:
R=senorblanco@google.com, senorblanco@chromium.org, reed@google.com, bsalomon@google.com

Author: sugoi@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14031 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-02 19:32:15 +00:00
commit-bot@chromium.org
6f2d4d4679 ARM Skia NEON patches - 35 - First AArch64 support
Aarch64 support

This change contains the necessary modifications to have Skia build and
run properly on an ARMv8 processor in aarch64 execution state.

Here's a list of the changes:

 - add an arm64 target to the build system + SK_CPU_ARM64 flag

 - MatrixTest was failing when built in Release mode. Fused MAC
   instructions were generated which made some intermediate results
   more accurate. As the test relies on result comparison, the more
   precise results when compared to others led to a gap bigger than
   what was tolerated. As I don't know if some actual skia code relies
   on results being comparable, I've disabled fused MAC instruction
   with -ffp-contract=off for arm64.

 - Modify include/core/SkOnce.h to have barriers work.

 - SK_CPU_ARM64 implies SK_ARM_NEON_MODE_ALWAYS.

 - use existing Xfermode optimisations with modifications that can be
   removed in the future when toolchains are ready. Also save a few
   instructions is two Xfermodes (will apply to ARM too).

 - use existing SkBoxBlur and SkMorphology optimisations.

 - use existing SkBlitMask optimisations

 - use existing BitmapProcState and Convolution optimisations.

Future changes will include:

 - Blitters (only partialy merged upstream)

 - SkUtils (there's little value in sending asm optimisations without
   having them benchmarked on real hardware).

Signed-off-by: Kevin PETIT <kevin.petit@arm.com>

BUG=skia:

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

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

Author: kevin.petit@arm.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14025 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-02 15:03:56 +00:00
skia.committer@gmail.com
c282ba85ba Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@14021 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-02 03:05:59 +00:00
senorblanco@chromium.org
ee845ae494 Fix SkXfermodeImageFilter when an input is cropped out.
If one of inputs to SkXfermodeImageFilter draws nothing, either due to
it being cropped out upstream, or within the filter itself, the filter
should still draw the other input, since otherwise the result will be incorrect.

For the GPU path, since we can't detect this case in
canFilterImageGPU() without recursing, we'll just drop to
the generic path if either input is empty, since we can't use the effect in that case anyway.

While we're at it, let's drop to the generic path if the
xfermode can't be expressed as an effect, since the code
here was doing a 2-pass render in that case anyway, which
is equivalent to what the (xfermode == NULL) case was doing
anyway.

R=bsalomon@google.com, sugoi@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14016 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-01 19:15:23 +00:00
commit-bot@chromium.org
53e1e4d88a Minor changes to GrFontCache system.
The main change is parameterizing the GrAtlasMgr so it can have a different sized backing texture and a different number of plots. This is in support of the saveLayer cache which has a smaller backing texture and only one plot.

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14011 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-01 16:25:11 +00:00
commit-bot@chromium.org
d48ad8e333 Fold SkTSetBit into SkOTSet*Bit.
BUG=b/13729420
R=bungeman@google.com, mtklein@google.com, bsalomon@google.com, reed@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14009 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-01 16:11:53 +00:00
commit-bot@chromium.org
9fbbcca1c9 SkPerlinNoiseShader::CreateTubulenceNoise() is misspelled
Add missing 'r'.

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

Author: siglesias@igalia.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14008 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-01 16:09:37 +00:00
bsalomon@google.com
a34bb60c4e Add GL_ARB_invalidate_subdata functions to GrGLInterface.
BUG=skia:1541
R=egdaniel@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14004 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-01 13:07:29 +00:00
bungeman@google.com
6eddc77f6a Pass the IDWriteFactory instead of relying on a global creator.
There are different variations or implementations of IDWriteFactory
with different behaviors. Allow the user to specify the factory to use.

R=scottmg@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14000 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-31 19:18:07 +00:00
commit-bot@chromium.org
35c03fbf10 Remove scaleToFit from DashPathEffect
BUG=skia:
R=reed@google.com, bsalomon@google.com, scroggo@google.com

Author: egdaniel@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13999 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-31 18:52:51 +00:00
commit-bot@chromium.org
8ddc26b68c Actually identify required saveLayers in SkGpuDevice::EXPERIMENTAL_drawPicture
NOTRY=true
R=bsalomon@google.com, rmistry@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13993 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-31 17:55:12 +00:00
commit-bot@chromium.org
0943f5f58a Thread picture version through to SkReadBuffer.
This will let code outside SkPicture* fork its read code based on the picture version.

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13984 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-28 18:05:47 +00:00
commit-bot@chromium.org
d643a90ee2 Revert of ARM Skia NEON patches - 35 - First AArch64 support (https://codereview.chromium.org/143423004/)
Reason for revert:
GYP's failing on most (all?) bots.

Original issue's description:
> ARM Skia NEON patches - 35 - First AArch64 support
>
> Aarch64 support
>
> This change contains the necessary modifications to have Skia build and
> run properly on an ARMv8 processor in aarch64 execution state.
>
> Here's a list of the changes:
>
>  - add an arm64 target to the build system + SK_CPU_ARM64 flag
>
>  - MatrixTest was failing when built in Release mode. Fused MAC
>    instructions were generated which made some intermediate results
>    more accurate. As the test relies on result comparison, the more
>    precise results when compared to others led to a gap bigger than
>    what was tolerated. As I don't know if some actual skia code relies
>    on results being comparable, I've disabled fused MAC instruction
>    with -ffp-contract=off for arm64.
>
>  - Modify include/core/SkOnce.h to have barriers work.
>
>  - SK_CPU_ARM64 implies SK_ARM_NEON_MODE_ALWAYS.
>
>  - use existing Xfermode optimisations with modifications that can be
>    removed in the future when toolchains are ready. Also save a few
>    instructions is two Xfermodes (will apply to ARM too).
>
>  - use existing SkBoxBlur and SkMorphology optimisations.
>
>  - use existing SkBlitMask optimisations
>
>  - use existing BitmapProcState and Convolution optimisations.
>
> Future changes will include:
>
>  - Blitters (only partialy merged upstream)
>
>  - SkUtils (there's little value in sending asm optimisations without
>    having them benchmarked on real hardware).
>
> Signed-off-by: Kevin PETIT <kevin.petit@arm.com>
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=13980

R=djsollen@google.com, reed@google.com, halcanary@google.com, kevin.petit@arm.com
TBR=djsollen@google.com, halcanary@google.com, kevin.petit@arm.com, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13983 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-28 18:05:29 +00:00
commit-bot@chromium.org
972f9cd7a0 SK_SUPPORT_LEGACY_GRTYPES to hide duplicate types from SkTypes.h
BUG=skia:
R=bsalomon@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13982 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-28 17:58:28 +00:00
commit-bot@chromium.org
7a0e27577d ARM Skia NEON patches - 35 - First AArch64 support
Aarch64 support

This change contains the necessary modifications to have Skia build and
run properly on an ARMv8 processor in aarch64 execution state.

Here's a list of the changes:

 - add an arm64 target to the build system + SK_CPU_ARM64 flag

 - MatrixTest was failing when built in Release mode. Fused MAC
   instructions were generated which made some intermediate results
   more accurate. As the test relies on result comparison, the more
   precise results when compared to others led to a gap bigger than
   what was tolerated. As I don't know if some actual skia code relies
   on results being comparable, I've disabled fused MAC instruction
   with -ffp-contract=off for arm64.

 - Modify include/core/SkOnce.h to have barriers work.

 - SK_CPU_ARM64 implies SK_ARM_NEON_MODE_ALWAYS.

 - use existing Xfermode optimisations with modifications that can be
   removed in the future when toolchains are ready. Also save a few
   instructions is two Xfermodes (will apply to ARM too).

 - use existing SkBoxBlur and SkMorphology optimisations.

 - use existing SkBlitMask optimisations

 - use existing BitmapProcState and Convolution optimisations.

Future changes will include:

 - Blitters (only partialy merged upstream)

 - SkUtils (there's little value in sending asm optimisations without
   having them benchmarked on real hardware).

Signed-off-by: Kevin PETIT <kevin.petit@arm.com>

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

Author: kevin.petit@arm.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13980 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-28 17:56:14 +00:00
commit-bot@chromium.org
28361fad10 Add discard API to SkCanvas, plumb it to glDiscardFramebuffer()
BUG=skia:2349
R=robertphillips@google.com, reed@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13976 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-28 16:08:05 +00:00
commit-bot@chromium.org
4784182993 Revert of Implement text rendering with NVPR (https://codereview.chromium.org/196133014/)
Reason for revert:
This probably caused Win8 test bot fail during gm run:

http://108.170.217.252:10117/builders/Test-Win8-ShuttleA-GTX660-x86-Debug/builds/574

I can not identify any errors from the logs, so maybe it hung or something?

Original issue's description:
> Implement text rendering with NVPR
>
> Use path rendering to render the text from outlines if supported by the
> GPU. Implement this in GrStencilAndCoverTextContext by copying large
> chunks of code from GrBitmapTextContext (drawText) and
> GrDistanceFieldTextContext (drawPosText).
>
> The drawing is implemented with "instanced" path drawing
> functions.
>
> Moves the creation of the "main" text context from SkGpuDevice to the
> GrContext::createTextContext. This is done because the decision of which
> text renderer is optimal can be made only with the internal
> implementation-specific information of the context.
>
> Committed: http://code.google.com/p/skia/source/detail?r=13962

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

Author: kkinnunen@nvidia.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13963 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-27 14:19:17 +00:00
commit-bot@chromium.org
dcb8ef9e86 Implement text rendering with NVPR
Use path rendering to render the text from outlines if supported by the
GPU. Implement this in GrStencilAndCoverTextContext by copying large
chunks of code from GrBitmapTextContext (drawText) and
GrDistanceFieldTextContext (drawPosText).

The drawing is implemented with "instanced" path drawing
functions.

Moves the creation of the "main" text context from SkGpuDevice to the
GrContext::createTextContext. This is done because the decision of which
text renderer is optimal can be made only with the internal
implementation-specific information of the context.

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

Author: kkinnunen@nvidia.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13962 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-27 11:26:10 +00:00
reed@google.com
f20fc24a7d remove all references to legacy Config8888
BUG=skia:
R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13952 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-26 13:44:58 +00:00
senorblanco@chromium.org
fd0ec2c76a Implement a generic matrix transform image filter.
This will be used in Blink to accommodate matrices that contain
rotation or shearing. This is a generalization of SkResizeImageFilter,
so I've replaced all uses of SkResizeImageFilter in Skia. (It might be
easier to review by diffing it with SkResizeImageFilter, too.)

R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13941 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-25 17:35:10 +00:00
commit-bot@chromium.org
d9ea09e1f2 Consolidate SkCanvas matrix virtuals.
Remove didTranslate, didScale, didRotate & didSkew, and rely on
didConcat instead. Subclasses can sniff the matrix type if they want to
differentiate.

(work in progress)

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

Author: fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13940 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-25 17:32:26 +00:00
reed@google.com
7111d463ce Revert "Revert of implement readPixels and writePixels natively, w/o using the (deprecated) (https://codereview.chromium.org/199733016/)"
This reverts commit 9a90bd16dc6756395c422adf0f24560d033ed9ea.

BUG=skia:
R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13939 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-25 16:20:24 +00:00
commit-bot@chromium.org
2a05de0c04 Add Gpu Tracing to Ganesh
BUG=skia:2316
R=bsalomon@google.com, tomhudson@google.com

Author: egdaniel@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13936 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-25 15:17:32 +00:00
commit-bot@chromium.org
231f6b81c2 Revert of implement readPixels and writePixels natively, w/o using the (deprecated) (https://codereview.chromium.org/199733016/)
Reason for revert:
Android bots segfaulting in tests.

Original issue's description:
> implement readPixels and writePixels natively, w/o using the (deprecated)
> SkCanvas::Config8888 enum.
>
> Revert "Revert "hide Config8888 entirely". Broke a bunch of builds."
>
> This reverts commit 763277ba157fef0f651004bb98a189e9f1ac730b.
>
> Needs chrome to remove the READPIXELS guard from skia's .gyp
>
> Committed: https://code.google.com/p/skia/source/detail?r=13931

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

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13932 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-25 13:38:44 +00:00
reed@google.com
1121170477 implement readPixels and writePixels natively, w/o using the (deprecated)
SkCanvas::Config8888 enum.

Revert "Revert "hide Config8888 entirely". Broke a bunch of builds."

This reverts commit 763277ba157fef0f651004bb98a189e9f1ac730b.

Needs chrome to remove the READPIXELS guard from skia's .gyp

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13931 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-25 12:00:30 +00:00
commit-bot@chromium.org
e8807f49ed SkPaint: eliminate some dead bytes in 64-bit build.
+ memcpy-based copy constructor was hiding this gap -> manual copy constructor.
+ Split tests for finer-grained failures.

BUG=skia:

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

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

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13927 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-24 23:03:11 +00:00
commit-bot@chromium.org
75cf29be4d Add new experimental API to SkPicture to get "id" of current op
When gathering information about a picture (in the new SkDevice::EXPERIMENTAL_optimize entry point) it is necessary to be able to correlate the gathered information with the command in the SkPicture (so the information can later be combined with the similarly indexed information from the BBH). This entry point exposes that information to friend classes.

R=reed@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13919 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-24 19:40:49 +00:00
bungeman@google.com
1ba62629f4 Clean up SkOnce usage in SkFontMgr_Indirect.
R=mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13917 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-24 18:38:25 +00:00
bungeman@google.com
d58a856418 Have SkTArray state that it default-initializes.
The current comments in SkTArray lead one to believe that it is default
constructing all types. However, it is not calling the default
constructor for primitive types, it is actually default-initializing.

R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13909 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-24 15:55:01 +00:00
skia.committer@gmail.com
29d3777a82 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13902 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-22 03:02:27 +00:00
bungeman@google.com
c8f0d606e5 Fix r13897.
git-svn-id: http://skia.googlecode.com/svn/trunk@13901 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-22 00:25:34 +00:00
bungeman@google.com
f76cbb8848 Fix r13897.
git-svn-id: http://skia.googlecode.com/svn/trunk@13899 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-21 23:07:24 +00:00
bungeman@google.com
3d21f21cac Fix r13897.
git-svn-id: http://skia.googlecode.com/svn/trunk@13898 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-21 23:00:41 +00:00
bungeman@google.com
72cf4fcafa A remotable font management interface and DirectWrite implementation.
The introduced SkRemotableFontMgr is a font management interface designed for simple and fast proxy support. SkFontMgr_Indirect bridges a SkRemotableFontMgr and a local SkFontMgr to present a SkFontMgr interface.

This change is to be followed by https://codereview.chromium.org/132113015/ and  https://codereview.chromium.org/206693003 .

R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13897 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-21 22:48:32 +00:00
bungeman@google.com
95ebd17cf4 Add removeShuffle to SkTArray and add SkTArray tests.
R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13895 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-21 19:39:02 +00:00
skia.committer@gmail.com
99e5b524ce Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13889 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-21 03:02:42 +00:00
commit-bot@chromium.org
9206da6c9e Revert of SkPaint: eliminate some dead bytes in 64-bit build. (https://codereview.chromium.org/203203003/)
Reason for revert:
Huh, some Android tests are still failing despite the fix.  IntelRhB, Xoom... that's weird.

Original issue's description:
> SkPaint: eliminate some dead bytes in 64-bit build.
>
> + memcpy-based copy constructor was hiding this gap -> manual copy constructor.
> + Split tests for finer-grained failures.
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=13856
>
> Committed: http://code.google.com/p/skia/source/detail?r=13887

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

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13888 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-21 01:40:07 +00:00
commit-bot@chromium.org
f48182b161 SkPaint: eliminate some dead bytes in 64-bit build.
+ memcpy-based copy constructor was hiding this gap -> manual copy constructor.
+ Split tests for finer-grained failures.

BUG=skia:

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

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13887 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-20 23:02:35 +00:00
commit-bot@chromium.org
520cf8b33e Fix cull nesting assertion.
Cull rects are in local coordinates and cannot be compared directly.

No wonder it was so hard enforcing this in Blink :o

This moves the validation logic into SkCanvas, using a device-space
cull stack (debug build only).

There are still some Blink bugs causing violations, so for now I'd like
to keep this as an error message only.

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

Author: fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13885 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-20 20:25:14 +00:00
commit-bot@chromium.org
933e65d914 replace old SK_TRACE_EVENT macros with new TRACE_EVENT ones, and then remove them entirely!
BUG=skia:353
R=tomhudson@google.com, epoger@google.com, reed@google.com, egdaniel@google.com, bsalomon@google.com

Author: humper@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13884 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-20 20:00:24 +00:00
bsalomon@google.com
180e36abf6 Revert "hide Config8888 entirely". Broke a bunch of builds.
This reverts commit fa11c49cc11a6c9ebafbf9c59e118917f9b3cc56.

Revert "Sanitizing source files in Housekeeper-Nightly" to make the above revert clean.

This reverts commit b5787422c8eb2a27a9576777597fd9e06784acdb.

TBR=reed@google.com
TBR=jcgregorio@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13872 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-20 13:26:45 +00:00
skia.committer@gmail.com
be41d38f1c Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13871 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-20 03:02:31 +00:00
commit-bot@chromium.org
eb9547c1d6 stub for ganesh veto
BUG=skia:
R=bsalomon@google.com, nduca@chromium.org

Author: humper@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13866 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 21:24:25 +00:00
commit-bot@chromium.org
e14792d99f hide Config8888 entirely
BUG=skia:
R=bsalomon@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13865 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 21:20:24 +00:00
commit-bot@chromium.org
d8a57af725 Adding a new SkSurface factory for generating surfaces from the scratch texture pool.
TEST=Surface unit test
BUG=crbug.com/351798
R=bsalomon@google.com, robertphillips@google.com, reed@google.com

Author: junov@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13864 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 21:19:16 +00:00
commit-bot@chromium.org
8e13a159f3 Fixed cross compilation with mingw.
Tested in Mozilla source tree. I tried to use skia build system, but it's up to the task for cross compilation.

SkHRESULT.cpp - Use proper file name (that matters on case sensitive OSes)

SkAtomics_win.h - Don't use pragma intrinsic on GCC (this causes massive warnings)

SkOSFile_win.cpp - This one is tricky. GCC doesn't allow (void*) casts in template argument constants and INVALID_HANDLE_VALUE looks like this:
((HANDLE)(LONG_PTR)-1)
where HANDLE is typedefed to void*. Changed the code to use LONG_PTR as template argument and cast it when needed.

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

Author: cjacek@gmail.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13862 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 19:28:00 +00:00
senorblanco@chromium.org
b7b7eb32f4 Fix accessBitmap() with deferred clear, GPU path.
When accessBitmap() is called on a GPU device which has deferred clear,
and no drawing has been done, force the clear before returning the
bitmap.

This is covered by the top right test case in the imagefilterscropexpand
GM, where an offset image filter is drawn but the resulting bitmap is
cropped out, resulting in no drawing to the offscreen. It should be
empty, but without this fix it results in garbage (previous scratch
texture contents).

BUG=skia:
R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13860 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 18:24:04 +00:00
commit-bot@chromium.org
fffb2cd463 Revert of SkPaint: eliminate some dead bytes in 64-bit build. (https://codereview.chromium.org/203203003/)
Reason for revert:
Causing RunTest failures on Android.

Original issue's description:
> SkPaint: eliminate some dead bytes in 64-bit build.
>
> + memcpy-based copy constructor was hiding this gap -> manual copy constructor.
> + Split tests for finer-grained failures.
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=13856

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

Author: jcgregorio@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13858 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 14:36:29 +00:00
commit-bot@chromium.org
fa4dc2c4cb SkPaint: eliminate some dead bytes in 64-bit build.
+ memcpy-based copy constructor was hiding this gap -> manual copy constructor.
+ Split tests for finer-grained failures.

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13856 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 11:42:34 +00:00