| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2016 Google Inc. | 2 * Copyright 2016 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "SkCanvas.h" | 8 #include "SkCanvas.h" |
| 9 #include "SkData.h" | 9 #include "SkData.h" |
| 10 #include "SkImageFilter.h" | 10 #include "SkImageFilter.h" |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 234 #ifdef SK_EXPERIMENTAL_SHADOWING | 234 #ifdef SK_EXPERIMENTAL_SHADOWING |
| 235 c->drawShadowedPicture(picture.get(), &matrix, &paint); | 235 c->drawShadowedPicture(picture.get(), &matrix, &paint); |
| 236 #endif | 236 #endif |
| 237 } | 237 } |
| 238 void optimizeFor(GrContext* ctx) override { optimize_for(ctx, &paint); } | 238 void optimizeFor(GrContext* ctx) override { optimize_for(ctx, &paint); } |
| 239 void makeThreadsafe() override { make_threadsafe(nullptr, &matrix); } | 239 void makeThreadsafe() override { make_threadsafe(nullptr, &matrix); } |
| 240 }; | 240 }; |
| 241 | 241 |
| 242 struct DrawImage final : Op { | 242 struct DrawImage final : Op { |
| 243 DrawImage(sk_sp<const SkImage>&& image, SkScalar x, SkScalar y, const Sk
Paint* paint) | 243 DrawImage(sk_sp<const SkImage>&& image, SkScalar x, SkScalar y, const Sk
Paint* paint) |
| 244 : image(image), x(x), y(y) { | 244 : image(std::move(image)), x(x), y(y) { |
| 245 if (paint) { this->paint = *paint; } | 245 if (paint) { this->paint = *paint; } |
| 246 } | 246 } |
| 247 sk_sp<const SkImage> image; | 247 sk_sp<const SkImage> image; |
| 248 SkScalar x,y; | 248 SkScalar x,y; |
| 249 SkPaint paint; | 249 SkPaint paint; |
| 250 void draw(SkCanvas* c) override { c->drawImage(image.get(), x,y, &paint)
; } | 250 void draw(SkCanvas* c) override { c->drawImage(image.get(), x,y, &paint)
; } |
| 251 void optimizeFor(GrContext* ctx) override { optimize_for(ctx, &paint, &i
mage); } | 251 void optimizeFor(GrContext* ctx) override { optimize_for(ctx, &paint, &i
mage); } |
| 252 }; | 252 }; |
| 253 struct DrawImageNine final : Op { | 253 struct DrawImageNine final : Op { |
| 254 DrawImageNine(sk_sp<const SkImage>&& image, | 254 DrawImageNine(sk_sp<const SkImage>&& image, |
| 255 const SkIRect& center, const SkRect& dst, const SkPaint* p
aint) | 255 const SkIRect& center, const SkRect& dst, const SkPaint* p
aint) |
| 256 : image(image), center(center), dst(dst) { | 256 : image(std::move(image)), center(center), dst(dst) { |
| 257 if (paint) { this->paint = *paint; } | 257 if (paint) { this->paint = *paint; } |
| 258 } | 258 } |
| 259 sk_sp<const SkImage> image; | 259 sk_sp<const SkImage> image; |
| 260 SkIRect center; | 260 SkIRect center; |
| 261 SkRect dst; | 261 SkRect dst; |
| 262 SkPaint paint; | 262 SkPaint paint; |
| 263 void draw(SkCanvas* c) override { c->drawImageNine(image.get(), center,
dst, &paint); } | 263 void draw(SkCanvas* c) override { c->drawImageNine(image.get(), center,
dst, &paint); } |
| 264 void optimizeFor(GrContext* ctx) override { optimize_for(ctx, &paint, &i
mage); } | 264 void optimizeFor(GrContext* ctx) override { optimize_for(ctx, &paint, &i
mage); } |
| 265 }; | 265 }; |
| 266 struct DrawImageRect final : Op { | 266 struct DrawImageRect final : Op { |
| 267 DrawImageRect(sk_sp<const SkImage>&& image, const SkRect* src, const SkR
ect& dst, | 267 DrawImageRect(sk_sp<const SkImage>&& image, const SkRect* src, const SkR
ect& dst, |
| 268 const SkPaint* paint, SkCanvas::SrcRectConstraint constrai
nt) | 268 const SkPaint* paint, SkCanvas::SrcRectConstraint constrai
nt) |
| 269 : image(image), dst(dst), constraint(constraint) { | 269 : image(std::move(image)), dst(dst), constraint(constraint) { |
| 270 this->src = src ? *src : SkRect::MakeIWH(image->width(), image->heig
ht()); | 270 this->src = src ? *src : SkRect::MakeIWH(image->width(), image->heig
ht()); |
| 271 if (paint) { this->paint = *paint; } | 271 if (paint) { this->paint = *paint; } |
| 272 } | 272 } |
| 273 sk_sp<const SkImage> image; | 273 sk_sp<const SkImage> image; |
| 274 SkRect src, dst; | 274 SkRect src, dst; |
| 275 SkPaint paint; | 275 SkPaint paint; |
| 276 SkCanvas::SrcRectConstraint constraint; | 276 SkCanvas::SrcRectConstraint constraint; |
| 277 void draw(SkCanvas* c) override { | 277 void draw(SkCanvas* c) override { |
| 278 c->drawImageRect(image.get(), src, dst, &paint, constraint); | 278 c->drawImageRect(image.get(), src, dst, &paint, constraint); |
| 279 } | 279 } |
| 280 void optimizeFor(GrContext* ctx) override { optimize_for(ctx, &paint, &i
mage); } | 280 void optimizeFor(GrContext* ctx) override { optimize_for(ctx, &paint, &i
mage); } |
| 281 }; | 281 }; |
| 282 struct DrawImageLattice final : Op { | 282 struct DrawImageLattice final : Op { |
| 283 DrawImageLattice(sk_sp<const SkImage>&& image, int xs, int ys, | 283 DrawImageLattice(sk_sp<const SkImage>&& image, int xs, int ys, |
| 284 const SkRect& dst, const SkPaint* paint) | 284 const SkRect& dst, const SkPaint* paint) |
| 285 : image(image), xs(xs), ys(ys), dst(dst) { | 285 : image(std::move(image)), xs(xs), ys(ys), dst(dst) { |
| 286 if (paint) { this->paint = *paint; } | 286 if (paint) { this->paint = *paint; } |
| 287 } | 287 } |
| 288 sk_sp<const SkImage> image; | 288 sk_sp<const SkImage> image; |
| 289 int xs, ys; | 289 int xs, ys; |
| 290 SkRect dst; | 290 SkRect dst; |
| 291 SkPaint paint; | 291 SkPaint paint; |
| 292 void draw(SkCanvas* c) override { | 292 void draw(SkCanvas* c) override { |
| 293 auto xdivs = pod<int>(this, 0), | 293 auto xdivs = pod<int>(this, 0), |
| 294 ydivs = pod<int>(this, xs*sizeof(int)); | 294 ydivs = pod<int>(this, xs*sizeof(int)); |
| 295 c->drawImageLattice(image.get(), {xdivs, xs, ydivs, ys}, dst, &paint
); | 295 c->drawImageLattice(image.get(), {xdivs, xs, ydivs, ys}, dst, &paint
); |
| (...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 714 } | 714 } |
| 715 | 715 |
| 716 void SkLiteDL::PurgeFreelist() { | 716 void SkLiteDL::PurgeFreelist() { |
| 717 SkAutoMutexAcquire lock(gFreeStackLock); | 717 SkAutoMutexAcquire lock(gFreeStackLock); |
| 718 while (gFreeStack) { | 718 while (gFreeStack) { |
| 719 SkLiteDL* top = gFreeStack; | 719 SkLiteDL* top = gFreeStack; |
| 720 gFreeStack = gFreeStack->fNext; | 720 gFreeStack = gFreeStack->fNext; |
| 721 delete top; // Calling unref() here would just put it back on the list
! | 721 delete top; // Calling unref() here would just put it back on the list
! |
| 722 } | 722 } |
| 723 } | 723 } |
| OLD | NEW |