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 #include "SkSpecialImage.h" | 7 #include "SkSpecialImage.h" |
8 | 8 |
9 #if SK_SUPPORT_GPU | 9 #if SK_SUPPORT_GPU |
10 #include "GrTexture.h" | 10 #include "GrTexture.h" |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 if (!this->internal_getBM(&bmp)) { | 77 if (!this->internal_getBM(&bmp)) { |
78 return nullptr; | 78 return nullptr; |
79 } | 79 } |
80 | 80 |
81 if (bmp.empty()) { | 81 if (bmp.empty()) { |
82 return SkSpecialImage::MakeFromRaster(SkIRect::MakeEmpty(), bmp, &this->
props()); | 82 return SkSpecialImage::MakeFromRaster(SkIRect::MakeEmpty(), bmp, &this->
props()); |
83 } | 83 } |
84 | 84 |
85 sk_sp<GrTexture> resultTex(GrRefCachedBitmapTexture(context, | 85 sk_sp<GrTexture> resultTex(GrRefCachedBitmapTexture(context, |
86 bmp, | 86 bmp, |
87 GrTextureParams::ClampNo
Filter())); | 87 GrTextureParams::ClampNo
Filter(), |
| 88 false)); |
88 if (!resultTex) { | 89 if (!resultTex) { |
89 return nullptr; | 90 return nullptr; |
90 } | 91 } |
91 | 92 |
92 SkAlphaType at = this->isOpaque() ? kOpaque_SkAlphaType : kPremul_SkAlphaTyp
e; | 93 SkAlphaType at = this->isOpaque() ? kOpaque_SkAlphaType : kPremul_SkAlphaTyp
e; |
93 | 94 |
94 return SkSpecialImage::MakeFromGpu(SkIRect::MakeWH(resultTex->width(), resul
tTex->height()), | 95 return SkSpecialImage::MakeFromGpu(SkIRect::MakeWH(resultTex->width(), resul
tTex->height()), |
95 this->uniqueID(), | 96 this->uniqueID(), |
96 resultTex, &this->props(), at); | 97 resultTex, &this->props(), at); |
97 #else | 98 #else |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
219 | 220 |
220 bool onGetROPixels(SkBitmap* bm) const override { | 221 bool onGetROPixels(SkBitmap* bm) const override { |
221 return as_IB(fImage)->getROPixels(bm); | 222 return as_IB(fImage)->getROPixels(bm); |
222 } | 223 } |
223 | 224 |
224 GrTexture* onPeekTexture() const override { return as_IB(fImage)->peekTextur
e(); } | 225 GrTexture* onPeekTexture() const override { return as_IB(fImage)->peekTextur
e(); } |
225 | 226 |
226 #if SK_SUPPORT_GPU | 227 #if SK_SUPPORT_GPU |
227 sk_sp<GrTexture> onAsTextureRef(GrContext* context) const override { | 228 sk_sp<GrTexture> onAsTextureRef(GrContext* context) const override { |
228 return sk_sp<GrTexture>(as_IB(fImage)->asTextureRef(context, | 229 return sk_sp<GrTexture>(as_IB(fImage)->asTextureRef(context, |
229 GrTextureParams::Cla
mpNoFilter())); | 230 GrTextureParams::Cla
mpNoFilter(), |
| 231 false)); |
230 } | 232 } |
231 #endif | 233 #endif |
232 | 234 |
233 bool getBitmapDeprecated(SkBitmap* result) const override { | 235 bool getBitmapDeprecated(SkBitmap* result) const override { |
234 #if SK_SUPPORT_GPU | 236 #if SK_SUPPORT_GPU |
235 if (GrTexture* texture = as_IB(fImage.get())->peekTexture()) { | 237 if (GrTexture* texture = as_IB(fImage.get())->peekTexture()) { |
236 const SkImageInfo info = GrMakeInfoFromTexture(texture, | 238 const SkImageInfo info = GrMakeInfoFromTexture(texture, |
237 fImage->width(), fIma
ge->height(), | 239 fImage->width(), fIma
ge->height(), |
238 fImage->isOpaque()); | 240 fImage->isOpaque()); |
239 if (!result->setInfo(info)) { | 241 if (!result->setInfo(info)) { |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 bool onGetROPixels(SkBitmap* bm) const override { | 363 bool onGetROPixels(SkBitmap* bm) const override { |
362 *bm = fBitmap; | 364 *bm = fBitmap; |
363 return true; | 365 return true; |
364 } | 366 } |
365 | 367 |
366 #if SK_SUPPORT_GPU | 368 #if SK_SUPPORT_GPU |
367 sk_sp<GrTexture> onAsTextureRef(GrContext* context) const override { | 369 sk_sp<GrTexture> onAsTextureRef(GrContext* context) const override { |
368 if (context) { | 370 if (context) { |
369 return sk_ref_sp(GrRefCachedBitmapTexture(context, | 371 return sk_ref_sp(GrRefCachedBitmapTexture(context, |
370 fBitmap, | 372 fBitmap, |
371 GrTextureParams::ClampNoFi
lter())); | 373 GrTextureParams::ClampNoFi
lter(), |
| 374 false)); |
372 } | 375 } |
373 | 376 |
374 return nullptr; | 377 return nullptr; |
375 } | 378 } |
376 #endif | 379 #endif |
377 | 380 |
378 bool getBitmapDeprecated(SkBitmap* result) const override { | 381 bool getBitmapDeprecated(SkBitmap* result) const override { |
379 *result = fBitmap; | 382 *result = fBitmap; |
380 return true; | 383 return true; |
381 } | 384 } |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
584 sk_sp<SkSpecialImage> SkSpecialImage::MakeFromGpu(const SkIRect& subset, | 587 sk_sp<SkSpecialImage> SkSpecialImage::MakeFromGpu(const SkIRect& subset, |
585 uint32_t uniqueID, | 588 uint32_t uniqueID, |
586 sk_sp<GrTexture> tex, | 589 sk_sp<GrTexture> tex, |
587 const SkSurfaceProps* props, | 590 const SkSurfaceProps* props, |
588 SkAlphaType at) { | 591 SkAlphaType at) { |
589 SkASSERT(rect_fits(subset, tex->width(), tex->height())); | 592 SkASSERT(rect_fits(subset, tex->width(), tex->height())); |
590 return sk_make_sp<SkSpecialImage_Gpu>(subset, uniqueID, std::move(tex), at,
props); | 593 return sk_make_sp<SkSpecialImage_Gpu>(subset, uniqueID, std::move(tex), at,
props); |
591 } | 594 } |
592 | 595 |
593 #endif | 596 #endif |
OLD | NEW |