Commit Graph

71 Commits

Author SHA1 Message Date
reed@google.com
e132f5031f bump picture format to 17 to go with PixelRef Info CL
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12678 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-13 19:58:46 +00:00
robertphillips@google.com
0daa1adb03 Reverting r12665 & r12666 (Remove duplicate impl for SkImageInfo flattening) due to Chromium/Blink compilation errors
https://codereview.chromium.org/112603003/



git-svn-id: http://skia.googlecode.com/svn/trunk@12667 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-13 15:24:37 +00:00
reed@google.com
93b40594b7 Remvoe duplicate impl for SkImageInfo flattening
Add onNewLockPixels

This reverts commit bb8eff6a70c52b7644391cfd4f4d21bf7294a6bf.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12665 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-13 14:18:14 +00:00
reed@google.com
398337b3a5 Revert "remvoe duplicate impl for SkImageInfo flattening"
Reason: breaks chrome_mac_tests which still have non-imageinfo constructors

This reverts commit a06b8cf60b39bda93e9ef1a73579007b2b930d29.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12631 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 21:22:39 +00:00
reed@google.com
a0d183d891 Revert "Revert of https://codereview.chromium.org/108773003/"
This reverts commit 947e6a3142af66b750f1247ef933b11ed8455dd4.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12630 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 21:15:58 +00:00
commit-bot@chromium.org
ff9c6c92e5 Revert of https://codereview.chromium.org/108773003/
Reason for revert: breaks chrome-mac-tests

TBR=
NOTREECHECKS=true
NOTRY=true

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12629 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 20:55:41 +00:00
reed@google.com
f3aead2829 remvoe duplicate impl for SkImageInfo flattening
Revert "Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap.""""""

This reverts commit eabd6b2ed4e494b323c08f32358f45950a0368c3.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12624 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 18:38:46 +00:00
reed@google.com
6a32add491 Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap."""""
This reverts commit d08eca87a0bef10112a211de540f89656a80b86a.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12623 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 18:19:10 +00:00
reed@google.com
6965a0a2df PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap.""""
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12622 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 18:04:56 +00:00
reed@google.com
2ebc10dd12 Revert "Revert "Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap."""
This reverts commit 5f035e90d6dea0139a4f204b634e7b7b3b4976d7.

Reverting because it breaks chrome/blink due to new SkPixelRef constructor arg.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12551 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-06 21:43:05 +00:00
reed@google.com
473f0aa2bb Revert "Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap.""
This reverts commit 4174afb18a9746bbad2a06c0ec2d4ad35f72d790.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12547 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-06 20:31:45 +00:00
reed@google.com
5b132b28da Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap."
This reverts commit 154e08b2f5904ef533da694e3510befcb9a3f3e2.

revert due to warnings

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12538 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-06 18:51:08 +00:00
reed@google.com
3e89524e74 PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap.
R=mtklein@google.com, scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12537 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-06 18:41:33 +00:00
robertphillips@google.com
11e055518a Code cleanup following recapture of skps
https://codereview.chromium.org/88233003/



git-svn-id: http://skia.googlecode.com/svn/trunk@12472 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-03 19:46:58 +00:00
robertphillips@google.com
466310dbd3 Move fIsOval from SkPath to SkPathRef
https://codereview.chromium.org/89123002/



git-svn-id: http://skia.googlecode.com/svn/trunk@12463 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-03 16:43:54 +00:00
robertphillips@google.com
ca316f576e Revert of r12450 (Move fIsOval from SkPath to SkPathRef)
git-svn-id: http://skia.googlecode.com/svn/trunk@12452 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-03 00:23:39 +00:00
robertphillips@google.com
31f0ffc9c3 Move fIsOval from SkPath to SkPathRef
https://codereview.chromium.org/89123002/



git-svn-id: http://skia.googlecode.com/svn/trunk@12450 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-02 23:55:11 +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
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
e61a86cfa0 Guard against most unintentionally ephemeral SkAutoFoo instantiations.
I think I applied the trick everywhere possible.  Limitations:
    - can't be used with templated classes
    - all constructors and destructors must be defined inline

A couple of the SkAutoFoo were unused in Skia, Chromium, and Android, so I
deleted them.  This change caught the same bugs Cary found in SkPath, plus one
more in SampleApp.

BUG=
R=reed@google.com, caryclark@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12301 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-18 16:03:59 +00:00
tomhudson@google.com
381010e550 Expose SkPicture::willPlayBackBitmaps()
This returns true if (1) the picture has finished recording and
(2) this picture or any picture drawn into it refers to any bitmaps. 
It allows clients doing complicated manipulations of the picture to 
early-out when there are no bitmaps present. 

