aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkClipStack.cpp
Commit message (Collapse)AuthorAge
* Move clip CTM application to SkRasterClip and SkClipStackGravatar Brian Salomon2016-10-03
| | | | | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2866 Change-Id: I914a57d6ba128acc457e12586c99ba6766eb940c Reviewed-on: https://skia-review.googlesource.com/2866 Reviewed-by: Mike Reed <reed@google.com> Reviewed-by: Florin Malita <fmalita@chromium.org>
* abstract name of clipping ops, to transtion to a more restricted setGravatar reed2016-09-20
| | | | | | | | | | | SkRegion::Op --> SkCanvas::ClipOp (alias) --> SkClipOp pre-CL needed in chrome : https://codereview.chromium.org/2355583002/ BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2355483002 Review-Url: https://codereview.chromium.org/2355483002
* Converts a drawPaint through a rrect clip to a drawRRect in GrDrawContext.Gravatar bsalomon2016-08-26
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2271053004 Review-Url: https://codereview.chromium.org/2271053004
* check for wide-open inside quickContainsGravatar reed2016-08-22
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2263373002 Review-Url: https://codereview.chromium.org/2263373002
* Attempt to throw away rrect clips of rrects.Gravatar bsalomon2016-08-15
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2241273003 Review-Url: https://codereview.chromium.org/2241273003
* Fix SkClipStack bug with inverse-filled difference elementsGravatar csmartdalton2016-07-22
| | | | | | | | | | | | | | Previously, SkClipStack would call "setEmpty" on itself when an inverse-filled difference element made the stack empty. This was a problem because setEmpty would forget the element had an inverse fill, yet leave the op as "difference". This change modifies it to manually update the clip bounds and set the gen-ID to kEmptyGenID, rather than calling setEmpty. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2175493002 Review-Url: https://codereview.chromium.org/2175493002
* Repurpose Release_Developer BUILDTYPE and remove SK_DEVELOPER.Gravatar djsollen2016-04-29
| | | | | | | | | | | | | The Release_Developer build type is now used to build Skia with release level optimizations but still enable SK_DEBUG. This in turn means that SkASSERTS and SkRTConf are available in this mode. Further we can then remove SK_DEVELOPER as a define as it is true iff SK_DEBUG is true. GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1931903002 DOCS_PREVIEW= https://skia.org/?cl=1931903002 Review-Url: https://codereview.chromium.org/1931903002
* Revert of Repurpose Release_Developer BUILDTYPE and remove SK_DEVELOPER. ↵Gravatar reed2016-04-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #2 id:20001 of https://codereview.chromium.org/1927583002/ ) Reason for revert: still blocking DEPS roll Original issue's description: > Repurpose Release_Developer BUILDTYPE and remove SK_DEVELOPER. > > The Release_Developer build type is now used to build Skia with > release level optimizations but still enable SK_DEBUG. This in turn > means that SkASSERTS and SkRTConf are available in this mode. > > Further we can then remove SK_DEVELOPER as a define as it is true > iff SK_DEBUG is true. > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1927583002 > DOCS_PREVIEW= https://skia.org/?cl=1927583002 > > Committed: https://skia.googlesource.com/skia/+/48d6f88479e72efaf9b9d8f9c0769acb1ba773db TBR=bungeman@gmail.com,bungeman@google.com,benjaminwagner@google.com,djsollen@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/1918253006
* Repurpose Release_Developer BUILDTYPE and remove SK_DEVELOPER.Gravatar djsollen2016-04-27
| | | | | | | | | | | | | The Release_Developer build type is now used to build Skia with release level optimizations but still enable SK_DEBUG. This in turn means that SkASSERTS and SkRTConf are available in this mode. Further we can then remove SK_DEVELOPER as a define as it is true iff SK_DEBUG is true. GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1927583002 DOCS_PREVIEW= https://skia.org/?cl=1927583002 Review-Url: https://codereview.chromium.org/1927583002
* Add asRRect method to SkClipStack::ElementGravatar cdalton2016-03-17
| | | | | | | | | | Adds an asRRect method alongside asPath, for clip implementations that can be generalized to round rects. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1793373002 Review URL: https://codereview.chromium.org/1793373002
* Fix up the clip mask manager's creation of paths (w.r.t. volatility)Gravatar robertphillips2015-10-26
| | | | | | | | | | I don't expect this to make any difference (perf-wise) but it seems more correct. This CL relies on https://codereview.chromium.org/1421533007/ (Fix ClipMaskManager's SW-fallback logic) Committed: https://skia.googlesource.com/skia/+/953fe3139fa60ce56abcfa45a3647d924e637083 Review URL: https://codereview.chromium.org/1419403002
* Revert of Fix up the clip mask manager's creation of paths (w.r.t. ↵Gravatar robertphillips2015-10-26
| | | | | | | | | | | | | | | | | | | | | | | volatility) (patchset #1 id:1 of https://codereview.chromium.org/1419403002/ ) Reason for revert: Logic may be incorrect Original issue's description: > Fix up the clip mask manager's creation of paths (w.r.t. volatility) > > I don't expect this to make any difference (perf-wise) but it seems more correct. > > This CL relies on https://codereview.chromium.org/1421533007/ (Fix ClipMaskManager's SW-fallback logic) > > Committed: https://skia.googlesource.com/skia/+/953fe3139fa60ce56abcfa45a3647d924e637083 TBR=jvanverth@google.com,bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1415413007
* Fix up the clip mask manager's creation of paths (w.r.t. volatility)Gravatar robertphillips2015-10-26
| | | | | | | | I don't expect this to make any difference (perf-wise) but it seems more correct. This CL relies on https://codereview.chromium.org/1421533007/ (Fix ClipMaskManager's SW-fallback logic) Review URL: https://codereview.chromium.org/1419403002
* Have /src files use header directly.Gravatar herb2015-09-29
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1373253003
* Move SkAtomics.h to private.Gravatar herb2015-09-28
| | | | | | | | | | There are no API changes. TBR=reed@google.com BUG=skia: Review URL: https://codereview.chromium.org/1369333004
* Style Change: NULL->nullptrGravatar halcanary2015-08-27
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1316233002 Review URL: https://codereview.chromium.org/1316233002
* Style Change: SkNEW->new; SkDELETE->deleteGravatar halcanary2015-08-26
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1316123003 Review URL: https://codereview.chromium.org/1316123003
* Use static_assert instead of SK_COMPILE_ASSERT.Gravatar bungeman2015-08-20
| | | | | | | Now that static_assert is allowed, there is no need to use a non- standard compile time assertion Review URL: https://codereview.chromium.org/1306443004
* Remove SkThread.h, include SkMutex.h or SkAtomics.h as appropriate.Gravatar mtklein2015-07-07
| | | | | | | | | | | | | | SkThread.h doesn't do anything anymore execept include those two, and thankfully, it doesn't seem to be mentioned outside Skia. No public API changes. TBR=reed@google.com BUG=skia: Committed: https://skia.googlesource.com/skia/+/c50acf2321d7a934c80d754e9cbe936dfb8eb4cc Review URL: https://codereview.chromium.org/1215393002
* Revert of Remove SkThread.h, include SkMutex.h or SkAtomics.h as ↵Gravatar jvanverth2015-07-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | appropriate. (patchset #4 id:60001 of https://codereview.chromium.org/1215393002/) Reason for revert: Breaking the roll. E.g. on android_chromium_gn_compile_dbg: FAILED: /b/build/goma/gomacc ../../third_party/android_tools/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -MMD -MF obj/skia/ext/libskia.SkMemory_new_handler.o.d -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=1 -DENABLE_NOTIFICATIONS -DENABLE_BROWSER_CDMS -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DDONT_EMBED_BUILD_METADATA -DUSE_OPENSSL=1 -DUSE_OPENSSL_CERTS=1 -DNO_TCMALLOC -DDISABLE_NACL -DENABLE_CONFIGURATION_POLICY -DENABLE_SUPERVISED_USERS=1 -DENABLE_AUTOFILL_DIALOG=1 -DUSE_PROPRIETARY_CODECS -DV8_USE_EXTERNAL_STARTUP_DATA -DVIDEO_HOLE=1 -DMOBILE_SAFE_BROWSING -DSAFE_BROWSING_SERVICE -DCHROMIUM_BUILD -D_FILE_OFFSET_BITS=64 -DANDROID -DHAVE_SYS_UIO_H -DCOMPONENT_BUILD -D__GNU_SOURCE=1 -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -DSKIA_IMPLEMENTATION=1 -DSK_ARM_HAS_OPTIONAL_NEON -DSK_GAMMA_APPLY_TO_A8 -DSK_GAMMA_EXPONENT=1.4 -DSK_GAMMA_CONTRAST=0.0 -DSK_DEFAULT_FONT_CACHE_LIMIT=1048576 -DSK_IGNORE_LINEONLY_AA_CONVEX_PATH_OPTS -DSKIA_DLL -DGR_GL_IGNORE_ES3_MSAA=0 -DSK_SUPPORT_GPU=1 -DSK_BUILD_FOR_ANDROID -DUSE_CHROMIUM_SKIA -DXML_STATIC -I../.. -Igen -I../../third_party/skia/include/private -I../../third_party/skia/src/core -I../../third_party/skia/src/image -I../../third_party/skia/src/opts -I../../third_party/skia/src/pdf -I../../third_party/skia/src/ports -I../../third_party/skia/src/sfnt -I../../third_party/skia/src/utils -I../../third_party/skia/src/lazy -I../../skia/config -I../../skia/ext -I../../third_party/skia/include/c -I../../third_party/skia/include/config -I../../third_party/skia/include/core -I../../third_party/skia/include/effects -I../../third_party/skia/include/images -I../../third_party/skia/include/lazy -I../../third_party/skia/include/pathops -I../../third_party/skia/include/pdf -I../../third_party/skia/include/pipe -I../../third_party/skia/include/ports -I../../third_party/skia/include/utils -I../../third_party/skia/include/gpu -I../../third_party/skia/src/gpu -I../../third_party/zlib -I../../third_party/expat/files/lib -I../../third_party/freetype-android/include -I../../third_party/freetype-android/src/include -I../../third_party/android_tools/ndk/sources/android/cpufeatures -fno-strict-aliasing -march=armv7-a -mfloat-abi=softfp -mtune=generic-armv7-a -mthumb -mthumb-interwork -fno-tree-sra -fno-caller-saves -funwind-tables -fPIC -pipe -ffunction-sections -funwind-tables -fno-short-enums -finline-limit=64 -mfpu=vfpv3-d16 -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/libcxx/include -isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/libcxxabi/include -isystem../../third_party/android_tools/ndk/sources/android/support/include -fvisibility=hidden --sysroot=/b/build/slave/android_chromium_gn/build/src/third_party/android_tools/ndk/platforms/android-16/arch-arm -Os -fdata-sections -ffunction-sections -fomit-frame-pointer -g1 -Wno-format -Wendif-labels -Werror -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wno-extra -Wno-ignored-qualifiers -Wno-type-limits -Wno-unused-local-typedefs -fno-threadsafe-statics -fvisibility-inlines-hidden -std=gnu++11 -fno-rtti -fno-exceptions -Wno-deprecated -Wno-narrowing -Wno-literal-suffix -Wno-error=c++0x-compat -Wno-non-virtual-dtor -Wno-sign-promo -c ../../skia/ext/SkMemory_new_handler.cpp -o obj/skia/ext/libskia.SkMemory_new_handler.o ../../skia/ext/SkMemory_new_handler.cpp:12:52: fatal error: third_party/skia/include/core/SkThread.h: No such file or directory #include "third_party/skia/include/core/SkThread.h" Original issue's description: > Remove SkThread.h, include SkMutex.h or SkAtomics.h as appropriate. > > SkThread.h doesn't do anything anymore execept include those two, > and thankfully, it doesn't seem to be mentioned outside Skia. > > No public API changes. > TBR=reed@google.com > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/c50acf2321d7a934c80d754e9cbe936dfb8eb4cc TBR=mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1214603003
* Remove SkThread.h, include SkMutex.h or SkAtomics.h as appropriate.Gravatar mtklein2015-07-01
| | | | | | | | | | | | SkThread.h doesn't do anything anymore execept include those two, and thankfully, it doesn't seem to be mentioned outside Skia. No public API changes. TBR=reed@google.com BUG=skia: Review URL: https://codereview.chromium.org/1215393002
* Revert of Remove SkClipStack's manual rounding of BW clip rects (patchset #3 ↵Gravatar robertphillips2015-03-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:80001 of https://codereview.chromium.org/1033453003/) Reason for revert: Reverting due to performance regression: https://code.google.com/p/skia/issues/detail?id=3597 Original issue's description: > Remove SkClipStack's manual rounding of BW clip rects > > The full fix for this bug is nudging the image in device space. That is going to be a large change. This CL should address the immediate problem. > > This CL will alter the following GMs: > clipdrawdraw > convex_poly_clip > complexclip_bw_* > filltypespersp > complexclip3_simple > > > > BUG=423834 > > Committed: https://skia.googlesource.com/skia/+/e523d4f90c3368c555282a98b41ca5ee2045103e TBR=bsalomon@google.com,joshualitt@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=423834 Review URL: https://codereview.chromium.org/1045853002
* Remove SkClipStack's manual rounding of BW clip rectsGravatar robertphillips2015-03-25
| | | | | | | | | | | | | | | The full fix for this bug is nudging the image in device space. That is going to be a large change. This CL should address the immediate problem. This CL will alter the following GMs: clipdrawdraw convex_poly_clip complexclip_bw_* filltypespersp complexclip3_simple BUG=423834 Review URL: https://codereview.chromium.org/1033453003
* Clean up clipping code a bitGravatar robertphillips2015-02-10
| | | | Review URL: https://codereview.chromium.org/913693002
* [SkSVGDevice] Initial clipping supportGravatar fmalita2015-02-04
| | | | | | | | | | Implement SVG clips based on clip stack flattening - which is now exposed in SkClipStack::asPath() and shared with SkCanvas's simplify-clip code. R=reed@google.com,mtklein@google.com Review URL: https://codereview.chromium.org/876923003
* Revert of Add device space "nudge" to gpu draws (patchset #6 id:90001 of ↵Gravatar robertphillips2015-01-30
| | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/877473005/) Reason for revert: Blink layout tests this time :( Original issue's description: > Add device space "nudge" to gpu draws > > This CL nudges all the GPU draws and clips slightly to match raster's round behavior for BW draws. We assume the effect will be negligible and do it for AA draws too. > > BUG=423834 > > Committed: https://skia.googlesource.com/skia/+/2d55d07501c56310f97d2092d789a2bc9fa01b78 > > Committed: https://skia.googlesource.com/skia/+/b9329991426d0b77ea194a380d72d73fb855308a TBR=bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=423834 Review URL: https://codereview.chromium.org/886153002
* Add device space "nudge" to gpu drawsGravatar robertphillips2015-01-30
| | | | | | | | | | This CL nudges all the GPU draws and clips slightly to match raster's round behavior for BW draws. We assume the effect will be negligible and do it for AA draws too. BUG=423834 Committed: https://skia.googlesource.com/skia/+/2d55d07501c56310f97d2092d789a2bc9fa01b78 Review URL: https://codereview.chromium.org/877473005
* Revert of Add device space "nudge" to gpu draws (patchset #5 id:70001 of ↵Gravatar robertphillips2015-01-28
| | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/877473005/) Reason for revert: Chrome pixel test :( Original issue's description: > Add device space "nudge" to gpu draws > > This CL nudges all the GPU draws and clips slightly to match raster's round behavior for BW draws. We assume the effect will be negligible and do it for AA draws too. > > BUG=423834 > > Committed: https://skia.googlesource.com/skia/+/2d55d07501c56310f97d2092d789a2bc9fa01b78 TBR=bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=423834 Review URL: https://codereview.chromium.org/890433003
* Add device space "nudge" to gpu drawsGravatar robertphillips2015-01-28
| | | | | | | | This CL nudges all the GPU draws and clips slightly to match raster's round behavior for BW draws. We assume the effect will be negligible and do it for AA draws too. BUG=423834 Review URL: https://codereview.chromium.org/877473005
* Revert of Fix GPU clipped-AA vs. non-AA drawRect discrepancy (patchset #2 ↵Gravatar robertphillips2015-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | id:20001 of https://codereview.chromium.org/839883003/) Reason for revert: This CL introduces rendering conflicts with hairlines (i.e., the hairlines get overwritten). These conflicts are particularly visible on the following GMs (for the Ubuntu and Android gpu configs): coloremoji & complexclip2_rrect_bw Original issue's description: > Fix GPU clipped-AA vs. non-AA drawRect discrepancy > > In the clip stack we were manually rounding out non-AA clip rects but leaving the hardening of non-AA drawRects up to the GPU. In some border cases the GPU can truncate rather than round out resulting in visual discrepancies. > > BUG=423834 > > Committed: https://skia.googlesource.com/skia/+/933a03fecb65c83f81cf65d5cf9870c69aa379ff TBR=bsalomon@google.com,jvanverth@google.com NOTREECHECKS=true NOTRY=true BUG=423834 Review URL: https://codereview.chromium.org/847033002
* Fix GPU clipped-AA vs. non-AA drawRect discrepancyGravatar robertphillips2015-01-12
| | | | | | | | In the clip stack we were manually rounding out non-AA clip rects but leaving the hardening of non-AA drawRects up to the GPU. In some border cases the GPU can truncate rather than round out resulting in visual discrepancies. BUG=423834 Review URL: https://codereview.chromium.org/839883003
* Remove SkPath::asRectGravatar robertphillips2015-01-05
| | | | | | | | | | AFAICT the asRect entry point is not needed. Greg: GPU Reed: API Cary: Path Review URL: https://codereview.chromium.org/833193002
* Add some more volatile paths.Gravatar jvanverth2014-10-24
| | | | | | | | | Some clip paths were not marked as volatile, and ending up in the distance field path renderer when they shouldn't. BUG=skia:3066 Review URL: https://codereview.chromium.org/680543002
* add dumpHex() option to SkPathGravatar caryclark2014-09-15
| | | | | | | | | | | | | This provides exact precision to help debugging when the float representation of a SkScalar may introduce error. R=reed@google.com Author: caryclark@google.com Review URL: https://codereview.chromium.org/571973003
* "NULL !=" = NULLGravatar bsalomon2014-09-05
| | | | | | | | R=reed@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/544233002
* add path dump testGravatar caryclark2014-06-24
| | | | | | | | | | | | | Add a unit test for SkPath::dump(). The unit test exposed a minor bug (inconsistent CRs) and an unused parameter (title). R=bsalomon@google.com TBR=bsalomon BUG=skia:1836 Author: caryclark@google.com Review URL: https://codereview.chromium.org/351833003
* Add dump() to SkClipStack to help with debugging.Gravatar bsalomon2014-06-09
| | | | | | | | R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/311263015
* SkClipStack::Element tweaks.Gravatar fmalita2014-06-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | ( This is intended to facilitate efficient kMatrix_SaveFlags emulation on restore(): * collect all clip stack elements for the current save count into a side clip stack * canvas.restore(everything) * replay the collected clip ops to restore the initial clip state => we restored the matrix but the clip state is unchanged ) Two main changes: * expose the save count for SkClipStack::Element * expose a replay method for the same (logic relocated from SkCanvas::replayClips) The SkCanvas::ClipVisitor shuffling is to enable forward decl in SkClipStack.h (cannot fwdecl a nested class). R=reed@google.com, robertphillips@google.com TBR=reed@google.com Author: fmalita@chromium.org Review URL: https://codereview.chromium.org/269693003
* 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
* Use SkRRect to store rects in SkClipStack::ElementGravatar commit-bot@chromium.org2014-02-21
| | | | | | | | | | | BUG=skia:2181 R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/163483003 git-svn-id: http://skia.googlecode.com/svn/trunk@13544 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix calling undef inline func build errorGravatar commit-bot@chromium.org2014-02-16
| | | | | | | | | | | | | Fixes error introduced in https://code.google.com/p/skia/source/detail?r=13465 R=robertphillips@google.com TBR=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/168893002 git-svn-id: http://skia.googlecode.com/svn/trunk@13466 2bbb7eff-a529-9590-31e7-b0007b416f81
* Store SkRRects in SkClipStackGravatar commit-bot@chromium.org2014-02-16
| | | | | | | | | | | BUG=skia:2181 R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/163683002 git-svn-id: http://skia.googlecode.com/svn/trunk@13465 2bbb7eff-a529-9590-31e7-b0007b416f81
* Avoid some work on SkClipStack equality when the topmost genids matchGravatar commit-bot@chromium.org2014-01-06
| | | | | | | | | | | | Two clip stacks are defined being equal if the topmost genids match. R=bsalomon@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/115573005 git-svn-id: http://skia.googlecode.com/svn/trunk@12909 2bbb7eff-a529-9590-31e7-b0007b416f81
* deprecate SkScalarRound (and its ilk), use SkScalarRound[ToInt,ToScalar]. ↵Gravatar reed@google.com2013-12-17
| | | | | | | | | | | #define SK_SUPPORT_DEPRECATED_SCALARROUND for legacy clients BUG= R=robertphillips@google.com Review URL: https://codereview.chromium.org/111353003 git-svn-id: http://skia.googlecode.com/svn/trunk@12719 2bbb7eff-a529-9590-31e7-b0007b416f81
* Avoid re-rendering stencil clip for every draw with reducable clip stackGravatar commit-bot@chromium.org2013-11-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes the cases where clip stack reduction would cause clip to be re-rendered to stencil for each draw call. This causes unneeded slowdown. Stencil cache would not be used because the clip stack generation id communicated by the clip stack element list would be invalid. This happended due to a) clip stack reduction creating new elements in the element list. b) purging logic removing the generation id, but reduction logic selecting already purged element, and thus the generation id, as the representative state of the clip. Cases of a) where reduction would flatten the stack to a single new element were fixed by assigning the generation id of the top-most element of the clip stack as the generation id of the new element. This is not strictly minimal, but enables more caching than using invalid id. Cases of a) where reduction would substitute a stack element with a new element the generation id of the substituted element is used. The b) part was fixed by removing the purging logic. It was not exactly correct, as the previously purged states were actually used. The purging was not used for anything. Changes SkClipStack API to highlight that invalid generation id is never returned by SkClipStack. Empty stacks are wide open. Changes the clients to reflect this. Fixes a crash when not passing anti-alias out parameter to GrReducedClip::ReduceClipStack. The crash is not exercised in the current code. Committed: http://code.google.com/p/skia/source/detail?r=12084 R=bsalomon@google.com, robertphillips@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/48593003 git-svn-id: http://skia.googlecode.com/svn/trunk@12127 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "Avoid re-rendering stencil clip for every draw with reducable clip ↵Gravatar reed@google.com2013-11-01
| | | | | | | | | | | | | | | | stack" This reverts commit 92a7d4bf6a371f1f864154be902e8d86938e560b. Revert "fix mac 10.6 build" This reverts commit 114cd1a9f2734aaed6914718814364811b78bd7f. BUG= Review URL: https://codereview.chromium.org/54543008 git-svn-id: http://skia.googlecode.com/svn/trunk@12087 2bbb7eff-a529-9590-31e7-b0007b416f81
* Avoid re-rendering stencil clip for every draw with reducable clip stackGravatar commit-bot@chromium.org2013-11-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes the cases where clip stack reduction would cause clip to be re-rendered to stencil for each draw call. This causes unneeded slowdown. Stencil cache would not be used because the clip stack generation id communicated by the clip stack element list would be invalid. This happended due to a) clip stack reduction creating new elements in the element list. b) purging logic removing the generation id, but reduction logic selecting already purged element, and thus the generation id, as the representative state of the clip. Cases of a) where reduction would flatten the stack to a single new element were fixed by assigning the generation id of the top-most element of the clip stack as the generation id of the new element. This is not strictly minimal, but enables more caching than using invalid id. Cases of a) where reduction would substitute a stack element with a new element the generation id of the substituted element is used. The b) part was fixed by removing the purging logic. It was not exactly correct, as the previously purged states were actually used. The purging was not used for anything. Changes SkClipStack API to highlight that invalid generation id is never returned by SkClipStack. Empty stacks are wide open. Changes the clients to reflect this. Fixes a crash when not passing anti-alias out parameter to GrReducedClip::ReduceClipStack. The crash is not exercised in the current code. R=bsalomon@google.com, robertphillips@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/48593003 git-svn-id: http://skia.googlecode.com/svn/trunk@12084 2bbb7eff-a529-9590-31e7-b0007b416f81
* Compact the clipstack for kReplace_Op'd geometryGravatar commit-bot@chromium.org2013-06-11
| | | | | | | | | | | | | | | | | | When adding a clip rect or clip path to the stack with the kReplace_Op operation, remove all previous elements within the same save frame (elements with fSaveCount equal to the current fSaveCount of the stack). This prevents unbounded growth of the clipstack for long-lived instances that gets reused. Addresses https://code.google.com/p/skia/issues/detail?id=748 R=robertphillips@google.com Author: fs@opera.com Review URL: https://chromiumcodereview.appspot.com/16160020 git-svn-id: http://skia.googlecode.com/svn/trunk@9502 2bbb7eff-a529-9590-31e7-b0007b416f81
* Adding quickContains API method to SkClipStackGravatar junov@chromium.org2012-12-12
| | | | | | | | BUG=http://code.google.com/p/chromium/issues/detail?id=164580 TEST=unit test ClipStack/quickContains Review URL: https://codereview.appspot.com/6919044 git-svn-id: http://skia.googlecode.com/svn/trunk@6760 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixing SkClipStack::clipDevPath so that it will not convert rectangular ↵Gravatar junov@chromium.org2012-12-10
| | | | | | | | | | paths to rectangle clips if inverse fill. BUG=http://code.google.com/p/chromium/issues/detail?id=164580 TEST=unit test ClipStackTest/test_rect_inverse_fill Review URL: https://codereview.appspot.com/6880044 git-svn-id: http://skia.googlecode.com/svn/trunk@6731 2bbb7eff-a529-9590-31e7-b0007b416f81