8#ifndef GrPipeline_DEFINED
9#define GrPipeline_DEFINED
51 kConservativeRaster = (1 << 1),
55 kWireframe = (1 << 2),
59 kSnapVerticesToPixelCenters = (1 << 3),
106 for (
const auto&
fp : fFragmentProcessors) {
107 if (
fp->usesSampleCoords()) {
117 if (fXferProcessor) {
118 return *fXferProcessor;
151 return dstProxy->peekTexture();
158 return *fFragmentProcessors[idx];
164 return SkToBool(fFlags & Flags::kScissorTestEnabled);
175 return SkToBool(fFlags & Flags::kHasStencilClip);
178 bool allProxiesInstantiated()
const {
179 for (
int i = 0;
i < fFragmentProcessors.
count(); ++
i) {
180 if (!fFragmentProcessors[
i]->isInstantiated()) {
205 inline static constexpr uint8_t kLastInputFlag =
209 enum class Flags : uint8_t {
210 kHasStencilClip = (kLastInputFlag << 1),
211 kScissorTestEnabled = (kLastInputFlag << 2),
214 GR_DECL_BITFIELD_CLASS_OPS_FRIENDS(
Flags);
219 using FragmentProcessorArray =
226 FragmentProcessorArray fFragmentProcessors;
229 int fNumColorProcessors = 0;
238 return (
flags & (GrPipeline::Flags)inputFlag);
std::function< void(GrSurfaceProxy *, skgpu::Mipmapped)> GrVisitProxyFunc
#define GR_MAKE_BITFIELD_CLASS_OPS(X)
static constexpr bool SkToBool(const T &x)
GrDstSampleFlags dstSampleFlags() const
const SkIPoint & offset() const
const GrSurfaceProxyView & proxyView() const
const skgpu::Swizzle & writeSwizzle() const
friend bool operator&(Flags, InputFlags)
GrPipeline(const GrPipeline &)=delete
bool snapVerticesToPixelCenters() const
bool hasStencilClip() const
bool isCoverageFragmentProcessor(int idx) const
@ kSnapVerticesToPixelCenters
SkIPoint dstTextureOffset() const
void visitProxies(const GrVisitProxyFunc &) const
int numFragmentProcessors() const
bool isColorFragmentProcessor(int idx) const
int numColorFragmentProcessors() const
GrDstSampleFlags dstSampleFlags() const
bool isScissorTestEnabled() const
void setDstTextureUniforms(const GrGLSLProgramDataManager &pdm, GrGLSLBuiltinUniformHandles *fBuiltinUniformHandles) const
bool usesDstInputAttachment() const
const GrFragmentProcessor & getFragmentProcessor(int idx) const
GrPipeline(GrScissorTest scissor, SkBlendMode blend, const skgpu::Swizzle &writeSwizzle, InputFlags flags=InputFlags::kNone)
void genKey(skgpu::KeyBuilder *, const GrCaps &) const
bool usesLocalCoords() const
void visitTextureEffects(const std::function< void(const GrTextureEffect &)> &) const
GrPipeline & operator=(const GrPipeline &)=delete
const GrSurfaceProxyView & dstProxyView() const
bool usesConservativeRaster() const
bool usesDstTexture() const
GrTexture * peekDstTexture() const
const GrWindowRectsState & getWindowRectsState() const
GrXferBarrierType xferBarrierType(const GrCaps &) const
const GrXferProcessor & getXferProcessor() const
static const GrXferProcessor & SimpleSrcOverXP()
GrSurfaceProxy * proxy() const
bool isInstantiated() const
FlutterSemanticsFlag flags
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args
Dart_NativeFunction function
static SkColor blend(SkColor dst, SkColor src, void(*mode)(float, float, float, float *, float *, float *))
skgpu::Swizzle fWriteSwizzle
GrDstProxyView fDstProxyView