Commit Graph

225 Commits

Author SHA1 Message Date
junov@chromium.org
66070a527c Changing SkDeferredCanvas to use factories for creation
The objective of this change is to remove all calls to 
SkCanvas::setDevice. The factory API is hidden behind
a build flag in order to ease the roll into chromium.

A side-effect of the factory pattern is that it will
no longer be possible to allocate a SkDeferredCanvas on
the stack.  This changes nothing for chrome, but it
impacts skia test programs.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9298 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-28 17:39:08 +00:00
scroggo@google.com
ccd7afb6fb Reland 'Add path utils, plus a test for it.'
Build SkPathJoin and SkBasename on windows also.

Previous CL did not build on Windows because the two functions were
accidentally placed inside an ifdef that did not include windows.
Move the functions to the top of the file, and add a comment by the
endif for clarity.

Previously reviewed at https://codereview.chromium.org/15747004/

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9295 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-28 16:45:07 +00:00
scroggo@google.com
dbbcaa8983 Revert "Add path utils, plus a test for it."
This reverts commit d172374b46cae0bd5d7c024b9848f5bdafcc6a16.

This CL broke on Windows.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9278 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-24 18:28:57 +00:00
scroggo@google.com
1bee037044 Add path utils, plus a test for it.
SkOSFile:
Added class SkOSPath with functions for
modifying strings representing path names.

OSPathTest.cpp:
Test of the new utilities.

factory.cpp:
Use SkPathJoin.

gmmain and gm_expectations:
Use SkOSPath::SkPathJoin instead of a local version.

skimage_main.cpp:
Use the new location of SkPathJoin and SkBasename.

R=epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9277 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-24 18:12:17 +00:00
epoger@google.com
d4993ff360 GM: create GmResultDigest that encapsulates digest type ("bitmap-64bitMD5") and value (12345)
R=scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9271 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-24 14:33:28 +00:00
epoger@google.com
659c8c06cd GM: make behavior of make_filename() more late-binding
This will be needed to add the option of writing out files with
checksum-based filenames.

R=scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9215 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-21 15:45:45 +00:00
epoger@google.com
ce057fec92 GM: include filename extension (.png) of each output file in JSON summary
Doing this so that, once we *do* start writing PDF checksums into the JSON
summary, we'll be able to distinguish those from the PNG checksums.
Otherwise, we could have naming collisions.

R=scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9119 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-14 15:17:46 +00:00
caryclark@google.com
512c9b65fc add wildcard test name matching to gm and bench.
This adds the same set of options in unit tests, i.e:

--match [~][^]match[$] [~][^]match[$] ...
~ causes a matching test to always be skipped
^ requires the start of the test to match
$ requires the end of the test to match
^ and $ requires an exact match

If a test does not match any list entry,
it is skipped unless some list entry starts with ~
Review URL: https://codereview.chromium.org/14746017

git-svn-id: http://skia.googlecode.com/svn/trunk@9096 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-10 15:16:13 +00:00
bungeman@google.com
1ca36ecfd9 Don't use writeData to write the document in GM.
https://codereview.chromium.org/14824003/


