37 bool withPrimitiveBlender,
39 for (
const Renderer* r : rendererProvider->renderers()) {
40 if (!(r->drawTypes() & drawTypes)) {
44 if (r->emitsPrimitiveColor() != withPrimitiveBlender) {
50 if (r->coverage() != coverage) {
56 for (
auto&&
s : r->steps()) {
57 SkASSERT(!
s->performsShading() ||
s->emitsPrimitiveColor() == withPrimitiveBlender);
69 SKGPU_LOG_W(
"Failed to create GraphicsPipeline in precompile!");
92 SKGPU_LOG_W(
"Failed to create GraphicsPipeline in precompile!");
104 auto rtEffectDict = std::make_unique<RuntimeEffectDictionary>();
108 caps, dict, rtEffectDict.get(), ci,
nullptr, {0, 0});
121 for (
bool withPrimitiveBlender : {
true,
false }) {
124 withPrimitiveBlender,
135 bool withPrimitiveBlender,
141 const Caps* caps = keyContext.
caps();
161 { .0f, .0f, .0f, .0f },
169 { .0f, .0f, .0f, .0f },
177 { .0f, .0f, .0f, .0f },
185 { .0f, .0f, .0f, .0f },
190 options.priv().buildCombinations(
194 withPrimitiveBlender,
198 bool withPrimitiveBlender,
206 withPrimitiveBlender,
static void info(const char *fmt,...) SK_PRINTF_LIKE(1
#define SKGPU_LOG_W(fmt,...)
@ kPremul_SkAlphaType
pixel components are premultiplied by alpha
@ kRGBA_8888_SkColorType
pixel with 8 bits for red, green, blue, alpha; in 32-bit word
SkColorType colorType() const
skgpu::Swizzle getWriteSwizzle(SkColorType, const TextureInfo &) const
virtual TextureInfo getDefaultSampledTextureInfo(SkColorType, Mipmapped mipmapped, Protected, Renderable) const =0
const RendererProvider * rendererProvider() const
const Caps * caps() const
ResourceProvider * resourceProvider() const
const ShaderCodeDictionary * shaderCodeDictionary() const
RuntimeEffectDictionary * rtEffectDict() const
const SkColorInfo & dstColorInfo() const
const Caps * caps() const
sk_sp< GraphicsPipeline > findOrCreateGraphicsPipeline(const RuntimeEffectDictionary *, const GraphicsPipelineDesc &, const RenderPassDesc &)
static UniquePaintParamsID InvalidID()
bool Precompile(Context *context, RuntimeEffectDictionary *rteDict, const GraphicsPipelineDesc &pipelineDesc, const RenderPassDesc &renderPassDesc)
void PrecompileCombinations(Context *context, const PaintOptions &options, const KeyContext &keyContext, DrawTypeFlags drawTypes, bool withPrimitiveBlender, Coverage coverage)
static RenderPassDesc Make(const Caps *caps, const TextureInfo &targetInfo, LoadOp loadOp, StoreOp storeOp, SkEnumBitMask< DepthStencilFlags > depthStencilFlags, const std::array< float, 4 > &clearColor, bool requiresMSAA, Swizzle writeSwizzle)