1288 {
1289
1290
1291 SkDEBUGCODE(TextureOpImpl::ValidateResourceLimits();)
1292 SkASSERT(proxy_run_count(
set, cnt) == proxyRunCnt);
1293
1294
1297
1298
1299
1301 for (
int i = 0;
i < cnt; ++
i) {
1302 ctm = viewMatrix;
1303 if (
set[
i].fPreViewMatrix) {
1305 }
1306
1309 if (
set[
i].fDstClipQuad) {
1311
1315 } else {
1318 }
1319
1321 ? &
set[
i].fSrcRect :
nullptr;
1322
1323 auto op =
Make(context,
set[
i].fProxyView,
set[
i].fSrcAlphaType, textureColorSpaceXform,
1324 filter, mm,
set[
i].fColor, saturate, blendMode, aaType, &quad, subset);
1326 }
1327 return;
1328 }
1329
1330
1331
1335 constraint, viewMatrix, std::move(textureColorSpaceXform));
1337 return;
1338 }
1339
1340 BatchSizeLimiter
state(sdc,
clip, context, cnt, filter, mm, saturate, constraint, viewMatrix,
1341 std::move(textureColorSpaceXform));
1342
1343
1345
1346 while (
state.numLeft() > 0) {
1348
1349 state.createOp(
set, clumpSize, aaType);
1350 }
1351 } else {
1352
1353
1354
1356
1357 while (
state.numLeft() > 0) {
1359 bool clumped = false;
1360
1361 for (
int i = 0;
i <
state.numLeft(); ++
i) {
1362 int absIndex =
state.baseIndex() +
i;
1363
1366
1368
1369
1370
1371
1375 runningAA);
1376 clumped = true;
1377 break;
1378 }
1379
1382
1384
1385
1388 clumped = true;
1389 break;
1390 }
1391 }
1392 }
1393
1394 if (!clumped) {
1395
1396
1398 }
1399 }
1400 }
1401}
static void GrMapRectPoints(const SkRect &inRect, const SkRect &outRect, const SkPoint inPts[], SkPoint outPts[], int ptCount)
@ kSrcOver
r = s + (1-sa)*d
static SkPath clip(const SkPath &path, const SkHalfPlane &plane)
SkDEBUGCODE(SK_SPI) SkThreadID SkGetThreadID()
const GrCaps * caps() const
bool dynamicStateArrayGeometryProcessorTextureSupport() const
static GrQuad MakeFromRect(const SkRect &, const SkMatrix &)
static GrQuad MakeFromSkQuad(const SkPoint pts[4], const SkMatrix &)
GrRecordingContextPriv priv()
static int MaxNumNonAAQuads()
static int MaxNumAAQuads()
@ kStrict_SrcRectConstraint
sample only inside bounds; slower
static const SkMatrix & I()
SkMatrix & preConcat(const SkMatrix &other)
void addDrawOp(const GrClip *, GrOp::Owner, const std::function< WillAddOpFn > &=std::function< WillAddOpFn >())
static GrOp::Owner Make(GrRecordingContext *, GrSurfaceProxyView, SkAlphaType srcAlphaType, sk_sp< GrColorSpaceXform >, GrSamplerState::Filter, GrSamplerState::MipmapMode, const SkPMColor4f &, Saturate, SkBlendMode, GrAAType, DrawQuad *, const SkRect *subset=nullptr)
static float min(float r, float g, float b)
SK_API sk_sp< SkDocument > Make(SkWStream *dst, const SkSerialProcs *=nullptr, std::function< void(const SkPicture *)> onEndPage=nullptr)
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir Path to the cache directory This is different from the persistent_cache_path in embedder which is used for Skia shader cache icu native lib Path to the library file that exports the ICU data vm service The hostname IP address on which the Dart VM Service should be served If not set