BUG=303281
R=reed@google.com



git-svn-id: http://skia.googlecode.com/svn/trunk@11935 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 11:12:47 +00:00
robertphillips@google.com
ca0c8389e2 Move bound and isFinite into pathref
https://codereview.chromium.org/24350006/



git-svn-id: http://skia.googlecode.com/svn/trunk@11467 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-26 12:18:23 +00:00
robertphillips@google.com
7ce661d19c Blur refactoring
https://codereview.chromium.org/21835004/



git-svn-id: http://skia.googlecode.com/svn/trunk@10936 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-27 16:14:03 +00:00
commit-bot@chromium.org
eed779d866 This CL plumbs in the drawBitmapRectToRect "bleed" flag and makes it live on the simplest GPU path.
R=bsalomon@google.com, reed@google.com, edisonn@google.com, scroggo@google.com, jvanverth@google.com, mtklein@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10765 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-16 10:24:37 +00:00
scroggo@google.com
056dab300d Revert "Temporary change to keep chrome happy."
Now that chrome has https://chromiumcodereview.appspot.com/18078003/,
this is no longer needed.

Fully switched over to using CreateFromStream!

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9911 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-08 18:40:42 +00:00
scroggo@google.com
0e0180a176 Temporary change to keep chrome happy.
Add back in a version of the constructor taking a stream so that
chrome can build until we switch chrome to using the factory.

Will be reverted once chrome switches to using the factory.

