Commit Graph

1091 Commits

Author SHA1 Message Date
senorblanco@chromium.org
af35920e6d Implement srcRect and dstRect functionality in SkBitmapSource. This is required for the "preserveAspectRatio" options of SVG's feImage. Covered by new GM "bitmapsource".
Note: I initially implemented this as a fully-generic SkResizeImageFilter, but then I realized that the dstRect should always be transformed by the filter matrix, but that the srcRect should not (since it's specified relative to the dimensions of the original bitmap). Since this would be confusing for someone attempting to use this as a generic resizing filter, I decided to build the functionality into SkBitmapSource instead.

BUG=
R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12522 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-05 22:41:53 +00:00
halcanary@google.com
2c7c7ee47d Big Cleanup: SkBitmapFactory, SkLazyPixelRef, SkImageCache
Removed SkBitmapFactory since no clients were using it.  New cache
selection mechanism can simply pass a SkDiscardableMemory::Factory
into the SkDiscardablePixelRef if non-default SkDiscardableMemory
should be used.  Removed BitmapFactoryTest.

SkDiscardableMemory::Factory interface.  Android will need this
functionality in the future inside their BitmapFactory.

Removed SkLazyPixelRef, since it's functionality is now subsumed into
SkDiscardablePixelRef.  Removed LazyPixelRef test.

Modified SkDiscardablePixelRef to optionally allow it to use a
SkDiscardableMemory::Factory.  This tiny change makes it a replacement
for SkLazyPixelRef.  This functioanlity is also necessary for moving
Android over to SkDiscardablePixelRef from SkImageRef in a later CL.
Added a test for this.

SkDecodingImageGenerator::Install can optionally pass a factory in to
SkDiscardablePixelRef.

Removed SkImageCache, SkLruImageCache, and SkPurgeableImageCache.
This functionality can be handled much more cleanly by
SkDiscardableMemory.

New SkDiscardableMemoryPool class to replace SkLruImageCache.  In a
later CL, we will replace SkImageRef_GlobalPool (used by android) as
well.  This is a concrete implementation of
SkDiscardableMemory::Factory.  Added a test for this.

modified gm/factory.cpp to remove dependnce on SkBitmapFactory +
SkLruImageCache.  Now uses SkDecodingImageGenerator +
SkDiscardablePixelRef + SkDiscardableMemoryPool.

SkImageDecoder::Target replaces SkBitmapFactory::Target.  The
DecodeMemoryToTarget function may disappear in the future.

Moved SkLazyCachingPixelRef::DecodeProc replaces
SkBitmapFactory::DecodeProc.  This is a short term change, since
another CL changes SkLazyCachingPixelRef to use SkImageGenerator
instead of DecodeProc.

Modified DrawBitmapRectTest to use SkDiscardablePixelRef instead of
SkLazyPixelRef.

tools/LazyDecodeBitmap.cpp now uses SkDecodingImageGenerator +
SkDiscardablePixelRef instead of a SkBitmapFactory.

bench_pictures uses the Global SkDiscardableMemoryPool instead of a
global gLruImageCache.

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12515 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-05 18:31:42 +00:00
epoger@google.com
62a5ef0a9b rebaseline_server: add "deep linking" to allow bookmarking of particular views
(SkipBuildbotRuns)

R=jcgregorio@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12513 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-05 18:03:24 +00:00
robertphillips@google.com
28ea0b258e Update valgrind suppressions for new driver
https://codereview.chromium.org/102473003/



git-svn-id: http://skia.googlecode.com/svn/trunk@12510 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-05 16:23:37 +00:00
epoger@google.com
2682c90860 rebaseline_server: start HTTP server immediately, auto-reload once results are available
BUG=skia:1877
(SkipBuildbotRuns)

R=vandebo@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12509 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-05 16:05:16 +00:00
commit-bot@chromium.org
ab1c13864d Fix compilation with SK_ENABLE_INST_COUNT=1
Add INHERITED declarations to class declarations that prevent
compilation with the flag.

Remove SK_DEFINE_INST_COUNT from all class implementations.  Instead,
use function-local static variables in the reference count helper
classes to create the global instances to store the needed info. The
accessor functions are defined inline in the helper classes, so
definitions are not needed. The initialization point of the variables
should be as well defined as previously.

Remove SK_DECLARE_INST_COUNT_TEMPLATE and use SK_DECLARE_INST_COUNT
instead. This avoids possible future compilation errors further.

For SK_ENABLE_INST_COUNT=0 compilation, add an empty static member
function to all classes that use SK_DECLARE_INST_COUNT and
SK_DECLARE_INST_COUNT_ROOT macros. The function ensures that classes
contain public INHERITED typedef. This member function seems to be
compiled away. This shouĺd ensure that part of the compilation errors
are caught earlier.

Also adds DSK_DECLARE_INST_COUNT to few SkPDFDict subclasses.

R=robertphillips@google.com, richardlin@chromium.org, bsalomon@google.com

Author: kkinnunen@nvidia.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12501 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-05 12:08:12 +00:00
commit-bot@chromium.org
7542dc8897 [PDF] Fixes the cases where SkPDFDevice::finishContentEntry is called with empty content.
There are some cases (like drawing a completely transparent image) where the code tries to finish a content entry with no content and an xfermode other than clear.  This makes those cases work correctly.

This is likely what was happening in chromium:316546, but it wasn't clear what the core problem was. desk_techcrunch.skp tripped a debug only assert that exposed the core issue.

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

Author: vandebo@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12473 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-03 21:08:46 +00:00
commit-bot@chromium.org
e3bb3bce3e Add JSON output option to bench.
A new command-line flag --outResultsFile takes the filename to write the JSON into.

The human readable output is the same as before with one exception. Previously DEBUG would be printed if in debug mode, or nothing would be printed if in release mode. Now this is reported as a named option:

  build=DEBUG

or

  build=RELEASE

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

Author: jcgregorio@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12465 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-03 18:16:48 +00:00
rmistry@google.com
d6bab02386 Reverting r12427
git-svn-id: http://skia.googlecode.com/svn/trunk@12428 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-02 13:50:38 +00:00
skia.committer@gmail.com
5b39f5ba9c Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@12427 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-02 13:36:22 +00:00
bungeman@google.com
09800bc983 Fix warning as error on Mac for implicit narrowing conversion from r12413.
git-svn-id: http://skia.googlecode.com/svn/trunk@12418 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-27 16:08:37 +00:00
commit-bot@chromium.org
c09df2c32e Non-rect polygons are not covered in GM cases, such as triangle, trapezoid, diamond, polygons with lots of edges, concave polygons, etc, especially for stroke-style and stroke-and-fill style painters. So add a GM case to avoid potential rendering errors.
R=bsalomon@google.com, robertphillips@google.com

Author: yunchao.he@intel.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12413 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-27 01:24:53 +00:00
senorblanco@chromium.org
d8f82a4c44 Enhance SkDropShadowImageFilter to support separate X & Y sigmas, and crop rect. This required a new flavour of the constructor.
This is driven by the feDropShadow filter effect in SVG, which unlike the shorthand version accepts separate X & Y sigmas.

Covered by new GM dropshadowimagefilter.

R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12401 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-26 21:52:38 +00:00
epoger@google.com
d7255b6ae4 rebaseline_server: make --reload work in git checkout
(SkipBuildbotRuns)

R=rmistry@google.com

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

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

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

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12392 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-26 12:51:57 +00:00
commit-bot@chromium.org
ce33d60187 Adding more validation
- Added a way to check that the number of inputs of a filter is not more than a filter expects
- Added validation of reftype in SkBitmap::unflatten()
- Added validation on fKD (diffuse lighting constant) and fKS (specular lighting constant) to make sure that they are always non-negative numbers
- Added validation of SkPerlinNoiseShader::fType and SkPerlinNoiseShader::fNumOctaves

BUG=
R=reed@google.com, senorblanco@google.com, mtklein@google.com, senorblanco@chromium.org, sugoi@google.com

Author: sugoi@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12388 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-25 21:46:31 +00:00
reed@google.com
72e7808d62 Revert "remove kA1_Config, as it is no longer supported"
This reverts commit 2d72d8b242eac6e9d30228f5b0a407236491c369.

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

Author: caryclark@google.com

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

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12384 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-25 18:58:29 +00:00
epoger@google.com
b063e13428 rebaseline_server: remove deprecated-expectations-dir option
followup to https://codereview.chromium.org/81243002/ ('rebaseline_server:
deprecate --expectations-dir option in advance of git transition')

(SkipBuildbotRuns)

R=borenet@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12381 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-25 18:06:29 +00:00
commit-bot@chromium.org
d6ca4ac1ee [GPU] Use view matrix + rect to implement subrect for drawBitmap when there is a mask filter and bleed.
R=robertphillips@google.com, reed@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12368 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-22 20:34:59 +00:00
epoger@google.com
214a024e8c rebaseline_server: improve pixel diff reporting
- fix differing pixels count (we weren't always doing this right)
- report number of differing pixels, as well as percentage
- report worst difference per RGB channel
- apply alpha mask to difference image (changed pixels = opaque, unchanged = transparent)
- add tooltips with further explanation of pixel diffs
(SkipBuildbotRuns)

R=mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12366 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-22 19:26:18 +00:00
epoger@google.com
cc64e7dff8 rebaseline_server: deprecate --expectations-dir option in advance of git transition
(SkipBuildbotRuns)

R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12351 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-21 18:11:34 +00:00
commit-bot@chromium.org
644629c1c7 Implement a benchmark for GrResourceCache
Adds "grresourcecache_add" and "grresourcecache_find" bench tests to test
GrResourceCache::add and GrResourceCache::find. The tests work only
with GPU backends, since GrResourceCache needs an GrGpu.

Modifies bench tests to override SkBenchmark::isSuitableFor(Backend)
function that specifies what kind of backend the test is inteded
for. This replaces the previous "fIsRendering" flag that would
indicate test that did no rendering.

Adds SkCanvas::getGrContext() call to get the GrContext that the
canvas ends up drawing to. The member function solves a common
use-case that is also used in the benchmark added here.

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

Author: kkinnunen@nvidia.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12334 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-21 06:21:58 +00:00
commit-bot@chromium.org
6c4e71a5d6 Remove unnamed namespace usage from 'gm'.
Skia prefers static over unnamed namespaces.

BUG=None
TEST=None
R=bsalomon@google.com, robertphillips@google.com

Author: tfarina@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12326 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-20 21:32:10 +00:00
epoger@google.com
591469b1e9 rebaseline_server: clean up thread locks
followup to https://codereview.chromium.org/66803004/ ('rebaseline_server: improve thread locks to allow read access during updates')
(SkipBuildbotRuns)

R=jcgregorio@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12323 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-20 19:58:06 +00:00
robertphillips@google.com
cb3b615af7 Address some more valgrind issues
R=borenet@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12286 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-14 14:47:56 +00:00
bungeman@google.com
9fc5c68823 Fix leak detected in FontMgrMatchGM::onDraw by Valgrind.
git-svn-id: http://skia.googlecode.com/svn/trunk@12242 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-12 15:25:29 +00:00
robertphillips@google.com
d6bea606c6 Silence another valgrind leak
https://codereview.chromium.org/68523006/



git-svn-id: http://skia.googlecode.com/svn/trunk@12236 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-12 14:05:15 +00:00
edisonn@google.com
73a7ea3ae0 Implement DPI for perspective bitmaps in PDF - we save the bitmap at the resolution requested.
R=reed@google.com, vandebo@chromium.org

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

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



git-svn-id: http://skia.googlecode.com/svn/trunk@12226 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-11 20:04:28 +00:00
commit-bot@chromium.org
ffd178c84d Initial draft code to run pdfviewer withg gms
draft cl to run pdfviewer with gms 	modified:   gm/gmmain.cpp 	modified:   gyp/gm.gyp 	modified:   src/utils/SkPDFRasterizer.cpp 	modified:   src/utils/SkPDFRasterizer.h

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

Author: edisonn@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12214 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-11 15:10:47 +00:00
robertphillips@google.com
6c1e49af8d Removed deprecated API calls that have crept in
git-svn-id: http://skia.googlecode.com/svn/trunk@12210 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-10 15:08:45 +00:00
skia.committer@gmail.com
ed000840d4 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@12208 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-09 07:02:23 +00:00
commit-bot@chromium.org
5916705587 add GM case nonclosedpaths. The 2 bugs below showed some non-closed paths which are easy to get wrong rendering results. So add a GM case for this kind paths to avoid potential bugs to be introduced.
BUG=skia:1782
BUG=skia:1811
R=bsalomon@google.com, caryclark@google.com, reed@google.com, robertphillips@google.com

Author: yunchao.he@intel.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12206 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-09 01:37:30 +00:00
epoger@google.com
61952904ae rebaseline_server: improve thread locks to allow read access during updates
(SkipBuildbotRuns)
TBR=jcgregorio

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12195 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-08 17:23:54 +00:00
epoger@google.com
9dddf6f6b9 rebaseline_server: add pixel diffs, and sorting by diff metrics
(SkipBuildbotRuns)

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12193 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-08 16:25:25 +00:00
commit-bot@chromium.org
ec39b50f04 Update bleed GM to use HQ filtering.
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12188 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-08 15:09:22 +00:00
skia.committer@gmail.com
ab7442c8d7 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@12186 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-08 07:01:56 +00:00
robertphillips@google.com
f3db546a4b Can't be leaving that crucial newline off the end of a file
git-svn-id: http://skia.googlecode.com/svn/trunk@12182 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-07 22:43:04 +00:00
robertphillips@google.com
96ac2f693b Add GM to verify removal of 32767 limit in SkBlurMaskFilter::filterRectsToNine is okay
https://codereview.chromium.org/60513013/



git-svn-id: http://skia.googlecode.com/svn/trunk@12181 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-07 22:25:21 +00:00
vandebo@chromium.org
f8afb2bd58 Update gm flags so that it can be run without a pdf rasterizer.
BUG=1806
R=edisonn@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12157 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-06 16:32:15 +00:00
commit-bot@chromium.org
c2a0ea6418 Perlin issue fixed
BUG=skia:1799
R=sugoi@chromium.org, sugoi@google.com, senorblanco@chromium.org

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12150 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-06 10:08:38 +00:00
epoger@google.com
7e6e80a6eb blurroundrect gm: disable one set of tests in attempt to fix bug
BUG=skia:1801
R=scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12146 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-05 22:04:53 +00:00
scroggo@google.com
4ef88a213b Fix overzealous IntToScalar.
git-svn-id: http://skia.googlecode.com/svn/trunk@12145 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-05 21:22:04 +00:00
scroggo@google.com
8610d2cdbd Fixes for blurroundrect gm/bench.
Simplify naming/various cases.
Have an atlas of gms, rather than several different images.
In the bench, pull non rendering out of the loop.
Use meaningful enums instead of integers where appropriate.
Add comments.

Addresses comments in https://codereview.chromium.org/52793005/

R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12144 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-05 21:10:58 +00:00
epoger@google.com
1e698afbc2 rebaseline_server was not allowing tests to be marked ignore-failure
(SkipBuildbotRuns)
TBR=jcgregorio

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12143 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-05 21:00:24 +00:00
scroggo@google.com
9d3c422ea6 Int to scalar (again)
git-svn-id: http://skia.googlecode.com/svn/trunk@12139 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-05 17:29:23 +00:00
scroggo@google.com
770269d962 More IntToScalars
Fix build.

git-svn-id: http://skia.googlecode.com/svn/trunk@12137 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-05 17:02:07 +00:00
scroggo@google.com
5fdef98f62 Build fix number 2.
Use SkColors instead of numbers.

git-svn-id: http://skia.googlecode.com/svn/trunk@12135 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-05 16:28:38 +00:00