aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/utils/SkDeferredCanvas.cpp
Commit message (Collapse)AuthorAge
* If the path is a rect, call drawRect to raster the geometry in ↵Gravatar bsalomon@google.com2013-10-22
| | | | | | | | | | | | SkCanvas::drawPath to get better performance. Committed: http://code.google.com/p/skia/source/detail?r=11842 R=bsalomon@google.com Review URL: https://codereview.chromium.org/23484007 git-svn-id: http://skia.googlecode.com/svn/trunk@11904 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert r11842 (call drawRect to try GrAARectRenderer if the path is a rect - ↵Gravatar robertphillips@google.com2013-10-17
| | | | | | | | | | | | https://codereview.chromium.org/23484007) due to changes to the following GM images: inverse_paths pathopsinverse git-svn-id: http://skia.googlecode.com/svn/trunk@11845 2bbb7eff-a529-9590-31e7-b0007b416f81
* If the path is a rect, call drawRect to raster the geometry in ↵Gravatar commit-bot@chromium.org2013-10-17
| | | | | | | | | | | | SkCanvas::drawPath to get better performance. R=bsalomon@google.com, robertphillips@google.com, reed@google.com Author: yunchao.he@intel.com Review URL: https://codereview.chromium.org/23484007 git-svn-id: http://skia.googlecode.com/svn/trunk@11842 2bbb7eff-a529-9590-31e7-b0007b416f81
* Start cleaning up 64bit Win warningsGravatar robertphillips@google.com2013-10-14
| | | | | | | | https://codereview.chromium.org/27192003/ git-svn-id: http://skia.googlecode.com/svn/trunk@11764 2bbb7eff-a529-9590-31e7-b0007b416f81
* Split SkDevice into SkBaseDevice and SkBitmapDeviceGravatar robertphillips@google.com2013-08-29
| | | | | | | | https://codereview.chromium.org/22978012/ git-svn-id: http://skia.googlecode.com/svn/trunk@10995 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert r10830 (Split SkDevice out of SkRasterDevice) until we can get ↵Gravatar robertphillips@google.com2013-08-20
| | | | | | Chromium ready. git-svn-id: http://skia.googlecode.com/svn/trunk@10835 2bbb7eff-a529-9590-31e7-b0007b416f81
* Split SkDevice out of SkBitmapDeviceGravatar robertphillips@google.com2013-08-20
| | | | | | | | https://codereview.chromium.org/22978012/ git-svn-id: http://skia.googlecode.com/svn/trunk@10830 2bbb7eff-a529-9590-31e7-b0007b416f81
* This CL plumbs in the drawBitmapRectToRect "bleed" flag and makes it live on ↵Gravatar commit-bot@chromium.org2013-08-16
| | | | | | | | | | | | 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
* Removing deprecated constructors and setDevice from SkDeferredCanvasGravatar commit-bot@chromium.org2013-08-09
| | | | | | | | | | | R=senorblanco@google.com, senorblanco@chromium.org BUR=crbug.com/270143 Author: junov@chromium.org Review URL: https://chromiumcodereview.appspot.com/22385011 git-svn-id: http://skia.googlecode.com/svn/trunk@10657 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2013-08-06
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@10554 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixing SkDeferredCanvas::writePixels to trigger appropriate change ↵Gravatar junov@chromium.org2013-08-02
| | | | | | | | | | | | notifications to SkSurface BUG=crbug.com/256269 TEST=DeferredCanvas unit test, TestDeferredCanvasWritePixelsToSurface R=reed@google.com Review URL: https://codereview.chromium.org/20628005 git-svn-id: http://skia.googlecode.com/svn/trunk@10513 2bbb7eff-a529-9590-31e7-b0007b416f81
* drawBitmap* cleanupGravatar robertphillips@google.com2013-07-25
| | | | | | | | https://codereview.chromium.org/19977003/ git-svn-id: http://skia.googlecode.com/svn/trunk@10342 2bbb7eff-a529-9590-31e7-b0007b416f81
* I don't want these changes as part of the "allow bleeding" CL.Gravatar commit-bot@chromium.org2013-07-23
| | | | | | | | | | R=bsalomon@google.com Author: robertphillips@google.com Review URL: https://chromiumcodereview.appspot.com/19842002 git-svn-id: http://skia.googlecode.com/svn/trunk@10256 2bbb7eff-a529-9590-31e7-b0007b416f81
* Change undefined SkGpuRenderTarget and SkGpuTexture forward declares to ↵Gravatar commit-bot@chromium.org2013-06-26
| | | | | | | | | | | | GrRenderTarget and GrTexture. R=robertphillips@google.com, reed@google.com Author: bsalomon@google.com Review URL: https://chromiumcodereview.appspot.com/17269003 git-svn-id: http://skia.googlecode.com/svn/trunk@9775 2bbb7eff-a529-9590-31e7-b0007b416f81
* Build fixGravatar junov@chromium.org2013-05-28
| | | | | | TBR=reed git-svn-id: http://skia.googlecode.com/svn/trunk@9299 2bbb7eff-a529-9590-31e7-b0007b416f81
* Changing SkDeferredCanvas to use factories for creationGravatar junov@chromium.org2013-05-28
| | | | | | | | | | | | | | | 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
* Adding setSurface public API method to SkDeferredCanvasGravatar junov@chromium.org2013-05-24
| | | | | | | | | The purpose of this change is to provide an API that Blink 2D canvas layers can use to install a new render target when recovering from a lost graphics context. Review URL: https://codereview.chromium.org/15896005 git-svn-id: http://skia.googlecode.com/svn/trunk@9276 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixing deferred canvases so that they do not return deferred devices on ↵Gravatar junov@chromium.org2013-05-21
| | | | | | | | | | createCompatibleDevice TEST= DeferredCanvas unit test. Review URL: https://codereview.chromium.org/15594004 git-svn-id: http://skia.googlecode.com/svn/trunk@9224 2bbb7eff-a529-9590-31e7-b0007b416f81
* Adding optimization to avoid image copy in SkSurface copy on write when ↵Gravatar commit-bot@chromium.org2013-04-22
| | | | | | | | | | | | | | | content is discardable This patch also adds code to SkDeferredCanvas to trigger the optimization. TEST=DeferredSurfaceCopy bench, Surface unit test R=reed@google.com Author: junov@chromium.org Review URL: https://chromiumcodereview.appspot.com/14063015 git-svn-id: http://skia.googlecode.com/svn/trunk@8797 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix crash with SkDeferredCanvas+SkSurface integration with in order draw buffer.Gravatar junov@chromium.org2013-04-15
| | | | | | | | | | | The fImmediateDevice member of DeferredDevice (SkDeferredCanvas.cpp) was becoming invalid after a fork of the backingstore in SkSurface_Gpu cause the device to be substituted. New unit test code was to exercise SkSurface copy on write with draws that are deferred in GrInOrderDrawBuffer. The bad pointer was causing the test to crash. TEST=skia unit test DeferredCanvas, subtest TestDeferredCanvasSurface Review URL: https://codereview.chromium.org/14263015 git-svn-id: http://skia.googlecode.com/svn/trunk@8686 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixing viral copy/paste typo Shapshot -> SnapshotGravatar junov@chromium.org2013-04-12
| | | | | | Unreviewed git-svn-id: http://skia.googlecode.com/svn/trunk@8667 2bbb7eff-a529-9590-31e7-b0007b416f81
* Adding SkSurface support to SkDeferredCanvasGravatar junov@chromium.org2013-04-12
| | | | | | Review URL: https://codereview.chromium.org/14178002 git-svn-id: http://skia.googlecode.com/svn/trunk@8648 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move code in isPaintOpaque from SkDeferredCanvas.cpp to SkPaintPrivGravatar junov@chromium.org2013-01-24
| | | | | | | | | | | The purpose of this code move is to make it re-usable in order to implement occlusion culling optimizations in SkPicture similar to what we have now in SkDeferredCanvas. BUG=https://code.google.com/p/chromium/issues/detail?id=164530 Review URL: https://codereview.appspot.com/7196046 git-svn-id: http://skia.googlecode.com/svn/trunk@7361 2bbb7eff-a529-9590-31e7-b0007b416f81
* Expose geometry and gamma on device.Gravatar bungeman@google.com2013-01-22
| | | | | | | https://codereview.appspot.com/6499101/ git-svn-id: http://skia.googlecode.com/svn/trunk@7317 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix warningsGravatar reed@google.com2013-01-07
| | | | | | Review URL: https://codereview.appspot.com/7073044 git-svn-id: http://skia.googlecode.com/svn/trunk@7064 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixing clip region test in deferred canvas, used to determine whether a draw ↵Gravatar junov@chromium.org2012-12-13
| | | | | | | | | | operation occludes the entire canvas. BUG=http://code.google.com/p/chromium/issues/detail?id=164580 TEST=unit test DeferredCanvas/TestDeferredCanvasFreshFrame Review URL: https://codereview.appspot.com/6934045 git-svn-id: http://skia.googlecode.com/svn/trunk@6780 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Skia_Periodic_House_KeepingGravatar skia.committer@gmail.com2012-12-13
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@6774 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
* Simple change to remove unnecessary #define statement.Gravatar sugoi@google.com2012-11-21
| | | | | | | | BUG=http://code.google.com/p/chromium/issues/detail?id=137924 TEST=TestDeferredCanvasBitmapSizeThreshold unit test Review URL: https://codereview.appspot.com/6845071 git-svn-id: http://skia.googlecode.com/svn/trunk@6531 2bbb7eff-a529-9590-31e7-b0007b416f81
* Deferred canvas can now be flushed if an image is beyond a certain size to ↵Gravatar sugoi@google.com2012-11-21
| | | | | | | | | | avoid a costly image copy. BUG=http://code.google.com/p/chromium/issues/detail?id=137924 TEST=TestDeferredCanvasBitmapSizeThreshold unit test Review URL: https://codereview.appspot.com/6852071 git-svn-id: http://skia.googlecode.com/svn/trunk@6527 2bbb7eff-a529-9590-31e7-b0007b416f81
* Eliminating implicit conversion from enum to bool. Fixes compiler warningGravatar junov@chromium.org2012-10-30
| | | | | | Review URL: https://codereview.appspot.com/6819053 git-svn-id: http://skia.googlecode.com/svn/trunk@6206 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixing SkDeferredCanvas to not consider paint as opaque when xfermode source ↵Gravatar junov@chromium.org2012-10-11
| | | | | | | | | | | | | coeff depends on destination pixel value TEST=DeferredCanvas unit test BUG=http://code.google.com/p/chromium/issues/detail?id=154748 git-svn-id: http://skia.googlecode.com/svn/trunk@5907 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reland r5861 but leave setMatrixClip virtual on SkDevice (IOW this is a ↵Gravatar bsalomon@google.com2012-10-10
| | | | | | | | | partial revert of r5871 which reverted r5861). Unreviewed Review URL: https://codereview.appspot.com/6631062 git-svn-id: http://skia.googlecode.com/svn/trunk@5881 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reverting r5861 (remove gainfocus and setMatixClip) due to Chrome ↵Gravatar robertphillips@google.com2012-10-09
| | | | | | compilation issues git-svn-id: http://skia.googlecode.com/svn/trunk@5871 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove gainFocus() and setMatrixClip() virtuals from SkDevice.Gravatar bsalomon@google.com2012-10-09
| | | | | | | R=reed@google.com,robertphillips@google.com Review URL: https://codereview.appspot.com/6636050 git-svn-id: http://skia.googlecode.com/svn/trunk@5861 2bbb7eff-a529-9590-31e7-b0007b416f81
* Adding virtual method to SkDeferredCanvas::NotificationClient for signaling ↵Gravatar junov@google.com2012-10-01
| | | | | | | | | | when commands are skipped due to the skip on clear optimization. TEST=DeferredCanvas unit test BUG=http://code.google.com/p/chromium/issues/detail?id=116840 Review URL: https://codereview.appspot.com/6590050 git-svn-id: http://skia.googlecode.com/svn/trunk@5747 2bbb7eff-a529-9590-31e7-b0007b416f81
* Adding hasPendingCommands API method to SkDeferredCanvasGravatar junov@chromium.org2012-09-20
| | | | | | | BUG=http://code.google.com/p/chromium/issues/detail?id=146178 Review URL: https://codereview.appspot.com/6550050 git-svn-id: http://skia.googlecode.com/svn/trunk@5632 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixing how deferred canvas purges itself when a clear is recoreded.Gravatar junov@chromium.org2012-09-20
| | | | | | | | | | | | | | | | | | | | | | This fixes performance because the old code was not reconstructing the clip state correctly. This was causing a major performance degradation in the Galactic IE testdrive demo. This fix also enbles the purge on clear optimization when there is saved state on the matrix/clip stack. The approach taken to solve the problem consists in purging by running the playback silently. The previous approach was tearing down and restarting the gpipe, which required reconstructing state, which is fragile and hard to do correctly, and has the side effect of clearing the bitmap heap and the flattened dictionary. Note: This CL is expected to slightly degrade performance of the deferred_canvas_record bench, which uses the skip on clear optimization. This is because a silent playback takes more time that just destroying the SkGPipe. Correctness trumps performance. BUG=http://code.google.com/p/chromium/issues/detail?id=146178 Review URL: https://codereview.appspot.com/6531048 git-svn-id: http://skia.googlecode.com/svn/trunk@5627 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
* Renaming a couple methods in SkDeferredCanvas.cpp to improve readabilityGravatar junov@chromium.org2012-09-19
| | | | | | Review URL: https://codereview.appspot.com/6536060 git-svn-id: http://skia.googlecode.com/svn/trunk@5599 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
* revert 5578 -- broke pipeGravatar reed@google.com2012-09-18
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@5579 2bbb7eff-a529-9590-31e7-b0007b416f81
* Change drawBitmapRect to take a float-src-rect instead of integer-src-rect. ThisGravatar reed@google.com2012-09-18
| | | | | | | | | | | | | | | | | | allows the client more control over the scaling. Because of virtual overrides and wanting to keep the old call-sites up and running, this CL renames the virtual entry-point to drawBitmapRectToRect, and downgrades drawBitmapRect to a non-virtual helper function. The implementation is to use the float-rect for computing the matrix, but still cons-up an integer rect for the purposes of subsetting the original bitmap. We do this by calling float_src->roundOut(&int_src) so that we include all (partially) covered src pixels. No change needed on SkDevice, since that signature is explicitly passed the computed matrix. Review URL: https://codereview.appspot.com/6501140 git-svn-id: http://skia.googlecode.com/svn/trunk@5578 2bbb7eff-a529-9590-31e7-b0007b416f81
* Shut up some Mac (xcode 3) warningsGravatar bsalomon@google.com2012-09-05
| | | | | | | | Review URL: http://codereview.appspot.com/6503053/ git-svn-id: http://skia.googlecode.com/svn/trunk@5402 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
* Stop refcounting SkDeferredCanvas::NotificationClientGravatar junov@chromium.org2012-08-20
| | | | | | | | User code (i.e. WebKit) is now responsible for the lifetime scope of the notification client. With http://trac.webkit.org/changeset/125804 skia-side ref counting has become unnecessary and undesirable. Review URL: https://codereview.appspot.com/6443146 git-svn-id: http://skia.googlecode.com/svn/trunk@5169 2bbb7eff-a529-9590-31e7-b0007b416f81