9b2defc3d5
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> |
||
---|---|---|
animations | ||
bench | ||
bin | ||
dm | ||
docker | ||
docs/examples | ||
example | ||
experimental | ||
fuzz | ||
gm | ||
gn | ||
include | ||
infra | ||
modules | ||
platform_tools | ||
resources | ||
samplecode | ||
site | ||
specs | ||
src | ||
tests | ||
third_party | ||
tools | ||
.clang-format | ||
.clang-tidy | ||
.gitignore | ||
.gn | ||
AUTHORS | ||
BUILD.gn | ||
codereview.settings | ||
CONTRIBUTING | ||
CQ_COMMITTERS | ||
DEPS | ||
go.mod | ||
go.sum | ||
LICENSE | ||
OWNERS | ||
PRESUBMIT.py | ||
public.bzl | ||
README | ||
README.chromium | ||
whitespace.txt |
Skia is a complete 2D graphic library for drawing Text, Geometries, and Images. See full details, and build instructions, at https://skia.org.