Non-substantive changes

These changes are pulled out of:

https://skia-review.googlesource.com/c/skia/+/208227 (Implement alternate method for determining recycle-ability of allocated GrSurfaces)

Change-Id: I1126f0e0c149d07f5febb352c4e86a676960409f
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/209103
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
This commit is contained in:
Robert Phillips 2019-04-17 16:03:30 -04:00 committed by Skia Commit-Bot
parent 5b39dc8153
commit 396673870c
5 changed files with 79 additions and 65 deletions

View File

@ -52,6 +52,8 @@ protected:
blue.setStyle(SkPaint::kStroke_Style);
int x = 0, y = 0;
{
for (size_t i = 0; i < 4; i++) {
sk_sp<SkImage> image = (i & 0x01) ? fCheckerboard : fBitmap;
SkRect srcRect = SkRect::MakeXYWH(SkIntToScalar(image->width()/4),
@ -80,7 +82,9 @@ protected:
y += image->height() + MARGIN;
}
}
}
{
SkScalar matrix[20] = { SK_Scalar1, 0, 0, 0, 0,
0, SK_Scalar1, 0, 0, 0,
0, 0, SK_Scalar1, 0, 0,
@ -104,21 +108,25 @@ protected:
canvas->drawRect(srcRect, red);
canvas->drawRect(dstRect, blue);
canvas->restore();
}
// test that the crop rect properly applies to the tile image filter
{
canvas->translate(0, SkIntToScalar(100));
srcRect = SkRect::MakeXYWH(0, 0, 50, 50);
dstRect = SkRect::MakeXYWH(0, 0, 100, 100);
SkRect srcRect = SkRect::MakeXYWH(0, 0, 50, 50);
SkRect dstRect = SkRect::MakeXYWH(0, 0, 100, 100);
SkImageFilter::CropRect cropRect(SkRect::MakeXYWH(5, 5, 40, 40));
sk_sp<SkColorFilter> greenCF = SkColorFilters::Blend(SK_ColorGREEN, SkBlendMode::kSrc);
sk_sp<SkImageFilter> green(SkColorFilterImageFilter::Make(std::move(greenCF),
nullptr,
&cropRect));
tile = SkTileImageFilter::Make(srcRect, dstRect, std::move(green));
SkPaint paint;
paint.setColor(SK_ColorRED);
paint.setImageFilter(std::move(tile));
paint.setImageFilter(SkTileImageFilter::Make(srcRect, dstRect, std::move(green)));
canvas->drawRect(dstRect, paint);
}
}
private:
sk_sp<SkImage> fBitmap, fCheckerboard;

View File

@ -37,7 +37,6 @@ void GrResourceAllocator::Interval::assign(sk_sp<GrSurface> s) {
fProxy->priv().assign(std::move(s));
}
void GrResourceAllocator::markEndOfOpList(int opListIndex) {
SkASSERT(!fAssigned); // We shouldn't be adding any opLists after (or during) assignment
@ -286,7 +285,7 @@ sk_sp<GrSurface> GrResourceAllocator::findSurfaceFor(const GrSurfaceProxy* proxy
}
// Remove any intervals that end before the current index. Return their GrSurfaces
// to the free pool.
// to the free pool if possible.
void GrResourceAllocator::expire(unsigned int curIndex) {
while (!fActiveIntvls.empty() && fActiveIntvls.peekHead()->end() < curIndex) {
Interval* temp = fActiveIntvls.popHead();

View File

@ -120,9 +120,10 @@ private:
#endif
}
// Used when recycling an interval
void resetTo(GrSurfaceProxy* proxy, unsigned int start, unsigned int end) {
SkASSERT(proxy);
SkASSERT(!fNext);
SkASSERT(!fProxy && !fNext);
fProxy = proxy;
fProxyID = proxy->uniqueID().asUInt();

View File

@ -111,7 +111,13 @@ public:
const char* name() const override { return "LazyProxyTest::Op"; }
FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; }
GrProcessorSet::Analysis finalize(
const GrCaps&, const GrAppliedClip*, GrFSAAType, GrClampType) override {
const GrCaps&, const GrAppliedClip* clip, GrFSAAType, GrClampType) override {
if (clip) {
for (int i = 0; i < clip->numClipCoverageFragmentProcessors(); ++i) {
const GrFragmentProcessor* clipFP = clip->clipCoverageFragmentProcessor(i);
clipFP->markPendingExecution();
}
}
return GrProcessorSet::EmptySetAnalysis();
}
void onPrepare(GrOpFlushState*) override {}