R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9823 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-28 21:35:29 +00:00
scroggo@google.com
f1754ec691 Replace SkPicture(SkStream) constructors with a factory.
SkPicture:
Remove the constructors which take an SkStream as an argument. Rather
than having to check a variable for success, the factory will return
NULL on failure.
Add a protected function for determining if an SkStream is an SKP
to share code with SkTimedPicture.
In the factory, check for a NULL SkStream.
Use a default decoder (from BUG:
https://code.google.com/p/skia/issues/detail?id=1325)

SkDebuggerGUI:
Call SkPicture::CreateFromStream when necessary.
Write a factory for creating SkTimedPictures and use it.

Use the factory throughout tools.

Add include/lazy to utils and effects gyp include_dirs so SkPicture.h
can reference SkImageDecoder.h which references SkBitmapFactory.h (in
include/lazy).

Changes code Chromium uses, so this will require a temporary Skia
and then a change to Chromium to use the new Skia code.

TODO: Create a decoder that does nothing to be used by pinspect,
lua pictures, etc, and allow it to not assert in SkOrderedReadBuffer.

R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9822 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-28 21:32:00 +00:00
reed@google.com
277c3f8765 bump picture version since SkPath has changed (conics)
enable conics in SkPath

git-svn-id: http://skia.googlecode.com/svn/trunk@9370 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-31 15:17:50 +00:00
scroggo@google.com
24287c15d6 Revert "Patch to prevent chromium breakage until the DEPS."
This reverts commit d2a284728d30082d46b02c39d916294c6d36e11f.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9275 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-24 16:31:30 +00:00
commit-bot@chromium.org
be879bcda3 Mark SkDrawPictureCallback with SK_API, so that it can be derived from by SK_API classes
R=reed@google.com

Author: vmpstr@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9249 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-22 21:11:42 +00:00
scroggo@google.com
edef4aa8d8 Patch to prevent chromium breakage until the DEPS.
Once https://codereview.chromium.org/15489004/ is submitted to
Skia, a DEPS roll into chrome will break due to a change in the
API. A long term fix for chrome to use the new API is at
https://codereview.chromium.org/15496006/, but since it depends
on the earlier Skia change, this patch fills in the gap.

Will be reverted once https://codereview.chromium.org/15496006/
is submitted to chrome.

R=djsollen@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9228 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-21 20:45:03 +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
skia.committer@gmail.com
3e50e99fe7 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@9207 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-21 07:01:40 +00:00
reed@google.com
74babdfce5 add SkDrawPictureCallback optional parameter to drawPicture(), which can abort the picture drawing.
R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9197 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-20 17:02:41 +00:00
scroggo@google.com
2983ddd4b5 Revert "Allow supporting 1 older PICTURE_VERSION."
This reverts commit deb9d6990ef2d153230340d960d86b0966f261e1.

That change was just to allow us to bump the PICTURE_VERSION
without changing the SKPs to the new one. Since it is not
entirely reliable, I am removing it.

R=rmistry@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9035 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-07 14:45:40 +00:00
scroggo@google.com
0cb7df9718 Allow supporting 1 older PICTURE_VERSION.
Allows https://codereview.chromium.org/14230022/ to be submitted
without breaking bench_pictures and render_pictures.

After DEPS roll and SKP capture, this will be reverted.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8918 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-30 02:37:56 +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
skia.committer@gmail.com
4bb50b22fc Sanitizing source files in Skia_Periodic_House_Keeping
git-svn-id: http://skia.googlecode.com/svn/trunk@8670 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-13 07:01:15 +00:00
robertphillips@google.com
ad7d481ea9 Add testing of optimizations to GM
https://codereview.chromium.org/12843028/



git-svn-id: http://skia.googlecode.com/svn/trunk@8658 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-12 15:13:35 +00:00
robertphillips@google.com
07a8ea0002 Reverting r8654
git-svn-id: http://skia.googlecode.com/svn/trunk@8655 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-12 14:59:02 +00:00
robertphillips@google.com
c10531b502 Add testing of optimizations to GM
https://codereview.chromium.org/12843028/



git-svn-id: http://skia.googlecode.com/svn/trunk@8654 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-12 14:53:29 +00:00
scroggo@google.com
32ef131f52 Remove SkSerializationHelpers.
Move the function definition for EncodeBitmap to SkPicture,
where InstallPixelRefProc has already moved (and where it is
relevant).

Review URL: https://codereview.appspot.com/7386053

git-svn-id: http://skia.googlecode.com/svn/trunk@7837 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-22 22:04:19 +00:00
scroggo@google.com
f8d7d27313 Create SkLazyPixelRef which performs lazy decoding.
The new pixel ref behaves similarly to SkImageRef, with some key differences:
It does not depend on the images project.
It requires an SkImageCache, which handles allocation and caching of the pixel
memory.
It takes a function signature for decoding which decodes into already allocated
pixel memory rather than into an SkBitmap.

Add two implementations of SkImageCache: SkLruImageCache and SkAshmemImageCache.

Replace SkSerializationHelpers::DecodeBitmap with SkPicture::InstallPixelRefProc,
and update sites that referenced it.

SkBitmapFactory now sets the pixel ref to a new object of the new
class SkLazyPixelRef, provided it has an SkImageCache for caching.

Provide an option to do lazy decodes in render_pictures and bench_pictures.

SkPicture:
Eliminate the default parameters in the constructor.
If a proc for decoding bitmaps is installed, use it to decode any encoded
data in subpictures.
When parsing deserializing subpictures, check for success.
When serializing subpictures, pass the picture's bitmap encoder to the
subpicture's call to serialize.

Update BitmapFactoryTest to test its new behavior.

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

Review URL: https://codereview.appspot.com/7060052

git-svn-id: http://skia.googlecode.com/svn/trunk@7835 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-22 21:38:35 +00:00
djsollen@google.com
d9b0f480be Only support SkPicture abort for Android due to the fragility of the existing API
Review URL: https://codereview.appspot.com/7225083

git-svn-id: http://skia.googlecode.com/svn/trunk@7515 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-01 16:18:09 +00:00
reed@google.com
4ed0fb7684 revert 6766, thereby re-landing 6762-6763 now that the bots are ready
git-svn-id: http://skia.googlecode.com/svn/trunk@6770 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-12 20:48:18 +00:00
reed@google.com
25c1408c3d revert 6762-6763, since those require new skps to be generated, and we can't
do that immediately right now... will re-submit when we can.



git-svn-id: http://skia.googlecode.com/svn/trunk@6766 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-12 19:15:31 +00:00
reed@google.com
68d61ed83e make RRect and Oval first-class drawing primitives in SkCanvas.
add RRect as a first-class clip primitive.
Review URL: https://codereview.appspot.com/6923058

git-svn-id: http://skia.googlecode.com/svn/trunk@6762 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-12 19:02:53 +00:00
scroggo@google.com
459e6623f1 Remove a warning for comparing signed and unsigned integers.
Review URL: https://codereview.appspot.com/6851050

git-svn-id: http://skia.googlecode.com/svn/trunk@6420 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-14 21:08:53 +00:00
skia.committer@gmail.com
fbb0ed959d Sanitizing source files in Skia_Periodic_House_Keeping
git-svn-id: http://skia.googlecode.com/svn/trunk@6409 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-13 21:46:06 +00:00