Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: src/core/SkImageCacherator.cpp

Issue 2037413002: Add SkSourceGammaTreatment enum so we know how to create mips (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Fix DM compilation Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/core/SkImageCacherator.h ('k') | src/core/SkLightingShader.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2015 Google Inc. 2 * Copyright 2015 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 "SkBitmap.h" 8 #include "SkBitmap.h"
9 #include "SkBitmapCache.h" 9 #include "SkBitmapCache.h"
10 #include "SkImage_Base.h" 10 #include "SkImage_Base.h"
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 * We have a 5 ways to try to return a texture (in sorted order) 242 * We have a 5 ways to try to return a texture (in sorted order)
243 * 243 *
244 * 1. Check the cache for a pre-existing one 244 * 1. Check the cache for a pre-existing one
245 * 2. Ask the generator to natively create one 245 * 2. Ask the generator to natively create one
246 * 3. Ask the generator to return a compressed form that the GPU might support 246 * 3. Ask the generator to return a compressed form that the GPU might support
247 * 4. Ask the generator to return YUV planes, which the GPU can convert 247 * 4. Ask the generator to return YUV planes, which the GPU can convert
248 * 5. Ask the generator to return RGB(A) data, which the GPU can convert 248 * 5. Ask the generator to return RGB(A) data, which the GPU can convert
249 */ 249 */
250 GrTexture* SkImageCacherator::lockTexture(GrContext* ctx, const GrUniqueKey& key , 250 GrTexture* SkImageCacherator::lockTexture(GrContext* ctx, const GrUniqueKey& key ,
251 const SkImage* client, SkImage::Cachin gHint chint, 251 const SkImage* client, SkImage::Cachin gHint chint,
252 bool willBeMipped) { 252 bool willBeMipped,
253 SkSourceGammaTreatment gammaTreatment) {
253 // Values representing the various texture lock paths we can take. Used for logging the path 254 // Values representing the various texture lock paths we can take. Used for logging the path
254 // taken to a histogram. 255 // taken to a histogram.
255 enum LockTexturePath { 256 enum LockTexturePath {
256 kFailure_LockTexturePath, 257 kFailure_LockTexturePath,
257 kPreExisting_LockTexturePath, 258 kPreExisting_LockTexturePath,
258 kNative_LockTexturePath, 259 kNative_LockTexturePath,
259 kCompressed_LockTexturePath, 260 kCompressed_LockTexturePath,
260 kYUV_LockTexturePath, 261 kYUV_LockTexturePath,
261 kRGBA_LockTexturePath, 262 kRGBA_LockTexturePath,
262 }; 263 };
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 kLockTexturePathCount); 309 kLockTexturePathCount);
309 return set_key_and_return(tex.release(), key); 310 return set_key_and_return(tex.release(), key);
310 } 311 }
311 } 312 }
312 313
313 // 5. Ask the generator to return RGB(A) data, which the GPU can convert 314 // 5. Ask the generator to return RGB(A) data, which the GPU can convert
314 SkBitmap bitmap; 315 SkBitmap bitmap;
315 if (this->tryLockAsBitmap(&bitmap, client, chint)) { 316 if (this->tryLockAsBitmap(&bitmap, client, chint)) {
316 GrTexture* tex = nullptr; 317 GrTexture* tex = nullptr;
317 if (willBeMipped) { 318 if (willBeMipped) {
318 tex = GrGenerateMipMapsAndUploadToTexture(ctx, bitmap); 319 tex = GrGenerateMipMapsAndUploadToTexture(ctx, bitmap, gammaTreatmen t);
319 } 320 }
320 if (!tex) { 321 if (!tex) {
321 tex = GrUploadBitmapToTexture(ctx, bitmap); 322 tex = GrUploadBitmapToTexture(ctx, bitmap);
322 } 323 }
323 if (tex) { 324 if (tex) {
324 SK_HISTOGRAM_ENUMERATION("LockTexturePath", kRGBA_LockTexturePath, 325 SK_HISTOGRAM_ENUMERATION("LockTexturePath", kRGBA_LockTexturePath,
325 kLockTexturePathCount); 326 kLockTexturePathCount);
326 return set_key_and_return(tex, key); 327 return set_key_and_return(tex, key);
327 } 328 }
328 } 329 }
329 SK_HISTOGRAM_ENUMERATION("LockTexturePath", kFailure_LockTexturePath, 330 SK_HISTOGRAM_ENUMERATION("LockTexturePath", kFailure_LockTexturePath,
330 kLockTexturePathCount); 331 kLockTexturePathCount);
331 return nullptr; 332 return nullptr;
332 } 333 }
333 334
334 //////////////////////////////////////////////////////////////////////////////// /////////////////// 335 //////////////////////////////////////////////////////////////////////////////// ///////////////////
335 336
336 GrTexture* SkImageCacherator::lockAsTexture(GrContext* ctx, const GrTextureParam s& params, 337 GrTexture* SkImageCacherator::lockAsTexture(GrContext* ctx, const GrTextureParam s& params,
338 SkSourceGammaTreatment gammaTreatmen t,
337 const SkImage* client, SkImage::Cach ingHint chint) { 339 const SkImage* client, SkImage::Cach ingHint chint) {
338 if (!ctx) { 340 if (!ctx) {
339 return nullptr; 341 return nullptr;
340 } 342 }
341 343
342 return GrImageTextureMaker(ctx, this, client, chint).refTextureForParams(par ams); 344 return GrImageTextureMaker(ctx, this, client, chint).refTextureForParams(par ams,
345 gam maTreatment);
343 } 346 }
344 347
345 #else 348 #else
346 349
347 GrTexture* SkImageCacherator::lockAsTexture(GrContext* ctx, const GrTextureParam s&, 350 GrTexture* SkImageCacherator::lockAsTexture(GrContext* ctx, const GrTextureParam s&,
351 SkSourceGammaTreatment gammaTreatmen t,
348 const SkImage* client, SkImage::Cach ingHint) { 352 const SkImage* client, SkImage::Cach ingHint) {
349 return nullptr; 353 return nullptr;
350 } 354 }
351 355
352 #endif 356 #endif
OLDNEW
« no previous file with comments | « src/core/SkImageCacherator.h ('k') | src/core/SkLightingShader.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698