aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pipe/SkGPipeRead.cpp
Commit message (Collapse)AuthorAge
* Fixes for piping bitmaps with encoded data.Gravatar scroggo@google.com2013-04-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* PDF: add support for named destinations.Gravatar epoger@google.com2013-03-08
| | | | | | | Landing patchset 7 from https://codereview.appspot.com/7374052 for dml@google.com Review URL: https://codereview.chromium.org/12533009 git-svn-id: http://skia.googlecode.com/svn/trunk@8034 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert r8000 due to failures on some buildbotsGravatar epoger@google.com2013-03-06
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@8001 2bbb7eff-a529-9590-31e7-b0007b416f81
* PDF: add support for named destinations Gravatar epoger@google.com2013-03-06
| | | | | | | Imported from https://codereview.appspot.com/7374052/ on behalf of dml@google.com Review URL: https://codereview.chromium.org/12466008 git-svn-id: http://skia.googlecode.com/svn/trunk@8000 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Skia_Periodic_House_KeepingGravatar skia.committer@gmail.com2013-01-26
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@7406 2bbb7eff-a529-9590-31e7-b0007b416f81
* revert 6766, thereby re-landing 6762-6763 now that the bots are readyGravatar reed@google.com2012-12-12
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@6770 2bbb7eff-a529-9590-31e7-b0007b416f81
* revert 6762-6763, since those require new skps to be generated, and we can'tGravatar reed@google.com2012-12-12
| | | | | | | | 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
* make RRect and Oval first-class drawing primitives in SkCanvas.Gravatar reed@google.com2012-12-12
| | | | | | | 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
* Adding a silent playback option to SkGPipeReadGravatar junov@chromium.org2012-09-20
| | | | | | | | | | | Testing state consistency after silent playback in CanvasTest indirectly through SkDeferredCanvas. BUG=http://code.google.com/p/chromium/issues/detail?id=146178 TEST=CanvasTest unit test, and bench with --mode deferredSilent Review URL: https://codereview.appspot.com/6542047 git-svn-id: http://skia.googlecode.com/svn/trunk@5619 2bbb7eff-a529-9590-31e7-b0007b416f81
* re-re-land 5578Gravatar reed@google.com2012-09-18
| | | | | | | | will follow w/ new .skp files to keep the waterfall green (I hope) git-svn-id: http://skia.googlecode.com/svn/trunk@5584 2bbb7eff-a529-9590-31e7-b0007b416f81
* revert 5580Gravatar reed@google.com2012-09-18
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@5581 2bbb7eff-a529-9590-31e7-b0007b416f81
* re-land 5578 w/ pipe fixGravatar reed@google.com2012-09-18
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@5580 2bbb7eff-a529-9590-31e7-b0007b416f81
* Perform multi core rendering in bench_pictures.Gravatar scroggo@google.com2012-08-31
| | | | | | | | | | | | | Add a flag in SkGPipeWriter for threadsafe drawing. Add a deferred pipe controller to SamplePipeControllers, which can be called to play back in multiple threads. Depends on http://codereview.appspot.com/6459105/ Review URL: https://codereview.appspot.com/6482068 git-svn-id: http://skia.googlecode.com/svn/trunk@5371 2bbb7eff-a529-9590-31e7-b0007b416f81
* Result of running tools/sanitize_source_files.py (which was added in ↵Gravatar rmistry@google.com2012-08-23
| | | | | | | | | https://codereview.appspot.com/6465078/) This CL is part II of IV (I broke down the 1280 files into 4 CLs). Review URL: https://codereview.appspot.com/6474054 git-svn-id: http://skia.googlecode.com/svn/trunk@5263 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix a parenthesis bug.Gravatar scroggo@google.com2012-08-16
| | | | | | | | | | | | | | | | SkGPipeCanvas::needOpBytes was being called with the wrong value due to a misplaced parens in clipRect and clipPath. This can cause a crash if clip is called at just the right (wrong) time. Instead of writing a boolean to the stream, I have added a flag, which helps to avoid the parens problem. Also renamed some flags from _DrawOpsFlag to _DrawOpFlag for consistency. Lastly, added an assert that the size provided by the SkGPipeController is a multiple of four. Review URL: https://codereview.appspot.com/6453126 git-svn-id: http://skia.googlecode.com/svn/trunk@5134 2bbb7eff-a529-9590-31e7-b0007b416f81
* In SkGPipeCanvas, rename fSharedHeap to fBitmapHeapGravatar scroggo@google.com2012-08-14
| | | | | | | | to reflect the fact that it is only used for storing bitmaps. Review URL: https://codereview.appspot.com/6446134 git-svn-id: http://skia.googlecode.com/svn/trunk@5085 2bbb7eff-a529-9590-31e7-b0007b416f81
* Use SkBitmapHeap for shaders in SkGPipe.Gravatar scroggo@google.com2012-08-14
| | | | | | | | | | | | | Required adding a new feature to SkBitmapHeap, allowing it to defer adding owners, since sometimes we flatten a shader, but then do not unflatten it, since we already had a copy in the heap, so the owners never get removed. Reviewed at https://codereview.appspot.com/6464053/ Review URL: https://codereview.appspot.com/6465047 git-svn-id: http://skia.googlecode.com/svn/trunk@5082 2bbb7eff-a529-9590-31e7-b0007b416f81
* Check in r5063 again, along with fix for tests.Gravatar scroggo@google.com2012-08-14
| | | | | | | | | | | | | | | | | Thank you to Android build, for catching the problem, which would show up elsewhere. Now we access entry->fStorageSlot before deleting entry. (Original message:) Use the SkBitmapHeap to handle SkBitmaps in SkGPipe cross process. Required moving the LRU handles from SkBitmapHeapEntry to LookupEntry. Allows simplification of drawBitmap* calls in SkGPipeCanvas. Review URL: https://codereview.appspot.com/6453113 git-svn-id: http://skia.googlecode.com/svn/trunk@5081 2bbb7eff-a529-9590-31e7-b0007b416f81
* Clean up most clang warnings outside animator/Gravatar tomhudson@google.com2012-08-14
| | | | | | | | http://codereview.appspot.com/6464058/ git-svn-id: http://skia.googlecode.com/svn/trunk@5079 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert r5063 until unit tests can be fixed.Gravatar tomhudson@google.com2012-08-13
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@5067 2bbb7eff-a529-9590-31e7-b0007b416f81
* Use the SkBitmapHeap to handle SkBitmaps in SkGPipe cross process.Gravatar scroggo@google.com2012-08-13
| | | | | | | | | | Required moving the LRU handles from SkBitmapHeapEntry to LookupEntry. Allows simplification of drawBitmap* calls in SkGPipeCanvas. Review URL: https://codereview.appspot.com/6460073 git-svn-id: http://skia.googlecode.com/svn/trunk@5063 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make SkGPipe use SkBitmapHeap.Gravatar scroggo@google.com2012-08-08
| | | | | | | | | | | | | | In the single process (or hypothetical cross process/shared address space) mode, SkGPipe now uses SkBitmapHeap instead of SharedHeap. Still need to use the shared heap for shaders as well as for cross process. TEST=PipeTest Review URL: https://codereview.appspot.com/6461059 git-svn-id: http://skia.googlecode.com/svn/trunk@5008 2bbb7eff-a529-9590-31e7-b0007b416f81
* Update SkFlattenable buffers to be more modular.Gravatar djsollen@google.com2012-08-07
| | | | | | | | | | | | | | | | | This CL is an effort to stage the conversion to named parameters for all SkFlattenable commands. This particular stage only does the following two things... 1. Move flattenable buffers from SkFlattenable.h into their own header. 2. Update and Add new read write methods for better clarity and convenience. BUG= Review URL: https://codereview.appspot.com/6448095 git-svn-id: http://skia.googlecode.com/svn/trunk@4980 2bbb7eff-a529-9590-31e7-b0007b416f81
* Pipe factory names independently from the flattenables using them.Gravatar scroggo@google.com2012-08-01
| | | | | | | | | | | | | | | | Avoids an issue where a flattenable written twice might be written differently (the first time the flat data may have a name, whereas the second time it will have an index). Also add a test which confirms that identical flattenables will have the same SkFlatData representation. BUG=https://code.google.com/p/skia/issues/detail?id=721 TEST=FlatDataTest.cpp Review URL: https://codereview.appspot.com/6431057 git-svn-id: http://skia.googlecode.com/svn/trunk@4896 2bbb7eff-a529-9590-31e7-b0007b416f81
* Share code in various SkGPipeCanvas::drawBitmap_ calls.Gravatar scroggo@google.com2012-07-30
| | | | | | | | | | | | | | | | Also implement SkGPipeCanvas::drawBitmapMatrix, and create a GM to make sure it works properly. Use a flag instead of writing a bool for determining whether drawBitmap_ has a paint and whether drawBitmapRect has a source rectangle. BUG= TEST=drawbitmapmatrix GM Review URL: https://codereview.appspot.com/6450053 git-svn-id: http://skia.googlecode.com/svn/trunk@4828 2bbb7eff-a529-9590-31e7-b0007b416f81
* In SkGPipe, only serialize SkTypefaces in cross process mode.Gravatar scroggo@google.com2012-07-27
| | | | | | | | | | | | | | Also make SkGPipeController ref the recording canvas to ensure that objects used by SkGPipeCanvas (e.g. SharedHeap and fTypefaceSet, which hold references to objects to which pointers are written to the stream) survive to be played back even if SkGPipeWriter.endRecording() is called. BUG= TEST=TypefaceGM Review URL: https://codereview.appspot.com/6447055 git-svn-id: http://skia.googlecode.com/svn/trunk@4817 2bbb7eff-a529-9590-31e7-b0007b416f81
* Use SkFlatDictionary in SkGPipe to take advantage of its new features.Gravatar scroggo@google.com2012-07-17
| | | | | | | | | | | | Add a controller class to perform the allocation/unallocation for the dictionary and to provide an entry to be replaced, if replacements are allowed. TODO: Use LRU caching in my custom controller so replacements will be done less often. More refactoring on SkFlatDictionary so picture recording's use of the dictionary does not require going through the path to replace. Review URL: https://codereview.appspot.com/6345102 git-svn-id: http://skia.googlecode.com/svn/trunk@4639 2bbb7eff-a529-9590-31e7-b0007b416f81
* Purge bitmaps from SkGPipe's shared heap.Gravatar scroggo@google.com2012-07-17
| | | | | | | | | | | | | | | | | | | | | | | | BitmapInfo: Now in SkGPipePriv so it can be accessed by SkGPipeRead. Add the ability to essentially ref count BitmapInfos so that they can be purged to make room in the shared heap for a new one. SkGPipeWrite: Purge the least recently used bitmap if it has already been drawn by all readers. SkGPipeRead: Read the BitmapInfo (instead of the SkBitmap) and decrement its count after drawing. SkGPipeController: Added a method to tell how many readers will be used, so that when purging bitmaps each reader can be accounted for. Review URL: https://codereview.appspot.com/6374065 git-svn-id: http://skia.googlecode.com/svn/trunk@4638 2bbb7eff-a529-9590-31e7-b0007b416f81
* In SkGPipe, set a limit on the amount of flattenables cached.Gravatar scroggo@google.com2012-07-09
| | | | | | | | Also fix a type in gmmain. Review URL: https://codereview.appspot.com/6351061 git-svn-id: http://skia.googlecode.com/svn/trunk@4473 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix SkGPipe drawing, and turn it on by default.Gravatar scroggo@google.com2012-06-28
| | | | | | | | | | | | | | A recent change broke SkGPipe. Fix it, and turn on pipe drawing in GM by default so we will catch these in the future. We already had a bug where SkGPipeWriter had to use its Cross Process flag to work, so for a quick fix, force the reader to use the Cross Process flag as well. The bug to allow both cross and non cross process is http://code.google.com/p/skia/issues/detail?id=663 Review URL: https://codereview.appspot.com/6333071 git-svn-id: http://skia.googlecode.com/svn/trunk@4384 2bbb7eff-a529-9590-31e7-b0007b416f81
* For SkGPipe, store bitmaps in a common location.Gravatar scroggo@google.com2012-06-13
| | | | | | | | Also make a change to SkBitmap::copyTo() so that we do not crash. Review URL: https://codereview.appspot.com/6296066 git-svn-id: http://skia.googlecode.com/svn/trunk@4249 2bbb7eff-a529-9590-31e7-b0007b416f81
* Rename the existing flatten(void*) methods.Gravatar djsollen@google.com2012-06-08
| | | | | | | | This change avoids naminc confusion with the SkFlattenable flatten methods and also changes SkPath to use the void* model instead of taking a SkReader32. Review URL: https://codereview.appspot.com/6299062 git-svn-id: http://skia.googlecode.com/svn/trunk@4215 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add tiled rendering as an option to GM.Gravatar scroggo@google.com2012-06-06
| | | | | | | | | | | Use an SkGPipe to play back drawing into tiles. This will help us to debug differences in drawing while tiled. Pass --tiledPipe to gm to use the tiled pipe. Review URL: https://codereview.appspot.com/6295050 git-svn-id: http://skia.googlecode.com/svn/trunk@4199 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix warnings on Mac in src/pipeGravatar caryclark@google.com2012-06-06
| | | | | | | | | | | | | | | | | | Fix these class of warnings: - unused functions - unused locals - sign mismatch - missing function prototypes - missing newline at end of file - 64 to 32 bit truncation The changes prefer to link in dead code in the debug build with 'if (false)' than to comment it out, but trivial cases are commented out or sometimes deleted if it appears to be a copy/paste error. Review URL: https://codereview.appspot.com/6302045 git-svn-id: http://skia.googlecode.com/svn/trunk@4177 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix an issue where Pipe did not draw correctlyGravatar scroggo@google.com2012-06-05
| | | | | | | | | | | | on all platforms. Since parameters can be evaluated in any order, we can't call buffer.read() inline for multiple parameters. The fix is to read the stream (in the correct order) before we call the function. Review URL: https://codereview.appspot.com/6277046 git-svn-id: http://skia.googlecode.com/svn/trunk@4160 2bbb7eff-a529-9590-31e7-b0007b416f81
* Updates for SkGPipe.Gravatar scroggo@google.com2012-05-02
| | | | | | | | | | | | | | | Keep track of SkBitmaps which have been flattened by the PipeWriter so we can reuse them. Implement other flavors of drawBitmap (except drawBitmapMatrix). Flatten SkImageFilters in SkPaints. Do not notify if no new data has been written. Review URL: https://codereview.appspot.com/6128062 git-svn-id: http://skia.googlecode.com/svn/trunk@3826 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixes for drawing through an SkGPipe.Gravatar scroggo@google.com2012-04-20
| | | | | | | | | | | | | | | | | | | Implement SkGPipeCanvas::drawBitmap. Fix a bug where needOpBytes did not necessarily provide as many bytes as requested. Fix a bug where needOpBytes would wipe old data without calling notify. Register SkEmbossMaskFilter so it can be flattened. Override drawBitmapNine (currently unimplemented) so an SkGPipeCanvas does not call its base class' method (which would fail). Review URL: https://codereview.appspot.com/6071045 git-svn-id: http://skia.googlecode.com/svn/trunk@3741 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix bug where SkGPipe'ed clips do not happen.Gravatar scroggo@google.com2012-04-18
| | | | | | | | | | | | Modify SkGPipeCanvas::clipRect and ::clipPath so they correctly override the SkCanvas versions, and therefore get called. Also use SK_OVERRIDE for its virtual functions to help catch this in the future. BUG=572 Review URL: https://codereview.appspot.com/6055050 git-svn-id: http://skia.googlecode.com/svn/trunk@3718 2bbb7eff-a529-9590-31e7-b0007b416f81
* Decouple the SkFlattenable from SkReader32/SkWriter32.Gravatar djsollen@google.com2012-04-12
| | | | | | | | | | The current impl for SkFlattenable read/write buffers is that they extend from SkReader32 and SkWriter32, but that dependency must be abstract if we are to add any other serialization format. Review URL: https://codereview.appspot.com/5999045 git-svn-id: http://skia.googlecode.com/svn/trunk@3654 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add SkDEBUGFAIL to clean up use of SkASSERT(!"text");Gravatar tomhudson@google.com2011-12-28
| | | | | | | | | | catch a couple of latent SkASSERT("text") bugs. http://codereview.appspot.com/5504090/ git-svn-id: http://skia.googlecode.com/svn/trunk@2926 2bbb7eff-a529-9590-31e7-b0007b416f81
* Automatic update of all copyright notices to reflect new license terms.Gravatar epoger@google.com2011-07-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I have manually examined all of these diffs and restored a few files that seem to require manual adjustment. The following files still need to be modified manually, in a separate CL: android_sample/SampleApp/AndroidManifest.xml android_sample/SampleApp/res/layout/layout.xml android_sample/SampleApp/res/menu/sample.xml android_sample/SampleApp/res/values/strings.xml android_sample/SampleApp/src/com/skia/sampleapp/SampleApp.java android_sample/SampleApp/src/com/skia/sampleapp/SampleView.java experimental/CiCarbonSampleMain.c experimental/CocoaDebugger/main.m experimental/FileReaderApp/main.m experimental/SimpleCocoaApp/main.m experimental/iOSSampleApp/Shared/SkAlertPrompt.h experimental/iOSSampleApp/Shared/SkAlertPrompt.m experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig experimental/iOSSampleApp/SkiOSSampleApp-Debug.xcconfig experimental/iOSSampleApp/SkiOSSampleApp-Release.xcconfig gpu/src/android/GrGLDefaultInterface_android.cpp gyp/common.gypi gyp_skia include/ports/SkHarfBuzzFont.h include/views/SkOSWindow_wxwidgets.h make.bat make.py src/opts/memset.arm.S src/opts/memset16_neon.S src/opts/memset32_neon.S src/opts/opts_check_arm.cpp src/ports/SkDebug_brew.cpp src/ports/SkMemory_brew.cpp src/ports/SkOSFile_brew.cpp src/ports/SkXMLParser_empty.cpp src/utils/ios/SkImageDecoder_iOS.mm src/utils/ios/SkOSFile_iOS.mm src/utils/ios/SkStream_NSData.mm tests/FillPathTest.cpp Review URL: http://codereview.appspot.com/4816058 git-svn-id: http://skia.googlecode.com/svn/trunk@1982 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix warnings (signed/unsigned, initialization order, parens)Gravatar reed@google.com2011-06-27
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@1724 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove drawShape from canvas apiGravatar reed@google.com2011-06-27
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@1723 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add option in flattening to write factory names inline, as we are recording.Gravatar reed@google.com2011-06-21
| | | | | | | | | | | | | | | | | | | SkGPipe needs this, since it cannot (unlike SkPicture) see all of the factories before it hands its data to the reader. In this mode, the writer embedds the factory name the first time it sees it, and then after that writes an index (referencing the fFactorySet). The reader installs an empty array, and as it encounters names, appends them to that array so that subsequent indices can be used to retrieve the previously named factory. Some of the existing patheffects did not register their factory names, so those changes are also part of this CL. Annoyingly, to register your factory using the current scheme, it has to be in the public section of the class definition. git-svn-id: http://skia.googlecode.com/svn/trunk@1663 2bbb7eff-a529-9590-31e7-b0007b416f81
* Modified Pipe Reader to read an atom at a timeGravatar yangsu@google.com2011-06-16
| | | | | | | http://codereview.appspot.com/4636043/ git-svn-id: http://skia.googlecode.com/svn/trunk@1623 2bbb7eff-a529-9590-31e7-b0007b416f81
* return the bytes read, not the total providedGravatar reed@google.com2011-05-24
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@1404 2bbb7eff-a529-9590-31e7-b0007b416f81
* add optoinal bytesRead argument (output) to playback()Gravatar reed@google.com2011-05-23
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@1400 2bbb7eff-a529-9590-31e7-b0007b416f81
* add cross-process option to gpipeGravatar reed@google.com2011-05-23
| | | | | | | | add unittests for reader32 and writer32 git-svn-id: http://skia.googlecode.com/svn/trunk@1397 2bbb7eff-a529-9590-31e7-b0007b416f81
* cleanup previous array of paintsGravatar reed@google.com2011-05-12
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@1310 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove some dead code in pipesGravatar reed@google.com2011-05-11
| | | | | | | | | inherit from SampleView for more samples add L key to toggle using SkGPipe git-svn-id: http://skia.googlecode.com/svn/trunk@1296 2bbb7eff-a529-9590-31e7-b0007b416f81