aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkOrderedReadBuffer.h
Commit message (Collapse)AuthorAge
* Add shim for SkOrderedReadBuffer.h too.Gravatar commit-bot@chromium.org2014-01-31
| | | | | | | | | | | | | Sorry, I specifically looked for this and failed the first time. BUG=skia: R=robertphillips@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/151093002 git-svn-id: http://skia.googlecode.com/svn/trunk@13259 2bbb7eff-a529-9590-31e7-b0007b416f81
* Refactor read and write buffers.Gravatar commit-bot@chromium.org2014-01-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Eliminates SkFlattenable{Read,Write}Buffer, promoting SkOrdered{Read,Write}Buffer a step each in the hierarchy. What used to be this: SkFlattenableWriteBuffer -> SkOrderedWriteBuffer SkFlattenableReadBuffer -> SkOrderedReadBuffer SkFlattenableReadBuffer -> SkValidatingReadBuffer is now SkWriteBuffer SkReadBuffer -> SkValidatingReadBuffer Benefits: - code is simpler, names are less wordy - the generic SkFlattenableFooBuffer code in SkPaint was incorrect; removed - write buffers are completely devirtualized, important for record speed This refactoring was mostly mechanical. You aren't going to find anything interesting in files with less than 10 lines changed. BUG=skia: R=reed@google.com, scroggo@google.com, djsollen@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/134163010 git-svn-id: http://skia.googlecode.com/svn/trunk@13245 2bbb7eff-a529-9590-31e7-b0007b416f81
* Adding size parameter to read array functionsGravatar commit-bot@chromium.org2013-10-31
| | | | | | | | | | | | | | | | | | | In some cases, the allocated array into which the data will be read is using getArrayCount() to allocate itself, which should be safe, but some cases use fixed length arrays or compute the array size before reading, which could overflow if the stream is compromised. To prevent that from happening, I added a check that will verify that the number of bytes to read will not exceed the capacity of the input buffer argument passed to all the read...Array() functions. I chose to use the byte array for this initial version, so that "size" represents the same value across all read...Array() functions, but I could also use the element count, if it is preferred. Note : readPointArray and writePointArray are unused, so I could also remove them BUG= R=reed@google.com, mtklein@google.com, senorblanco@chromium.org Author: sugoi@chromium.org Review URL: https://codereview.chromium.org/37803002 git-svn-id: http://skia.googlecode.com/svn/trunk@12058 2bbb7eff-a529-9590-31e7-b0007b416f81
* Initial error handling codeGravatar commit-bot@chromium.org2013-10-23
| | | | | | | | | | | | | | | | I made it as simple as possible. The impact seems minimal and it should do what's necessary to make this code secure. BUG= Committed: http://code.google.com/p/skia/source/detail?r=11247 R=reed@google.com, scroggo@google.com, djsollen@google.com, sugoi@google.com, bsalomon@google.com, mtklein@google.com, senorblanco@google.com, senorblanco@chromium.org Author: sugoi@chromium.org Review URL: https://codereview.chromium.org/23021015 git-svn-id: http://skia.googlecode.com/svn/trunk@11922 2bbb7eff-a529-9590-31e7-b0007b416f81
* force readbuffer clients to use specialized readFoo for flattenablesGravatar reed@google.com2013-10-16
| | | | | | | | | BUG= R=mtklein@google.com Review URL: https://codereview.chromium.org/26702002 git-svn-id: http://skia.googlecode.com/svn/trunk@11803 2bbb7eff-a529-9590-31e7-b0007b416f81
* Debugging statements to investigate a bug.Gravatar scroggo@google.com2013-07-08
| | | | | | | | | | | | | https://code.google.com/p/skia/issues/detail?id=1395 is a non- deterministic bug that I have been unable to reproduce. Add some debugging information to try to help diagnose. BUG=https://code.google.com/p/skia/issues/detail?id=1395 R=edisonn@google.com Review URL: https://codereview.chromium.org/18523008 git-svn-id: http://skia.googlecode.com/svn/trunk@9914 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add buffer helper to read directly into SkString to avoid extra copyingGravatar djsollen@google.com2013-05-21
| | | | | | | | R=reed@google.com Review URL: https://codereview.chromium.org/15179008 git-svn-id: http://skia.googlecode.com/svn/trunk@9218 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "Allow supporting 1 older PICTURE_VERSION."Gravatar scroggo@google.com2013-05-07
| | | | | | | | | | | | | | 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
* Allow supporting 1 older PICTURE_VERSION.Gravatar scroggo@google.com2013-04-30
| | | | | | | | | | | 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
* Remove SkSerializationHelpers.Gravatar scroggo@google.com2013-02-22
| | | | | | | | | | 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
* Create SkLazyPixelRef which performs lazy decoding.Gravatar scroggo@google.com2013-02-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add the ability to provide function pointers to SkPicture serializationGravatar scroggo@google.com2012-10-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and deserialization for encoding and decoding bitmaps. Remove kForceFlattenBitmapPixels_Flag, which is no longer used. When an SkOrderedReadBuffer needs to read a bitmap, if it does not have an image decoder, use a dummy bitmap. In GM, add a tolerance option for color differences, used when testing picture serialization, so it can assume two images are the same even though PNG encoding/decoding may have resulted in small differences. Create dummy implementations for SkImageDecoder and SkImageEncoder functions in SkImageDecoder_empty so that a project that does not want to include the images project it can still build. Allow ports to build without images project. In Mac's image encoder, copy 4444 to 8888 before encoding. Add SkWriter32::reservePad, to provide a pointer to write non 4 byte aligned data, padded with zeroes. In bench_ and render_ pictures, pass decode function to SkPicture creation from a stream. BUG=https://code.google.com/p/skia/issues/detail?id=842 Review URL: https://codereview.appspot.com/6551071 git-svn-id: http://skia.googlecode.com/svn/trunk@5818 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove dead code and update a comment.Gravatar scroggo@google.com2012-08-30
| | | | | | | | | InlineFactoryNames_Flag is no longer used, so remove it and update the comment. Review URL: https://codereview.appspot.com/6492057 git-svn-id: http://skia.googlecode.com/svn/trunk@5348 2bbb7eff-a529-9590-31e7-b0007b416f81
* privatization -- moving headers out of include into srcGravatar mike@reedtribe.org2012-08-09
git-svn-id: http://skia.googlecode.com/svn/trunk@5024 2bbb7eff-a529-9590-31e7-b0007b416f81