Commit Graph

388 Commits

Author SHA1 Message Date
scroggo@google.com
7def5e1630 Separate core and images project.
SkImage calls functions on SkImageDecoder and SkImageEncoder. This
is desired behavior, and it is also desired to include SkImage as
a part of core. In order to keep core from depending on images,
update SkImageDecoder_empty.cpp to implement all of SkImageDecoder
and SkImageEncoder. This file will be built by chrome (in
https://codereview.chromium.org/15960015).

Move force_linking from SkImageDecoder.cpp to its own file. It must
be called to force linking with the image decoders if desired. Call
the function in tools that need it:
sk_image
render_pictures
render_pdfs
sk_hello
filter
bench_pictures
debugger

SkImageDecoder:
Derive from SkNoncopyable, instead of duplicating its
hiding of constructors.

skhello:
Return rather than trying to write a null SkData to the stream.

Revert "Hamfistedly removed core dependence on images"
(commit 0f05f682a90bc125323677abf3476e1027d174f5) and
"Move SkImage::encode to SkImage_Codec.cpp."
(commit 83e47a954d0bf65439f3d9c0c93213063dd70da3.)
These two commits were temporary fixes that this change
cleans up.

SkSnapshot.cpp:
Check for a NULL encoder returned by SkImageEncoder::Create.

BUG=https://code.google.com/p/skia/issues/detail?id=1275
R=djsollen@google.com, robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9364 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-31 14:00:10 +00:00
reed@google.com
e3823fd901 add script to scrape glyph usage in drawText calls
git-svn-id: http://skia.googlecode.com/svn/trunk@9353 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-30 18:55:14 +00:00
epoger@google.com
9166bf57d8 rebaseline.py: use argparse command-line flags for more flexibility
--tests is the only mandatory argument.

If you used to run this:
rebaseline.py aaclip bigmatrix

Run this instead:
rebaseline.py --tests aaclip bigmatrix

That's the only change you NEED to make.

And then, if you WANT to specify --configs, --subdirs, etc. you CAN.

R=senorblanco@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9348 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-30 15:46:19 +00:00
epoger@google.com
ec3397bb6c Refactor rebaseline.py into functions ; no behavioral changes.
R=senorblanco@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9318 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-29 17:09:43 +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
reed@google.com
3597b73bc6 expand SkLua to handle creation of its own State
add lua sample

BUG=
R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9247 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-22 20:12:50 +00:00
reed@google.com
74ce6f046c add dumpops.lua as a sample scraper that just dumps the arguments
add SkLua.h for common utilities

BUG=
R=rmistry@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9242 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-22 15:13:18 +00:00
reed@google.com
881b10b023 move all flag bits up by 1, to accomodate new flag in SkPaint
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9237 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-22 14:03:45 +00:00
scroggo@google.com
1b1bcc3cea New API for encoding bitmaps during serialization.
This change gives more flexibility to the implementation of
EncodeBitmap to prefer calling refEncodedData, doing its own
encode, or even doing both and making a decision about which
to use.

The new function signature also allows the implementation to
tell the ordered write buffer whether to store the pixel offset,
in the case where the encoded bitmap represents the larger
bitmap, or to ignore the pixel offset, in the case where the
implementation only encoded the subset that is used.

Requires changes to chromium to use the new function signature.
(https://codereview.chromium.org/15496006/)

SkPicture:
New API for EncodeBitmap.

SkOrderedReadBuffer:
Ifdef'd out addition of reading the offset.

SkOrderedWriteBuffer:
Never call refEncodedData. Allow the user to call that from their
EncodeBitmap function, if desired.
This addresses https://code.google.com/p/skia/issues/detail?id=1239
Add in ifdef'd out code to record the offset.

PictureTest and PictureRenderer:
Implement the new definition of EncodeBitmap. Also update the name
of the function to meet coding style guidelines.

BUG=https://code.google.com/p/skia/issues/detail?id=1239
R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9226 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-21 20:31:23 +00:00
reed@google.com
9a73104c1b add SkPath as real lua object
R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9221 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-21 17:52:33 +00:00
reed@google.com
2d51677b19 add startcanvas/endcanvas entry-points for the script. rename all "official" entry-points to use "sk_scrape_" prefix
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9216 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-21 16:05:53 +00:00
reed@google.com
14f584b353 disable dumping the ctm on every drawRect verb (was there for testing)
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9213 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-21 14:19:53 +00:00
mike@reedtribe.org
f02fe3d4fe support SkCanvas as a real lua object
git-svn-id: http://skia.googlecode.com/svn/trunk@9208 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-21 12:20:39 +00:00
mike@reedtribe.org
0e59b796e5 allow multiple lua files to be used in lua_pictures
begin "stdlib" for skia in lua
add comments to scrape.lua



git-svn-id: http://skia.googlecode.com/svn/trunk@9206 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-21 03:24:37 +00:00
mike@reedtribe.org
cef454e7b8 printf name of picture *before* we try to scrape it.
git-svn-id: http://skia.googlecode.com/svn/trunk@9205 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-21 01:49:06 +00:00
reed@google.com
4b0757b748 add encodeData() to SkImageEncoder, and add encoding to SkImage
BUG=
R=scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9193 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-20 16:33:41 +00:00
bsalomon@google.com
7d01ec478f Make rebaseline.py pull msaa images
R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9179 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-17 14:10:59 +00:00
skia.committer@gmail.com
539f364e80 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@9159 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-16 07:01:00 +00:00
mike@reedtribe.org
1c5a94f5e0 lua accumulate now receives a table of the draw parameters
git-svn-id: http://skia.googlecode.com/svn/trunk@9158 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-16 04:20:23 +00:00
reed@google.com
dff7e11c20 add SkLuaCanvas
add lua 5.2 to third_party

BUG=
R=bungeman@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9149 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-15 19:34:20 +00:00
scroggo@google.com
9da0e1de1d Use separate subset directories in skimage.
Create separate directories for the results of decodeSubset and
extractSubset, and use the same name for each version, so that
they can be compared easily, using skdiff or visual inspection.

R=epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9148 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-15 18:14:36 +00:00
bsalomon@google.com
3c58723202 Update rebaseline.py for N10.
R=jvanverth@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9126 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-14 18:20:00 +00:00
scroggo@google.com
4fed643cb9 Create a self test for skimage.
Runs skimage twice: once to create an expectations file, and a
second time comparing against the file. Uses the files in
resources as test files.

R=epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9123 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-14 17:50:02 +00:00
scroggo@google.com
6ca30ca849 skimage: report failure if expectation not found.
If the expectation file exists, but the particular file being
decoded has no expectation, report a failure.

This is more appropriate since the intended use is that an
expectation will be created for each file. Without an expectation,
we cannot know whether the decoder has changed.

R=epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9122 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-14 17:30:17 +00:00
robertphillips@google.com
4d98b740cd Fix memory leak in filter tool
https://codereview.chromium.org/15029008/
(SkipBuildbotRuns)



git-svn-id: http://skia.googlecode.com/svn/trunk@9094 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-10 14:51:54 +00:00
scroggo@google.com
6843bdb706 Write/compare against expectations in skimage tool.
skimage:
Add two new modes: one to write expectations to a json file, and
another to compare results against expectations.
Use SkPATH_SEPARATOR instead of '/'.

gm_expectations:
Split into a static library so it can be used by skimage.
Make functions non static and move function definitions into source
file.
Capitalize static member functions to follow the coding style
guidelines.

BUG=https://code.google.com/p/skia/issues/detail?id=1241
R=epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9069 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-08 19:14:23 +00:00
borenet@google.com
1ce5cef859 Run bench_pictures with "--config msaa4" on Razr I, Nexus 10, and GNex
Addresses: https://code.google.com/p/skia/issues/detail?id=1276

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9027 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-07 12:09:54 +00:00
scroggo@google.com
1125d39de8 Add a new mode to render_pictures.
In the new mode, if an SKP file has encoded bitmap data, draw
the data to a file with the appropriate name.

R=borenet@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9001 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-03 20:43:37 +00:00
scroggo@google.com
0018f75f2f Fix more warnings.
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9000 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-03 20:39:22 +00:00
bsalomon@google.com
cb3c8d7e6a Make rebaseline.py pull GN Debug images.
R=senorblanco@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8999 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-03 20:24:54 +00:00
scroggo@google.com
8b5ff5cc0c Fix build (warning).
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8998 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-03 20:21:17 +00:00
scroggo@google.com
7e6fceeffd Test region decoding in skimage, plus fixes.
Add tests in skimage to perform region decoding. Write out a
PNG of the region as well as a bitmap obtained with extractSubset
for comparison.

Rename decodeRegion to decodeSubset, so it will not be confused
with SkRegion. (Leave a function called decodeRegion which calls
decodeSubset.)

Clean up some comments.

Use png_set_interlaced_pass instead of modifying pass directly.

Make some changes to region decoding to fix problems I discovered
during testing:

Only call getAddr within a valid range.
Check for a NULL fInputStream.
Return a boolean for whether cropBitmap succeeded.
In cropBitmap, do not attempt to draw to a bitmap to an Index8
bitmap, which crashes. Use extractSubset instead.
Remove an assert.

R=djsollen@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8996 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-03 20:14:28 +00:00
jvanverth@google.com
f6a90332ae Add msaa configs to bench_pictures.
Enables msaa4 and msaa16 configs in bench_pictures and render_pictures (and
anything else that may use PictureRenderer).

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


git-svn-id: http://skia.googlecode.com/svn/trunk@8952 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-02 12:39:37 +00:00
borenet@google.com
99da601032 Fix submit_try for new builder names
(SkipBuildbotRuns)
Unreviewed.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8950 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-02 12:14:35 +00:00
scroggo@google.com
c4ebdb03de Force linking with image decoders for images project.
Previously, each tool that wanted to use image decoders
but did not specifically reference them had to create a
dummy function that references them in order to ensure
they are not stripped by the linker.

Instead of making each tool reference each image decoder,
do it once in SkImageDecoder.cpp. Now each tool will have
image decoders linked in, assuming it includes the images
project.

This fixes a bug where SKPs with encoded data could not
be read by bench_ or render_pictures.

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8941 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-01 21:17:27 +00:00
rmistry@google.com
8fc729f8a2 Housekeeper should not fail when skia-autogen is reset.
Created to fix https://code.google.com/p/skia/issues/detail?id=1269 : UpdateDoxygen and UploadDoxygen steps fail when skia-autogen repository is reset. 

(SkipBuildbotRuns)

R=borenet@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8935 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-01 14:47:03 +00:00
borenet@google.com
e6598a04a7 Fix builder name references
... as a result of https://codereview.chromium.org/14517004/
(SkipBuildbotRuns)

R=bensong@google.com, rmistry@google.com, senorblanco@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8921 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-30 12:02:32 +00:00
scroggo@google.com
39edf4cd94 Updates to skimage tool to use it for testing.
skimage_main.cpp:
More changes in the interest of testing our decoders.

force_all_opaque before writing PNG files.

Test reencoding the image to its original type (if possible), and
then test redecoding it (to make sure the encoding was successful).
Add an option to turn off this behavior.

Merge decodeFileAndWrite with decodeFile.

SkImageDecoder:
Add kUnknown_Type to SkImageEncoder::Types.

Add a static function to get the Format of an SkStream.

In getFormatName(), remove an incorrect assert.

When calling the flavor of DecodeStream that returns the Format,
check the stream if the decoder returns kUnknown_Format.

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8862 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-25 17:33:51 +00:00
skia.committer@gmail.com
83f0d302e8 Sanitizing source files in Skia_Periodic_House_Keeping
git-svn-id: http://skia.googlecode.com/svn/trunk@8851 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-25 07:01:04 +00:00
scroggo@google.com
d0419019de Fix the build.
Allow NULL for defaultValue in SkCommandLineFlags.

unreviewed.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8847 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-24 19:37:52 +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
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
aaec851ad1 Link webp in skimage and debugger.
Review URL: https://codereview.chromium.org/14103020

git-svn-id: http://skia.googlecode.com/svn/trunk@8691 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-15 22:05:03 +00:00
scroggo@google.com
9c5f969e70 Include gif image decoding in images/ on linux.
Build SkImageDecoder_libgif in images project and link against
libgif on linux.

Ensure that the GIF decoder is used in skimage.

Requires a new dependency on libgif-dev when building on linux.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8627 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-11 18:32:01 +00:00
scroggo@google.com
b41ff95cc0 Updates for the skimage tool.
Allow passing files or folders on the command line.

Group the output to show all successes together, all failures
together, etc.

When writing a new png, do not make its file type ".png.png"
if the original was a png.

Force linking for JPEG decoder.

Use SkCommandLineFlags.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8615 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-11 15:53:35 +00:00
commit-bot@chromium.org
ae403b9496 Simplify bench pictures render target creation.
Author: bsalomon@google.com

Reviewed By: robertphillips@google.com

Review URL: https://chromiumcodereview.appspot.com/13947016

git-svn-id: http://skia.googlecode.com/svn/trunk@8596 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-10 17:27:30 +00:00