Pre-crop filled rects to avoid scissor
authorcsmartdalton <csmartdalton@google.com>
Tue, 12 Jul 2016 21:45:23 +0000 (14:45 -0700)
committerCommit bot <commit-bot@chromium.org>
Tue, 12 Jul 2016 21:45:23 +0000 (14:45 -0700)
commit86de59f4a99b5f54be0483c60ff0335be55b2bdf
tree6e5ee4d8a40a412c2e905635a890c5237fca1259
parentf119796f95f336d5b29f06f369b15b48a6a0df45
Pre-crop filled rects to avoid scissor

Updates GrDrawContext to crop filled rects to the clip bounds before
creating batches for them. Also adds clipping logic to ignore scissor
when the draw falls completely inside. These two changes combined
reduce API traffic and improve batching.

In the future this can and should be improved by switching to floating
point clip boundaries, thus allowing us to throw out non pixel aligned
rectangle clips as well.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2132073002

Committed: https://skia.googlesource.com/skia/+/7969838702135b9f127bd738728da61bc49b050a
Review-Url: https://codereview.chromium.org/2132073002
gm/croppedrects.cpp [new file with mode: 0644]
include/gpu/GrClip.h
src/gpu/GrClip.cpp
src/gpu/GrClipMaskManager.cpp
src/gpu/GrDrawContext.cpp