git-svn-id: http://skia.googlecode.com/svn/trunk@9013 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-06 14:28:43 +00:00
epoger@google.com
fdea3259d0 GM: fix --mismatchPath option
(currently, it doesn't actually write any files!)

TBR=rmistry

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8963 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-02 18:24:03 +00:00
scroggo@google.com
74b7ffda68 Fixes for piping bitmaps with encoded data.
Similar goals as https://codereview.chromium.org/14437012.

Builds on patch set 1 from that issue
(https://codereview.chromium.org/14437012/#ps1).

Instead of the changes in patch set 2 from that issue, this
changes SkOrderedWriteBuffer::writeBitmap to store whether an
SkBitmapHeap was used when to store the index of the SkBitmap.
SkOrderedReadBuffer::readBitmap now uses that information to
distinguish between using the heap and unflattening.

In addition, writeBitmap now records the width/height first in
all cases. If now SkBitmapHeapReader is attached, but an
SkBitmapHeap was used to record the bitmap, reading will fail
and provide the same red SkBitmap as in the case where the
SkBitmap was encoded but could not be decoded.

Updates the PICTURE_VERSION as well.

The key differences in this CL to look at are in:
SkOrderedWriteBuffer,
SkOrderedReadBuffer,
and SkPicture.

BUG=
R=djsollen@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8917 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-30 02:32:41 +00:00
epoger@google.com
76c913db20 GM: specify that currently used checksums are CityHashes of SkBitmaps
(distinct from other hash algorithms we may switch to, or hashes of
files such as PDFs that cannot be read into an SkBitmap)

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8877 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-26 15:06:44 +00:00
scroggo@google.com
58104a9c25 Treat default command line argument properly.
In SkCommandLineFlags, if the client sets a default value
of multiple arguments (e.g. "arg0 arg1 ..."), set
the actual defaults to all of those arguments separately
(i.e. an array with [0] == "arg0", [1] == "arg1", ...),
rather than as one string (i.e. [0] == "arg0 arg1 ...").

Remove the hack that worked around this bug.

Also move the increasingly complicated implementation of
SkFlagInfo::CreateStringFlag into the cpp file.

BUG=https://code.google.com/p/skia/issues/detail?id=1237

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8845 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-24 19:25:26 +00:00
bsalomon@google.com
dd8e353bef Add option to specify defaults configs to --config flag in gm. This makes it easier to run gm defaults configs with a delta. Also make ~ exclude a config.
Review URL: https://codereview.chromium.org/13842014

git-svn-id: http://skia.googlecode.com/svn/trunk@8842 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-24 18:07:11 +00:00
edisonn@google.com
d9dfa18372 Encode images with DCTDecode (JPEG) in PDFs if it makes sense. Fallback to FlateDecode (zip) if it makes sense. Otherewise include uncompressed stream.
This change will reduce the size of PDFs to 50% (in the case of the existing SKPs, we reduce the total size of PDFs from 105MB to 50MB) 
Review URL: https://codereview.appspot.com/7068055

git-svn-id: http://skia.googlecode.com/svn/trunk@8835 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-24 13:01:01 +00:00
scroggo@google.com
b7dbf633a6 Fix an SkCommandLineFlags bug.
Previously I was storing an SkTDArray of const char*,
which fails if the strings go out of scope.

Instead, store an SkTArray of SkString, and copy the
strings, so we do not depend on the strings sticking
around. Using an SkTArray because it is smart enough
to call the destructors, so the copies can be destroyed
on program exit.

BUG=https://code.google.com/p/skia/issues/detail?id=1237

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8829 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-23 15:38:09 +00:00
scroggo@google.com
7fd2d70ad3 Delete gm after use.
Fixes a memory leak when using the --modulo flag. Instead of deleting
manually in each case we are done with it (which led to missing one
case), use an SkAutoTDelete.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8707 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-16 19:11:14 +00:00
epoger@google.com
5079d2c2a0 GM: allow caller to specify which result types trigger an error
Review URL: https://codereview.chromium.org/14187007

git-svn-id: http://skia.googlecode.com/svn/trunk@8652 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-12 14:11:21 +00:00
epoger@google.com
908f583662 rename SkBitmapChecksummer as SkBitmapHasher, and prepare for it to possibly use
some algorithm other than CityHash
Review URL: https://codereview.chromium.org/14170010

git-svn-id: http://skia.googlecode.com/svn/trunk@8639 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-12 02:23:55 +00:00
epoger@google.com
bcbf5aa77d GM: print list of GMs run, even in non-verbose mode (rolls back part of r8600)
Review URL: https://codereview.chromium.org/14052003

git-svn-id: http://skia.googlecode.com/svn/trunk@8638 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-12 02:11:54 +00:00
epoger@google.com
07947d9565 GM: signal error if the total number of tests run was less than expected
Review URL: https://codereview.chromium.org/13863009

git-svn-id: http://skia.googlecode.com/svn/trunk@8614 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-11 15:41:02 +00:00
epoger@google.com
b0f8b430de GM: remove enableMissingWarning in favor of verbose flag, and trim output in nonverbose mode
Review URL: https://codereview.chromium.org/14080003

git-svn-id: http://skia.googlecode.com/svn/trunk@8600 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-10 18:46:25 +00:00
scroggo@google.com
aef2d3b14e Run mixedxfermodes GM through the pipe.
Pass the size of the GM to SkGPipeWriter.startRecording(), so that
calls to getDeviceSize() on the returned SkCanvas return a reasonable
result. This allows removing the flag to skip mixedxfermodes.

BUG=https://code.google.com/p/skia/issues/detail?id=1199

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8598 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-10 18:10:41 +00:00
epoger@google.com
51dbabee67 gm: hide list of tests with ignored errors, by default
Review URL: https://codereview.chromium.org/13811031

git-svn-id: http://skia.googlecode.com/svn/trunk@8591 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-10 15:24:53 +00:00
epoger@google.com
c8263e7041 gm: record IntentionallySkipped tests
Review URL: https://codereview.chromium.org/13663003

git-svn-id: http://skia.googlecode.com/svn/trunk@8586 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-10 12:17:34 +00:00
scroggo@google.com
604e0c249e SkFlags now follows proper dashing convention.
Two dashes are used for flags with multiple characters, and one
dash is used for flags with single characters.

In GM, changed '-wp' to '-p' (the command to choose a directory
for writing SKPs) to fit with the convention.

In render_pictures and bench_pictures, changed the flag for
read and write path to have full names (which are consistent)
and use the old single character names as their shortcuts.

SkCommandLineFlags: Updated the documentation, and only allow
-h or --help for help (again, to match the convention).
Also enforce the single character limit for the short name, and
require the full name to be at least two characters.

Provide full names for skhello.

BUG=https://code.google.com/p/skia/issues/detail?id=1174

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8582 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-09 21:25:46 +00:00
epoger@google.com
caac3db48f re-land r8535, now that src.chromium.org is back up
Review URL: https://codereview.chromium.org/13662002

git-svn-id: http://skia.googlecode.com/svn/trunk@8538 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-04 19:23:11 +00:00
epoger@google.com
67caaf8792 Revert r8535
git-svn-id: http://skia.googlecode.com/svn/trunk@8536 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-04 18:21:48 +00:00
epoger@google.com
da8db9837e gm: report ExpectationsMismatch and RenderModeMismatch results separately
Review URL: https://codereview.chromium.org/13650002

git-svn-id: http://skia.googlecode.com/svn/trunk@8535 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-04 18:11:31 +00:00
epoger@google.com
310478e72c re-land r8514 without breaking 32-bit Mac compilers
Review URL: https://codereview.chromium.org/13427004

git-svn-id: http://skia.googlecode.com/svn/trunk@8518 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-03 18:00:39 +00:00
epoger@google.com
2212c2e35c roll out r8514
Review URL: https://codereview.chromium.org/13503003

git-svn-id: http://skia.googlecode.com/svn/trunk@8515 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-03 17:12:42 +00:00
epoger@google.com
f60494ba0b gm: display summary of all results by ErrorType
as discussed in https://codereview.chromium.org/12825005/#msg14
Review URL: https://codereview.chromium.org/12851022

git-svn-id: http://skia.googlecode.com/svn/trunk@8514 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-03 17:02:53 +00:00
skia.committer@gmail.com
041e2dbc06 Sanitizing source files in Skia_Periodic_House_Keeping
git-svn-id: http://skia.googlecode.com/svn/trunk@8503 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-03 07:01:14 +00:00
robertphillips@google.com
5a7d029fd6 Add tile rendering to GM
https://codereview.chromium.org/13165011/



git-svn-id: http://skia.googlecode.com/svn/trunk@8485 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-02 15:18:41 +00:00
bsalomon@google.com
123ac1d4ea Make GM render to render targets that are also textures.
Review URL: https://codereview.chromium.org/13211002

git-svn-id: http://skia.googlecode.com/svn/trunk@8438 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-28 19:18:12 +00:00
epoger@google.com
6f6568b27e gm: change ErrorBitfield to ErrorType/ErrorCombination
This will enable future GM changes to report errors more completely/consistently, like skdiff.
Review URL: https://codereview.chromium.org/12992003

git-svn-id: http://skia.googlecode.com/svn/trunk@8344 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-22 17:29:46 +00:00
scroggo@google.com
d9ba9a05d6 Change the name of SkFlags to SkCommandLineFlags.
This name is more specific to what it actually does.

Also move the code into tools/flags, to (slightly) better organize
the massive tools folder.

Update the programs that use it to use the new names.

No functionality changes.

BUG=https://code.google.com/p/skia/issues/detail?id=1173

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8304 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-21 19:43:15 +00:00
epoger@google.com
80724dfeb3 Re-land r8269, fixing build errors/warnings
Review URL: https://codereview.chromium.org/12886037

git-svn-id: http://skia.googlecode.com/svn/trunk@8290 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-21 13:49:54 +00:00
epoger@google.com
b8210f20ce Revert r8269 to fix BuildGM. Warnings-as-errors problem, dunno why I didn't see it locally.
git-svn-id: http://skia.googlecode.com/svn/trunk@8271 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-20 18:46:34 +00:00
epoger@google.com
0b62b3dd1c gm refactor: extract run_multiple_configs() and run_multiple_modes()
Review URL: https://codereview.chromium.org/12536007

git-svn-id: http://skia.googlecode.com/svn/trunk@8269 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-20 17:59:28 +00:00
scroggo@google.com
0f567c6cb6 Write the config options in place in the help string.
Fixes for gm.

Builds on https://codereview.chromium.org/12955002/

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8256 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-20 15:35:08 +00:00
scroggo@google.com
09fd4d2169 Reland r8235 "Switch gm to use SkFlags."
This time, using #if guards for gpuCacheSize consistently.

Also fix some warnings.

BUG=https://code.google.com/p/skia/issues/detail?id=1094

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8254 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-20 14:20:18 +00:00
bsalomon@google.com
4c75f241cb Reland MSAA changes to GM now that Linux/ATI driver bug has been worked around.
git-svn-id: http://skia.googlecode.com/svn/trunk@8240 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-19 18:58:43 +00:00
scroggo@google.com
0b735631b7 Revert "Make gm use SkFlags."
Fix the build.

This reverts commit 6f1fe2aee39308fc56854b062be244a904c209e7.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8236 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-19 17:38:50 +00:00
scroggo@google.com
7d519305bb Make gm use SkFlags.
Make flag parser its own project. It is still in the tools folder,
but can now be used by other projects.

Some changes to behavior in order to work with SkFlags:
enable-missing-warning and disable-missing-warning have become
enableMissingWarning and noenableMissingWarning.

exclude-config is now excludeConfig

--config now can only be listed once, but all configs listed
after it will be included (same with excludeConfig and match).

In addition, writeJsonSummary has been changed to
writeJsonSummaryPath for consistency with other path flags.

Provide an option to SkFlags to provide a short name, and use
it for the flags which have short names.

--tileGridReplayScales now takes space separated arguments,
like other inputs.

BUG=https://code.google.com/p/skia/issues/detail?id=1094

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8235 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-19 17:28:10 +00:00
bsalomon@google.com
f315451f78 Revert changes to GM MSAA configs, hopefully fixes linux bot gm failures.
git-svn-id: http://skia.googlecode.com/svn/trunk@8232 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-19 16:43:40 +00:00
bsalomon@google.com
a83d3d8865 fix angle gmmain build
git-svn-id: http://skia.googlecode.com/svn/trunk@8226 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-19 15:19:41 +00:00
bsalomon@google.com
14687813ea Fix build break in gmmain.cpp
git-svn-id: http://skia.googlecode.com/svn/trunk@8222 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-19 14:35:41 +00:00
bsalomon@google.com
40deeadf6f Add config msaa4 to gm (not run by default) and make MSAA configs not run unless
sample count is <= the max.
Review URL: https://codereview.chromium.org/12554012

git-svn-id: http://skia.googlecode.com/svn/trunk@8221 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-19 14:28:36 +00:00
scroggo@google.com
5159153840 In gm, install drawFilter for pipe and tiledPipe.
Fixes bugs in drawing un-antialiased text in gm.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8173 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-15 15:29:02 +00:00