aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkCanvas.cpp
Commit message (Collapse)AuthorAge
* Add GPU support for axis-aligned ovals:Gravatar jvanverth@google.com2013-01-22
| | | | | | | | | | | | | | | - Add drawOval base function to SkDevice, and override in SkGpuDevice - Move isSimilarityMatrix to SkMatrix (renamed to isSimilarity) and fixed up unit test - Since both SkGpuDevice::drawOval() and GrContext::drawPath() can try to draw ovals, added GrContext::canDrawOval() and GrContext::internalDrawOval() to avoid duplicate code - Hooked in axis-aligned oval fill shader - Enabled GPU stroked circles - Added stroked circle bench test Review URL: https://codereview.appspot.com/7137050 git-svn-id: http://skia.googlecode.com/svn/trunk@7304 2bbb7eff-a529-9590-31e7-b0007b416f81
* The motivation for this changeset is to fix the following build failure in ↵Gravatar rmistry@google.com2013-01-02
| | | | | | | | | | | | | | | google3- third_party/skia/src/core/SkCanvas.cpp:1711:61: error: non-constant-expression cannot be narrowed from type 'int32_t' (aka 'int') to 'SkScalar' (aka 'float') in initializer list [-Wc++11-narrowing] 0, SkIntToScalar(c.fLeft), SkIntToScalar(c.fRight), w ^ third_party/skia/src/core/SkCanvas.cpp:1711:61: note: override this message by inserting an explicit cast 0, SkIntToScalar(c.fLeft), SkIntToScalar(c.fRight), w ^ static_cast<SkScalar>( ) Review URL: https://codereview.appspot.com/7041044 git-svn-id: http://skia.googlecode.com/svn/trunk@6979 2bbb7eff-a529-9590-31e7-b0007b416f81
* add per-draw checks for lockcountsGravatar reed@google.com2012-12-14
| | | | | | Review URL: https://codereview.appspot.com/6943056 git-svn-id: http://skia.googlecode.com/svn/trunk@6815 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
* Make SkClipStack::Iter use SkClipStack::Element.Gravatar bsalomon@google.com2012-12-04
| | | | | | | R=robertphillips@google.com Review URL: https://codereview.appspot.com/6871051 git-svn-id: http://skia.googlecode.com/svn/trunk@6661 2bbb7eff-a529-9590-31e7-b0007b416f81
* change SkDrawFilter::filter to return a bool, where false means don't-drawGravatar reed@google.com2012-11-26
| | | | | | Review URL: https://codereview.appspot.com/6851111 git-svn-id: http://skia.googlecode.com/svn/trunk@6551 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add temporary interfaces in blur and clip toGravatar caryclark@google.com2012-11-07
| | | | | | | | | permit testing if it is to our advantage to selectively disable soft clipping and high quality blurs during animations. Review URL: https://codereview.appspot.com/6812092 git-svn-id: http://skia.googlecode.com/svn/trunk@6328 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
* Remove external matrix feature.Gravatar bsalomon@google.com2012-10-08
| | | | | | | | | We haven't been testing this for nearly two years. R=reed@google.com Review URL: https://codereview.appspot.com/6640044 git-svn-id: http://skia.googlecode.com/svn/trunk@5857 2bbb7eff-a529-9590-31e7-b0007b416f81
* re-land removal of setBitmapDeviceGravatar reed@google.com2012-10-01
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@5746 2bbb7eff-a529-9590-31e7-b0007b416f81
* Rolling back r5732 due to Chrome Mac compiler issuesGravatar robertphillips@google.com2012-09-30
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@5744 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove setBitmapDevice -- no longer called, and is a necessary step on our wayGravatar reed@google.com2012-09-28
| | | | | | | | to removing setDevice (and hopefully getDevice after that). git-svn-id: http://skia.googlecode.com/svn/trunk@5732 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix recursive GPU processing for SkImageFilter. Plumb through theGravatar senorblanco@chromium.org2012-09-27
| | | | | | | | | | | SkImageFilter::Proxy parameter to the GPU recursion path. Extract DeviceImageFilterProxy from SkCanvas.cpp into its own .h, and rename it. https://codereview.appspot.com/6575059/ git-svn-id: http://skia.googlecode.com/svn/trunk@5720 2bbb7eff-a529-9590-31e7-b0007b416f81
* add getMetaData() to SkCanvas (as part of our master plan to removeGravatar mike@reedtribe.org2012-09-26
| | | | | | | | subclasses of SkCanvas and SkDevice from our clients. git-svn-id: http://skia.googlecode.com/svn/trunk@5679 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Skia_Periodic_House_KeepingGravatar skia.committer@gmail.com2012-09-26
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@5678 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reimplement drawBitmapRectToRect to correctly handle fraction srcRect.Gravatar reed@google.com2012-09-25
| | | | | | | | | | | | | | | | | | | | | | | | The prev impl relied on drawBitmap "deducing" the destination rect by applying the computed matrix to the bitmap's bounds. This cannot be done if the srcRect is fractional, and therefore not representable w/ a bitmap. The new impl computes the same matrix, but calls down to the device via drawRect + a bitmap_shader. This allows us to specfiy the dstRect explicitly. The possible down-side is that we now rely on the device subclass to efficiently handle draRect+shader, instead of calling its drawBitmap entry-point. To give the device the chance to handle this differently, I now call through to a new device virtual: drawBitmapRect. The default impl is to create the shader and call drawRect, but a subclass can intercept that. For now, the GPU override of drawBitmapRect is mimicing the old behavior (by rounding the srcRect to an iRect). This preserves its ability to call drawBitmap which handles very-large textures, but shows some gittering/imprecision, due to the rounding. ... this is the same GPU behavior we have before this CL. Review URL: https://codereview.appspot.com/6542065 git-svn-id: http://skia.googlecode.com/svn/trunk@5663 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
* Sanitizing source files in Skia_Nightly_House_KeepingGravatar skia.committer@gmail.com2012-08-30
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@5346 2bbb7eff-a529-9590-31e7-b0007b416f81
* In which a series of things around attachToCanvas and writePixels are fixedGravatar bsalomon@google.com2012-08-29
| | | | | | | | Review URL: https://codereview.appspot.com/6506051/ git-svn-id: http://skia.googlecode.com/svn/trunk@5341 2bbb7eff-a529-9590-31e7-b0007b416f81
* Clear SkCanvas::fLastDeviceToGainFocus when releasing a deviceGravatar bsalomon@google.com2012-08-29
| | | | | | | | Review URL: https://codereview.appspot.com/6499051/ git-svn-id: http://skia.googlecode.com/svn/trunk@5338 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add caching of the snapshot image form a surfaceGravatar reed@google.com2012-08-28
| | | | | | | | | Notify the surface when the canvas draws into it, so it can invalidate the cached image, and (if needed) perform a copy-on-write on the surface if it was being shared with the image. Review URL: https://codereview.appspot.com/6441115 git-svn-id: http://skia.googlecode.com/svn/trunk@5306 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 I of IV (I broke down the 1280 files into 4 CLs). Review URL: https://codereview.appspot.com/6485054 git-svn-id: http://skia.googlecode.com/svn/trunk@5262 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove EdgeType enum. Unimportant distinction, and removing speeds up ↵Gravatar reed@google.com2012-08-16
| | | | | | | | quickReject Review URL: https://codereview.appspot.com/6448161 git-svn-id: http://skia.googlecode.com/svn/trunk@5140 2bbb7eff-a529-9590-31e7-b0007b416f81
* add SK_ENABLE_CLIP_QUICKREJECT option (currently disabled)Gravatar reed@google.com2012-08-16
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@5135 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add virtual destructor to class with virtual functions.Gravatar justinlin@google.com2012-07-27
| | | | | | | | | BUG= TEST= Review URL: https://codereview.appspot.com/6453052 git-svn-id: http://skia.googlecode.com/svn/trunk@4810 2bbb7eff-a529-9590-31e7-b0007b416f81
* reject any paths that are not finite.Gravatar reed@google.com2012-07-26
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4785 2bbb7eff-a529-9590-31e7-b0007b416f81
* Made clarifying renamings to SkClipStack's iterators (and added to unit test)Gravatar robertphillips@google.com2012-07-20
| | | | | | | | http://codereview.appspot.com/6423051/ git-svn-id: http://skia.googlecode.com/svn/trunk@4692 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixed two sub-optimal iterator usesGravatar robertphillips@google.com2012-07-16
| | | | | | | | http://codereview.appspot.com/6409048/ git-svn-id: http://skia.googlecode.com/svn/trunk@4633 2bbb7eff-a529-9590-31e7-b0007b416f81
* Adding bracketing save/restore calls to SkPicture at record time andGravatar junov@chromium.org2012-07-16
| | | | | | | | | | preparing tests for enforcing save/restore balancing constraints on SkPicture Review URL: http://codereview.appspot.com/6354105/ git-svn-id: http://skia.googlecode.com/svn/trunk@4618 2bbb7eff-a529-9590-31e7-b0007b416f81
* Added SkDevice onAttachToCanvas & onDetachFromCanvas methodsGravatar robertphillips@google.com2012-07-13
| | | | | | | | http://codereview.appspot.com/6348100/ git-svn-id: http://skia.googlecode.com/svn/trunk@4598 2bbb7eff-a529-9590-31e7-b0007b416f81
* Rolling back r4034 (Proposed plumbing to propagate save & restore)Gravatar robertphillips@google.com2012-07-03
| | | | | | | | http://codereview.appspot.com/6346066/ git-svn-id: http://skia.googlecode.com/svn/trunk@4456 2bbb7eff-a529-9590-31e7-b0007b416f81
* add more SkInstCnt plumbingGravatar reed@google.com2012-06-26
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4343 2bbb7eff-a529-9590-31e7-b0007b416f81
* Expanded distribution of instance countingGravatar robertphillips@google.com2012-06-21
| | | | | | | | http://codereview.appspot.com/6300114/ git-svn-id: http://skia.googlecode.com/svn/trunk@4291 2bbb7eff-a529-9590-31e7-b0007b416f81
* Plumbing to propagate save & restore from SkCanvas down to GrContext & lowerGravatar robertphillips@google.com2012-05-23
| | | | | | | | http://codereview.appspot.com/6203067/ git-svn-id: http://skia.googlecode.com/svn/trunk@4034 2bbb7eff-a529-9590-31e7-b0007b416f81
* pass the region-op to the clipstack for SkCanvas::clipRegion.Gravatar reed@google.com2012-05-16
| | | | | | | | we were defaulting to intersect all the time (doh). git-svn-id: http://skia.googlecode.com/svn/trunk@3980 2bbb7eff-a529-9590-31e7-b0007b416f81
* perform quickReject in drawPoints (which is called by drawLine) just like weGravatar reed@google.com2012-05-16
| | | | | | | | already did in drawRect and drawPath git-svn-id: http://skia.googlecode.com/svn/trunk@3968 2bbb7eff-a529-9590-31e7-b0007b416f81
* inline the fast case for AutoDrawLoop::next() so we don't slow down simpleGravatar reed@google.com2012-05-15
| | | | | | | | draws like drawRect (with no fancy effects) git-svn-id: http://skia.googlecode.com/svn/trunk@3933 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add missing null device checks in SkCanvasGravatar djsollen@google.com2012-05-01
| | | | | | Review URL: https://codereview.appspot.com/6092056 git-svn-id: http://skia.googlecode.com/svn/trunk@3810 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixed minor Release & fixed point compiler warnings on LinuxGravatar robertphillips@google.com2012-04-25
| | | | | | | | http://codereview.appspot.com/6118050/ git-svn-id: http://skia.googlecode.com/svn/trunk@3766 2bbb7eff-a529-9590-31e7-b0007b416f81
* proper handling if SkMatrix::invert failes, addresses hack fix in rev. 3657Gravatar mike@reedtribe.org2012-04-14
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3679 2bbb7eff-a529-9590-31e7-b0007b416f81
* replace getTotalClipStack() with replayClips()+ClipVisitorGravatar reed@google.com2012-04-13
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3670 2bbb7eff-a529-9590-31e7-b0007b416f81