skia2/include/core
Mike Klein 7e2dea5682 SkColorFilter::onProgram()
Before we write too many of these, let's get a program() / onProgram()
wrapper in place for SkColorFilter.  When a filter claims it doesn't
change alpha, we can skip any work it might do to "calculate" that
unchanged alpha (e.g. 0*r + 0*g + 0*b + 1*a + 0) and instead just
save and restore the orignal alpha.

SkShader already has this same program() / onProgram() setup, and uses
it similarly to force any shader that claims to be opaque to be opaque,
replacing any math (or sometimes even memory loads) that shader may have
done to produce alpha with a simple splat(1.0f).

Change-Id: Ica916926506df3a48b4d718545ea64dd95b457af
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/261134
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-12-19 22:09:48 +00:00
..
SkAnnotation.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkBBHFactory.h simplify rtree loops in Skia too 2019-05-15 15:42:10 +00:00
SkBitmap.h trim out unneeded references to SkString 2019-11-15 21:01:01 +00:00
SkBlendMode.h Make SkBlendMode_AsCoeff() public 2019-11-04 20:41:56 +00:00
SkBlurTypes.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkCanvas.h Expose the owning surface to a canvas? 2019-11-15 21:48:32 +00:00
SkCanvasVirtualEnforcer.h Revert "Fix flutter roll" 2019-08-28 19:50:56 +00:00
SkClipOp.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkColor.h Docs: Add links to header files. 2019-10-18 19:24:13 +00:00
SkColorFilter.h SkColorFilter::onProgram() 2019-12-19 22:09:48 +00:00
SkColorPriv.h cut SK_SAMPLES_FOR_X, simplify SK_?32_SHIFT 2019-04-24 20:58:58 +00:00
SkColorSpace.h Reland "Fully embrace skcms types in SkColorSpace API" 2019-11-05 18:36:26 +00:00
SkContourMeasure.h More classes no longer inherit from SkNoncopyable 2019-06-10 18:15:18 +00:00
SkCoverageMode.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkCubicMap.h [skottie] De-dupe sequential cubic mappers 2019-07-17 17:14:46 +00:00
SkData.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkDataTable.h trim out unneeded references to SkString 2019-11-15 21:01:01 +00:00
SkDeferredDisplayListRecorder.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkDeque.h More classes no longer inherit from SkNoncopyable 2019-06-10 18:15:18 +00:00
SkDocument.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkDrawable.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkDrawLooper.h trim out unneeded references to SkString 2019-11-15 21:01:01 +00:00
SkEncodedImageFormat.h GOOGLE3 -> SK_BUILD_FOR_GOOGLE3 2017-12-19 14:42:16 +00:00
SkExecutor.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkFilterQuality.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkFlattenable.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkFont.h Add a way to disable baseline snapping. 2019-08-27 19:54:29 +00:00
SkFontArguments.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkFontLCDConfig.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkFontMetrics.h Restore SkFontMetrics documentation. 2019-08-15 18:11:39 +00:00
SkFontMgr.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkFontParameters.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkFontStyle.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkFontTypes.h Remove SkTextEncoding and SkFontHinting macros. 2019-05-22 20:44:28 +00:00
SkGraphics.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkICC.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkImage.h Add interface(s) for compressed backend texture support 2019-12-17 20:30:06 +00:00
SkImageEncoder.h Revert "add runtime registration for encoders" 2019-05-15 22:02:39 +00:00
SkImageFilter.h Move SkImageFilter functionality into private SkImageFilter_Base 2019-08-02 18:56:39 +00:00
SkImageGenerator.h Don't allocate invalidation messages for generators that make uncacheable textures 2019-12-17 18:35:33 +00:00
SkImageInfo.h Clamp RGB outputs of GrYUVtoRGBEffect. 2019-11-11 20:04:15 +00:00
SkMallocPixelRef.h SkMallocPixelRef: remove MakeDirect and MakeWithProc from API. 2019-08-15 19:01:13 +00:00
SkMaskFilter.h trim out unneeded references to SkString 2019-11-15 21:01:01 +00:00
SkMath.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkMatrix44.h add some api helpers (extracted from different CL) 2019-11-14 22:40:22 +00:00
SkMatrix.h Revert "temporarily expose postIDiv" 2019-12-19 20:07:36 +00:00
SkMilestone.h Update Skia milestone to 81 2019-12-05 15:52:12 +00:00
SkOverdrawCanvas.h Add Color4f variant for DrawEdgeAAQuad 2019-08-27 23:22:32 +00:00
SkPaint.h Docs: Add links to header files. 2019-10-18 19:24:13 +00:00
SkPath.h clean up dox after enum change 2019-12-14 14:19:11 +00:00
SkPathEffect.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkPathMeasure.h More classes no longer inherit from SkNoncopyable 2019-06-10 18:15:18 +00:00
SkPathTypes.h Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
SkPicture.h Docs: Add links to header files. 2019-10-18 19:24:13 +00:00
SkPictureRecorder.h More classes no longer inherit from SkNoncopyable 2019-06-10 18:15:18 +00:00
SkPixelRef.h trim out unneeded references to SkString 2019-11-15 21:01:01 +00:00
SkPixmap.h Docs: Add links to header files. 2019-10-18 19:24:13 +00:00
SkPngChunkReader.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkPoint3.h Add clipping for perspective triangles 2019-12-17 23:24:18 +00:00
SkPoint.h Test texture domain effect with local matrix. 2019-11-22 22:37:33 +00:00
SkPostConfig.h Add SkUNREACHABLE to definition of SK_ABORT. 2019-08-09 20:43:39 +00:00
SkPreConfig.h Fix windows DLL builds with shaper included 2019-11-19 14:50:12 +00:00
SkPromiseImageTexture.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkRasterHandleAllocator.h use std::make_unique 2019-12-12 22:32:45 +00:00
SkRect.h Test texture domain effect with local matrix. 2019-11-22 22:37:33 +00:00
SkRefCnt.h Make GrSurfaceProxy ref counts thread safe. 2019-10-24 19:55:23 +00:00
SkRegion.h Docs: Add links to header files. 2019-10-18 19:24:13 +00:00
SkRRect.h Docs: Add links to header files. 2019-10-18 19:24:13 +00:00
SkRSXform.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkRWBuffer.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkScalar.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSerialProcs.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkShader.h Optional local matrix for SkShaders factories 2019-07-09 18:09:14 +00:00
SkSize.h Remove SkSize& SkSize::operator=(const SkISize&) 2019-12-04 17:36:06 +00:00
SkStream.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkString.h Don't mark inline functions in SkString.h as static. 2019-06-04 11:40:02 +00:00
SkStrokeRec.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSurface.h Remove legacy async read pixels APIs. 2019-10-28 17:28:53 +00:00
SkSurfaceCharacterization.h Add SkSurfaceCharacterization::createColorSpace 2019-10-03 17:06:13 +00:00
SkSurfaceProps.h Add SkSurfaceProp::operator!=. 2019-08-30 15:27:33 +00:00
SkSwizzle.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkTextBlob.h Docs: Add links to header files. 2019-10-18 19:24:13 +00:00
SkTileMode.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkTime.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkTraceMemoryDump.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkTypeface.h add copytable method to typefaces 2019-07-24 19:20:46 +00:00
SkTypes.h remove default looper flag, rely on clients to opt-in 2019-07-23 14:20:09 +00:00
SkUnPreMultiply.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkVertices.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkYUVAIndex.h Move SkColorChannel into SkColor 2019-07-26 15:50:12 +00:00
SkYUVASizeInfo.h Use safe computation for adding up YUVASizeInfo total bytes 2019-09-23 20:55:28 +00:00