Go to file
Michael Ludwig 9b2defc3d5 Switch drawTexture calls to use attemptQuadOptimization
Before the quad-rendering op refactor, regular filled rectangles and
textured rectangles used an internal crop_filled_rect function to crop
to the bounding box of the clip. As the quad op refactor progressed,
regular filled rectangle drawing went through the new attemptQuadOptimization
function that supported more cropping to the exact clip when axis-aligned,
and could be better handle complex paints.

Following the generalized factories added to GrTextureOp in earlier CLs,
it is now possible to route all textured rectangle draws through the same
optimizations. While there are a number of public interfaces for drawing
rectangles and textures on GrRTC, internally there is now just drawFilledQuad
(for complex paints) and drawTexturedQuad(for textures, avoids GrPaint use).
Both of these are very similar, and share attemptQuadOptimization(), which
makes all rectangle-drawing code, regardless of shader/paint/etc., handled
in a consistent manner.

This doesn't entirely resolve the complexities of non-AA clipping and non-AA
axis-aligned rectangle drawing. That needs additional logic added to the
GrQuadUtils::CropToRect function, but this CL is the last structural change
to how the ops are created, and to GrRTC to get Ganesh to that stage.

Change-Id: Icfbd223eef6e3da0054699334725b5084aaee58a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/223934
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2019-06-28 19:14:47 +00:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bench Track if we need stencil on GrRenderTargetContext 2019-06-27 20:29:03 +00:00
bin Add bin/try-clients to trigger client tryjobs 2019-06-11 16:55:53 +00:00
dm Reland "DM: Add a per-sink MemoryCache to all GPU sinks" 2019-06-28 16:30:24 +00:00
docker fix Dockerfile? 2019-06-24 16:34:59 +00:00
docs/examples PDF example 2019-05-28 17:21:59 +00:00
example Use SkTextEncoding enum instead of macros. 2019-05-07 20:54:16 +00:00
experimental experimental/editor: app layer: setTitle 2019-06-26 16:58:20 +00:00
fuzz Make fuzzing use embedded test font 2019-06-03 16:29:21 +00:00
gm Make GrColorSpaceInfo store GrColorType. 2019-06-25 14:29:09 +00:00
gn Reland "Replace GrQuadList with variable-length quad buffer" 2019-06-27 14:58:09 +00:00
include Reland "Reland "Separate compressed and uncompressed texture functions"" 2019-06-27 17:09:24 +00:00
infra [lottie-web-perf] Use canvas renderer for lottie-web 2019-06-28 00:17:36 +00:00
modules [skottie] Use hybrid bounds for custom Shaper VAlign modes 2019-06-28 11:35:09 +00:00
platform_tools SkQP: fix Filterable.filter 2019-06-25 13:50:39 +00:00
resources [skottie] Use hybrid bounds for custom Shaper VAlign modes 2019-06-28 11:35:09 +00:00
samplecode Make GrColorSpaceInfo store GrColorType. 2019-06-25 14:29:09 +00:00
site fix up relative links and spacing 2019-06-11 14:29:38 +00:00
specs [img-decode] Start on proposed new spec 2019-05-06 17:39:19 +00:00
src Switch drawTexture calls to use attemptQuadOptimization 2019-06-28 19:14:47 +00:00
tests Reland "Reland "Separate compressed and uncompressed texture functions"" 2019-06-27 17:09:24 +00:00
third_party Roll skia/third_party/skcms d7303797becf..4f682a1d0b94 (1 commits) 2019-06-25 17:00:43 +00:00
tools Reland "DM: Add a per-sink MemoryCache to all GPU sinks" 2019-06-28 16:30:24 +00:00
.clang-format restore .clang-format 2019-03-21 15:52:32 +00:00
.clang-tidy add google-build-namespaces to clang-tidy checks 2018-12-12 16:33:59 +00:00
.gitignore clean up some .gitignores 2019-05-15 19:55:45 +00:00
.gn Basic standalone GN configs. 2016-07-21 12:25:45 -07:00
AUTHORS third-party.gni: Search includes using -I. 2019-06-11 19:04:29 +00:00
BUILD.gn disable SkVM JIT on Android 2019-06-27 23:18:03 +00:00
codereview.settings Make uploading to Gerrit the default for Skia 2016-11-09 19:07:56 +00:00
CONTRIBUTING Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
CQ_COMMITTERS Moved committer list to chrome-infra-auth and deleted it from the repo 2015-09-02 13:37:54 -07:00
DEPS Roll third_party/externals/angle2 a9dfb3ba5db1..923c30fba116 (9 commits) 2019-06-28 04:57:23 +00:00
go.mod Update Go deps 2019-06-28 05:29:33 +00:00
go.sum Update Go deps 2019-06-28 05:29:33 +00:00
LICENSE BUG=skia:5602 2016-09-02 11:19:34 -07:00
OWNERS add OWNERS file 2017-12-01 19:50:19 +00:00
PRESUBMIT.py add mtklein to api approvals 2019-04-02 15:16:56 +00:00
public.bzl Reland "Deserialize MultiPictureDocument based SKP files (with image sharing proc) in wasm debugger." 2019-06-21 15:49:21 +00:00
README Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
README.chromium Update README.chromium. 2015-06-11 13:19:24 -07:00
whitespace.txt Whitespace test 2019-05-18 13:05:29 +00:00

Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

See full details, and build instructions, at https://skia.org.