aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
...
* SSE2 implementation of S32_D565_Opaque_DitherGravatar commit-bot@chromium.org2014-03-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Run benchmarks with command line option "--forceDither true". The result shows that all benchmarks exercised S32_D565_Opaque_Dither benefit from this SSE2 optimization. Here are the data on i7-3770: before after constXTile_MM_filter 900.93 217.75 75.83% constXTile_CC_filter_scale 907.59 225.65 75.14% constXTile_RR_filter 903.33 219.41 75.71% constXTile_MM_scale 902.45 221.46 75.46% constXTile_CC 898.55 218.37 75.70% constXTile_RR_scale 902.69 222.35 75.37% repeatTile_4444_X 938.53 240.49 74.38% gradient_radial2_mirror 16999.49 11540.39 32.11% gradient_radial2_clamp_hicolor 17943.38 12501.71 30.33% gradient_radial2_clamp 17816.36 12492.04 29.88% bitmaprect_FF_filter_trans 47.81 10.98 77.03% bitmaprect_FF_nofilter_trans 47.79 10.91 77.18% bitmaprect_FF_filter_identity 47.74 10.89 77.18% bitmaprect_FF_nofilter_identity 47.83 10.89 77.24% bitmap_4444_update_scale_rotate_bilerp 100.45 76.84 23.50% bitmap_4444_update_volatile_scale_rotate_bilerp 100.80 76.70 23.91% bitmap_4444_scale_rotate_bilerp 100.43 77.18 23.15% bitmap_4444_update_scale_bilerp 79.00 49.03 37.93% bitmap_4444_update_volatile_scale_bilerp 78.90 48.87 38.06% bitmap_4444_scale_bilerp 78.92 48.81 38.16% bitmap_4444_update 42.19 11.53 72.68% bitmap_4444_update_volatile 42.28 11.49 72.82% bitmap_a8 60.37 29.75 50.72% bitmap_4444 42.19 11.52 72.69% BUG= R=mtklein@google.com Author: qiankun.miao@intel.com Review URL: https://codereview.chromium.org/181293002 git-svn-id: http://skia.googlecode.com/svn/trunk@13698 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add SkCanvas::writePixels that takes info+pixels directlyGravatar commit-bot@chromium.org2014-03-07
| | | | | | | | | | | | | add corresponding methods to device (w/ diff name to avoid colliding with exising virtuals) BUG=skia: R=bsalomon@google.com, robertphillips@google.com, junov@google.com, junov@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/180113010 git-svn-id: http://skia.googlecode.com/svn/trunk@13697 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add a class to allocate small objects w/o extra calls to new.Gravatar commit-bot@chromium.org2014-03-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add SkSmallAllocator, a template for allocating small (as defined by the instantiation) objects without extra calls to new. Add a helper macro to make using it simple. Remove SkTemplatesPriv.h, whose behavior is replaced by SkSmallAllocator. The old SK_PLACEMENT_NEW had the following drawbacks: - Easily confused with SkNEW_PLACEMENT. - Requires passing around lots of void*s along with the storageSize. - Requires using a separate class for deleting it. - We had multiple ways Auto objects for deleting in different places. - It always did a straight heap allocation on Windows, meaning Windows did not get any advantages from the confusing code. The new SkSmallAllocator simplifies things: - It is clear about what it does. - It takes care of the deletion in one place that is automatically handled. Further, the new class can be used to create more than one object. This is in preparation for BUG=skia:1976, for which we would like to create a new object without extra heap allocations. The plan is to create both the blitter and the new object on the stack using the SkSmallAllocator. Add a new test for SkSmallAllocator. SkShader.h: Move the private version of CreateBitmapShader to SkBitmapProcShader (which already has the implementation) and remove the friend class (which was only used to call this private function). This allows SkSmallAllocator to reside in the private src/ directory. SkBitmapProcShader: Move CreateBitmapShader and the macro for the storage size here. With the macro in a (private) header, the (private) headers with function declarations (which now depend on the storage size used) can see the macro. Use SkSmallAllocator in CreateBitmapShader. Change the macro to kBlitterStorageByteCount, since SkSmallAllocator takes a byte count as its template parameter. SkBlitter: Use the SkSmallAllocator. Remove Sk3DShader::fKillProc and SkAutoCallProc. Both of their behaviors have been moved into SkSmallAllocator (SkAutoCallProc was unnecessary anyway, because the only time we ever used it we also called detach(), so its auto behavior never happened). Create the Sk3DShader on the stack, if there's room. Remove the helper version of Choose, which was unused. SmallAllocatorTest: Test for the new class. The rest: Use SkSmallAllocator. BUG=skia:1976 R=reed@google.com, mtklein@google.com Author: scroggo@google.com Review URL: https://codereview.chromium.org/179343005 git-svn-id: http://skia.googlecode.com/svn/trunk@13696 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add debug check of chunk size written to skpGravatar commit-bot@chromium.org2014-03-06
| | | | | | | | | | R=mtklein@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/182153003 git-svn-id: http://skia.googlecode.com/svn/trunk@13692 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove MCRec.fNextGravatar commit-bot@chromium.org2014-03-06
| | | | | | | | | | | | No longer used. R=reed@google.com, mtklein@google.com Author: fmalita@chromium.org Review URL: https://codereview.chromium.org/186973004 git-svn-id: http://skia.googlecode.com/svn/trunk@13690 2bbb7eff-a529-9590-31e7-b0007b416f81
* Actually, we wrote only size bytes.Gravatar commit-bot@chromium.org2014-03-06
| | | | | | | | | | | BUG=skia: R=halcanary@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/188343004 git-svn-id: http://skia.googlecode.com/svn/trunk@13688 2bbb7eff-a529-9590-31e7-b0007b416f81
* Avoid recomputing two consecutive identical 1D filters.Gravatar commit-bot@chromium.org2014-03-06
| | | | | | | | | | | | | | | | | If the arguments to the X and Y filter computation are identical, the results will be identical; copying is much faster than recomputing. With a change like https://codereview.chromium.org/183763047/ applied this speeds up BitmapScaleBench on Linux by around 10%. BUG=skia:2236 R=humper@google.com, tomhudson@google.com Author: tomhudson@chromium.org Review URL: https://codereview.chromium.org/188743002 git-svn-id: http://skia.googlecode.com/svn/trunk@13687 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add size_t bytesWritten() const to SkWStream.Gravatar commit-bot@chromium.org2014-03-06
| | | | | | | | | | | BUG=skia: R=reed@google.com, mtklein@google.com, robertphillips@google.com, bungeman@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/187653003 git-svn-id: http://skia.googlecode.com/svn/trunk@13684 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of Manually set fFilterValues in SkConvolutionFilter1D Gravatar rmistry@google.com2014-03-06
| | | | | | | | | | | | | | | | | | Revert of https://codereview.chromium.org/184323003 Reason for revert: Caused unexpected CompareGM failures- http://108.170.217.252:10117/builders/Test-Win8-ShuttleA-GTX660-x86_64-Debug/builds/461/steps/CompareGMs/logs/stdio http://108.170.217.252:10117/builders/Test-Win7-ShuttleA-HD2000-x86_64-Release/builds/2062/steps/CompareGMs/logs/stdio http://108.170.217.252:10117/builders/Test-ChromeOS-Alex-GMA3150-x86-Release/builds/1400/steps/CompareGMs/logs/stdio TBR= NOTREECHECKS=True NOTRY=True git-svn-id: http://skia.googlecode.com/svn/trunk@13683 2bbb7eff-a529-9590-31e7-b0007b416f81
* Begin making SkPerlinNoiseShader const.Gravatar commit-bot@chromium.org2014-03-06
| | | | | | | | | | | | | | | | | | | | | The overall goal is to make SkShader itself immutable (BUG=skia:1976). The fields cannot yet be made constant, due to the constructor which takes an SkReadBuffer. Other than that constructor, the fields are now unchanged. Remove setTileSize and initPaint. Merge initPaint with the constructor of PaintingData, since it is only ever used on a new PaintingData. Merge setTileSize with the SkPerlinNoiseShader constructor, its only call site. BUG=skia:1976 R=reed@google.com, sugoi@google.com, dominikg@chromium.org, senorblanco@google.com, senorblanco@chromium.org Author: scroggo@google.com Review URL: https://codereview.chromium.org/169973002 git-svn-id: http://skia.googlecode.com/svn/trunk@13682 2bbb7eff-a529-9590-31e7-b0007b416f81
* Manually set fFilterValues in SkConvolutionFilter1D.Gravatar commit-bot@chromium.org2014-03-06
| | | | | | | | | | | | | | | | Using fFilterValues.reset() or a loop of fFilterValues.push_back() is about 5x slower than calling fFilterValues.resize_back() and then looping using primitive [] and =. This is only going to show up if you apply https://codereview.chromium.org/183763047/, where it yields about 2.5% speedup in the bitmap resize microbenchmarks on a Linux desktop. Ceteris paribus, it should actually improve rasterization time of drawBitmapRectToRect() with a resize by about 5% in Chromium. BUG=skia:2258 R=humper@google.com, tomhudson@google.com Author: tomhudson@chromium.org Review URL: https://codereview.chromium.org/184323003 git-svn-id: http://skia.googlecode.com/svn/trunk@13681 2bbb7eff-a529-9590-31e7-b0007b416f81
* Now that the matching changes have landed in Chromium we can clean up the ↵Gravatar commit-bot@chromium.org2014-03-06
| | | | | | | | | | | | API on our side. R=reed@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/187553003 git-svn-id: http://skia.googlecode.com/svn/trunk@13680 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2014-03-06
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@13679 2bbb7eff-a529-9590-31e7-b0007b416f81
* Unify edge type enums across GrEffect subclasses that clip rendering to a ↵Gravatar commit-bot@chromium.org2014-03-05
| | | | | | | | | | | | | geometry. BUG=skia: R=egdaniel@google.com, robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/183893023 git-svn-id: http://skia.googlecode.com/svn/trunk@13674 2bbb7eff-a529-9590-31e7-b0007b416f81
* This CL is motivated by the desire to make the skpinfo tool work a bit ↵Gravatar commit-bot@chromium.org2014-03-05
| | | | | | | | | | | | better. The main concern is that the assumptions made w.r.t. written bytes may not be valid for all SkWStream sub-classes. R=bungeman@gmail.com, bungeman@google.com, reed@google.com, mtklein@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/182733008 git-svn-id: http://skia.googlecode.com/svn/trunk@13673 2bbb7eff-a529-9590-31e7-b0007b416f81
* Prevent SkBlockMemoryStream::skip from writing to low memory.Gravatar bungeman@google.com2014-03-05
| | | | | | | | | | | | | | SkBlockMemoryStream::read was modeled on SkDynamicMemoryWStream::read. However, SkDynamicMemoryWStream::read does not allow passing a NULL buffer and SkBlockMemoryStream::read must correctly handle this case for skips. In the current code, if a 'skip' crosses a block boundary, 'read' may attempt to write to low memory. R=robertphillips@google.com Review URL: https://codereview.chromium.org/187683003 git-svn-id: http://skia.googlecode.com/svn/trunk@13671 2bbb7eff-a529-9590-31e7-b0007b416f81
* DM: read image files without an extra copyGravatar commit-bot@chromium.org2014-03-05
| | | | | | | | | | | BUG=skia: R=halcanary@google.com, reed@google.com, bsalomon@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/185263012 git-svn-id: http://skia.googlecode.com/svn/trunk@13669 2bbb7eff-a529-9590-31e7-b0007b416f81
* Replace scaled bitmap if entry already exist in cache.Gravatar commit-bot@chromium.org2014-03-05
| | | | | | | | | | | BUG=skia:2251 R=reed@google.com Author: reveman@chromium.org Review URL: https://codereview.chromium.org/185263009 git-svn-id: http://skia.googlecode.com/svn/trunk@13667 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2014-03-05
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@13665 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove SK_SUPPORT_DEEPCOPYTO_CONFIG code -- no longer usedGravatar commit-bot@chromium.org2014-03-05
| | | | | | | | | | | R=reed@google.com TBR=bsalomon@google.com Author: reed@chromium.org Review URL: https://codereview.chromium.org/183763035 git-svn-id: http://skia.googlecode.com/svn/trunk@13664 2bbb7eff-a529-9590-31e7-b0007b416f81
* Counterproposal to 182733007: Add iterator to SkTDynamicHashGravatar commit-bot@chromium.org2014-03-05
| | | | | | | | | | | BUG=skia: R=egdaniel@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/177263005 git-svn-id: http://skia.googlecode.com/svn/trunk@13663 2bbb7eff-a529-9590-31e7-b0007b416f81
* Manual revert of https://code.google.com/p/skia/source/detail?r=13353 due to ↵Gravatar commit-bot@chromium.org2014-03-04
| | | | | | | | | | | | | perf regression. BUG=344020 R=reed@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/187023002 git-svn-id: http://skia.googlecode.com/svn/trunk@13662 2bbb7eff-a529-9590-31e7-b0007b416f81
* The motivation for this CL is to de-clutter SkPicture's beginRecording method.Gravatar commit-bot@chromium.org2014-03-04
| | | | | | | | | | R=reed@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/186813003 git-svn-id: http://skia.googlecode.com/svn/trunk@13658 2bbb7eff-a529-9590-31e7-b0007b416f81
* Apply the CTM to the offset in the slow SkOffsetImageFilter path.Gravatar senorblanco@chromium.org2014-03-04
| | | | | | | | | | | | | | | | | | This was being done in the fast path, but not the slow path. Since I had to rebaseline the offsetimagefilter GM anyway (to accomodate the new test case), I added a red border around the intersection of the (transformed) crop rect and clip rect in each sample, beyond which no pixels should be drawn. Chrome bug: https://code.google.com/p/chromium/issues/detail?id=346362 BUG=skia: R=sugoi@google.com Review URL: https://codereview.chromium.org/186643003 git-svn-id: http://skia.googlecode.com/svn/trunk@13656 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add GM that directly tests GrRRectEffect and add inverse fill version of effect.Gravatar commit-bot@chromium.org2014-03-04
| | | | | | | | | | | BUG=skia: R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/176843016 git-svn-id: http://skia.googlecode.com/svn/trunk@13653 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2014-03-04
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@13651 2bbb7eff-a529-9590-31e7-b0007b416f81
* This adds cull rect visualization to the debugger's "mega" visualization mode.Gravatar commit-bot@chromium.org2014-03-03
| | | | | | | | | | R=fmalita@google.com, fmalita@chromium.org Author: robertphillips@google.com Review URL: https://codereview.chromium.org/177423013 git-svn-id: http://skia.googlecode.com/svn/trunk@13649 2bbb7eff-a529-9590-31e7-b0007b416f81
* Don't emit declaration of gl_FragPos unless also changing the origin.Gravatar commit-bot@chromium.org2014-03-03
| | | | | | | | | | R=jvanverth@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/182003002 git-svn-id: http://skia.googlecode.com/svn/trunk@13648 2bbb7eff-a529-9590-31e7-b0007b416f81
* Cleanup patch to move all of SkImageFilterUtils into SkImageFilter.Gravatar senorblanco@chromium.org2014-03-03
| | | | | | | | | | | | | | This was a utility class that dates from before GPU code was allowed in core. Now that it is, there's no reason not to have this functionality in SkImageFilter. Covered by existing tests. R=reed@google.com Review URL: https://codereview.chromium.org/185973003 git-svn-id: http://skia.googlecode.com/svn/trunk@13646 2bbb7eff-a529-9590-31e7-b0007b416f81
* Generating the 1M skps frequently yields truncated skps. This tool is ↵Gravatar commit-bot@chromium.org2014-03-03
| | | | | | | | | | | | | | | | | | intended to help automate weeding these out. Please see skbug:1057 rmistry for tools, gyp mtklein for src\core & include\core BUG=skia:1057 R=rmistry@google.com, mtklein@google.com, reed@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/176863004 git-svn-id: http://skia.googlecode.com/svn/trunk@13643 2bbb7eff-a529-9590-31e7-b0007b416f81
* The new "mega" viz mode both adds visualization and forces all drawing to ↵Gravatar commit-bot@chromium.org2014-03-03
| | | | | | | | | | | | the visible canvas (by replacing the active saveLayers with saves). R=bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/185293007 git-svn-id: http://skia.googlecode.com/svn/trunk@13640 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix CTM scaling and clipping of SkRectShaderImageFilter.Gravatar senorblanco@chromium.org2014-03-03
| | | | | | | | | | | | | | | | Pass the CTM as part of the local matrix passed by SkRectShaderImageFilter. Teach SkPerlinNoiseShader to respect the local matrix. Embiggen imagefiltersscaled GM size to accommodate the new test cases. Note: will require rebaselines of imagefiltersscaled and imagefiltersclipped R=sugoi@chromium.org BUG=skia: Review URL: https://codereview.chromium.org/184973007 git-svn-id: http://skia.googlecode.com/svn/trunk@13637 2bbb7eff-a529-9590-31e7-b0007b416f81
* New approach for GPU font atlasGravatar commit-bot@chromium.org2014-03-03
| | | | | | | | | | | | | In the previous code, each GrTextStrike had exclusive access to one or more GrPlots in the texture atlas. This led to poor packing when only a few glyphs were used. This change allows GrTextStrikes to share GrPlots, thereby getting much better utilization of the entire texture. BUG=skia:2224 R=robertphillips@google.com, bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/177463003 git-svn-id: http://skia.googlecode.com/svn/trunk@13636 2bbb7eff-a529-9590-31e7-b0007b416f81
* Adding code to calculate Underline Thickness from Font Metrics, this will be ↵Gravatar commit-bot@chromium.org2014-03-01
| | | | | | | | | | | | | useful when Skia is used with Blink/Chrome. Blink changes are uploaded with code change in patch https://codereview.chromium.org/147703002/ BUG=skia: R=reed@android.com, edisonn@google.com, reed@google.com, mtklein@google.com, mtklein@chromium.org, bungeman@google.com Author: h.joshi@samsung.com Review URL: https://codereview.chromium.org/152073003 git-svn-id: http://skia.googlecode.com/svn/trunk@13635 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2014-03-01
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@13634 2bbb7eff-a529-9590-31e7-b0007b416f81
* DM: make GPU tasks multithreaded again. Big refactor.Gravatar commit-bot@chromium.org2014-02-28
| | | | | | | | | | | | | | | | | | | | | | The main meat of things is in SkThreadPool. We can now give SkThreadPool a type for each thread to create and destroy on its local stack. It's TLS without going through SkTLS. I've split the DM tasks into CpuTasks that run on threads with no TLS, and GpuTasks that run on threads with a thread local GrContextFactory. The old CpuTask and GpuTask have been renamed to CpuGMTask and GpuGMTask. Upshot: default run of out/Debug/dm goes from ~45 seconds to ~20 seconds. BUG=skia: R=bsalomon@google.com, mtklein@google.com, reed@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/179233005 git-svn-id: http://skia.googlecode.com/svn/trunk@13632 2bbb7eff-a529-9590-31e7-b0007b416f81
* Cleanup GrGLInterface after Chromium changesGravatar commit-bot@chromium.org2014-02-28
| | | | | | | | | | | | Depends on landing https://codereview.chromium.org/143263014 R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/149533002 git-svn-id: http://skia.googlecode.com/svn/trunk@13630 2bbb7eff-a529-9590-31e7-b0007b416f81
* add new onClip* methods to SkCanvasGravatar robertphillips@google.com2014-02-28
| | | | | | | | https://codereview.chromium.org/183453002/ git-svn-id: http://skia.googlecode.com/svn/trunk@13627 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove SK_SUPPORT_LEGACY_LAYERDRAWLOOPER_PAINTFLAGS -- not neededGravatar reed@google.com2014-02-28
| | | | | | | | | BUG=skia: R=scroggo@google.com Review URL: https://codereview.chromium.org/180483004 git-svn-id: http://skia.googlecode.com/svn/trunk@13623 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of r13620 (add new onClip* methods to SkCanvas - ↵Gravatar robertphillips@google.com2014-02-28
| | | | | | https://codereview.chromium.org/183453002/) due to broken Chrome Canary and failing tests. git-svn-id: http://skia.googlecode.com/svn/trunk@13622 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make GrConvexPolyEffect support inverse fills and non-AA rectsGravatar commit-bot@chromium.org2014-02-28
| | | | | | | | | | | BUG=skia:2151 R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/183833003 git-svn-id: http://skia.googlecode.com/svn/trunk@13621 2bbb7eff-a529-9590-31e7-b0007b416f81
* add new onClip* methods to SkCanvasGravatar robertphillips@google.com2014-02-28
| | | | | | | | https://codereview.chromium.org/183453002/ git-svn-id: http://skia.googlecode.com/svn/trunk@13620 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2014-02-28
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@13619 2bbb7eff-a529-9590-31e7-b0007b416f81
* add SkCanvas::NewRaster factory -- a very common use-case in chromeGravatar commit-bot@chromium.org2014-02-27
| | | | | | | | | | | BUG=skia: R=scroggo@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/183533004 git-svn-id: http://skia.googlecode.com/svn/trunk@13617 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add GrSet class built on top of RedBlackTreeGravatar commit-bot@chromium.org2014-02-27
| | | | | | | | | | | BUG=skia: R=bsalomon@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/176903003 git-svn-id: http://skia.googlecode.com/svn/trunk@13616 2bbb7eff-a529-9590-31e7-b0007b416f81
* Culling APIGravatar commit-bot@chromium.org2014-02-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | *** SKP format breaking change *** Adding a couple of culling primitives: pushCull(SkRect) & popCull(). These are currently only plumbed for SKP playback quickreject. At record time, we perform a couple of optimizations to trim down the number of redundant culls: * collapse empty pushCull/popCull pairs * skip pushCull/popCull pairs nested within an identical cull rect Things still missing/to consider: * use an inlineable, simplified quickreject (Mike's old prototype) * debugger visualization for cull boxes * BBH integration: the initial prototype had some minimal BBH support, but since the optimizations required expensive rewinds and culling is expected to be a BBH alternative, it got dropped. R=bsalomon@google.com, reed@google.com, robertphillips@google.com, caryclark@google.com, tomhudson@google.com, iancottrell@google.com Author: fmalita@chromium.org Review URL: https://codereview.chromium.org/138013009 git-svn-id: http://skia.googlecode.com/svn/trunk@13611 2bbb7eff-a529-9590-31e7-b0007b416f81
* Use SkTLazy to hold path in SkClipStack::ElementGravatar commit-bot@chromium.org2014-02-27
| | | | | | | | | | R=reed@google.com, robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/178583002 git-svn-id: http://skia.googlecode.com/svn/trunk@13610 2bbb7eff-a529-9590-31e7-b0007b416f81
* try to deprecate fFlagsMask from SkLayerDrawLooperGravatar reed@google.com2014-02-27
| | | | | | | | | | | | | | | We think we want to move around how flags/fields like linearText and strikeThru are specified. SkPaint has helpers for nearly all of these, but LayerInfo in the draw looper just exposes the raw bitfield. On survey of chrome/android, it appears that no one uses those, so it may be safe to just remove the feature entirely from the looper. R=bungeman@google.com, scroggo@google.com Review URL: https://codereview.chromium.org/181433009 git-svn-id: http://skia.googlecode.com/svn/trunk@13607 2bbb7eff-a529-9590-31e7-b0007b416f81
* Factory methods for heap-allocated SkAnnotation objects.Gravatar commit-bot@chromium.org2014-02-27
| | | | | | | | | | | | | | | | | This is part of an effort to ensure that all SkPaint effects can only be allocated on the heap. This patch makes the constructors of SkAnnotation non-public and instead provides factory methods for creating these objects on the heap. BUG=skia:2187 R=reed@google.com, mtklein@google.com, scroggo@google.com Author: dominikg@chromium.org Review URL: https://codereview.chromium.org/181703003 git-svn-id: http://skia.googlecode.com/svn/trunk@13605 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add point count to lua SkPath.Gravatar commit-bot@chromium.org2014-02-26
| | | | | | | | | | | | Add some scripts for classifying rrects and counting complex clip combinations. R=reed@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/181843004 git-svn-id: http://skia.googlecode.com/svn/trunk@13601 2bbb7eff-a529-9590-31e7-b0007b416f81