/* * Copyright 2011 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef GrPaint_DEFINED #define GrPaint_DEFINED #include "include/core/SkRegion.h" #include "include/private/SkColorData.h" #include "include/private/base/SkAssert.h" #include "include/private/base/SkDebug.h" #include "include/private/base/SkTo.h" #include "src/gpu/ganesh/GrFragmentProcessor.h" #include <memory> #include <utility> class GrXPFactory; enum class SkBlendMode; /** * The paint describes how color and coverage are computed at each pixel by GrContext draw * functions and the how color is blended with the destination pixel. * * The paint allows installation of custom color and coverage stages. New types of stages are * created by subclassing GrProcessor. * * The primitive color computation starts with the color specified by setColor(). This color is the * input to the first color stage. Each color stage feeds its output to the next color stage. * * Fractional pixel coverage follows a similar flow. The GrGeometryProcessor (specified elsewhere) * provides the initial coverage which is passed to the first coverage fragment processor, which * feeds its output to next coverage fragment processor. * * setXPFactory is used to control blending between the output color and dest. It also implements * the application of fractional coverage from the coverage pipeline. */ class GrPaint { … }; #endif