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

Side by Side Diff: include/core/SkImage.h

Issue 2242883004: Store mipmap levels in deferred texture image (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Fixing opening brace location. Created 4 years, 3 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 | « gm/deferredtextureimagedata.cpp ('k') | src/image/SkImage.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 2012 Google Inc. 2 * Copyright 2012 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 #ifndef SkImage_DEFINED 8 #ifndef SkImage_DEFINED
9 #define SkImage_DEFINED 9 #define SkImage_DEFINED
10 10
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 * If the result image cannot be created, or the result would be transparen t black, null 358 * If the result image cannot be created, or the result would be transparen t black, null
359 * is returned, in which case the offset and outSubset parameters should be ignored by the 359 * is returned, in which case the offset and outSubset parameters should be ignored by the
360 * caller. 360 * caller.
361 */ 361 */
362 sk_sp<SkImage> makeWithFilter(const SkImageFilter* filter, const SkIRect& su bset, 362 sk_sp<SkImage> makeWithFilter(const SkImageFilter* filter, const SkIRect& su bset,
363 const SkIRect& clipBounds, SkIRect* outSubset, 363 const SkIRect& clipBounds, SkIRect* outSubset,
364 SkIPoint* offset) const; 364 SkIPoint* offset) const;
365 365
366 /** Drawing params for which a deferred texture image data should be optimiz ed. */ 366 /** Drawing params for which a deferred texture image data should be optimiz ed. */
367 struct DeferredTextureImageUsageParams { 367 struct DeferredTextureImageUsageParams {
368 DeferredTextureImageUsageParams() : fPreScaleMipLevel(0) {} 368 DeferredTextureImageUsageParams(const SkMatrix matrix, const SkFilterQua lity quality,
369 DeferredTextureImageUsageParams(const SkMatrix matrix, const SkFilterQua lity quality,
370 int preScaleMipLevel) 369 int preScaleMipLevel)
371 : fMatrix(matrix), fQuality(quality), fPreScaleMipLevel(preScaleMipL evel) {} 370 : fMatrix(matrix), fQuality(quality), fPreScaleMipLevel(preScaleMipL evel) {}
372 SkMatrix fMatrix; 371 SkMatrix fMatrix;
373 SkFilterQuality fQuality; 372 SkFilterQuality fQuality;
374 int fPreScaleMipLevel; 373 int fPreScaleMipLevel;
375 }; 374 };
376 375
377 /** 376 /**
378 * This method allows clients to capture the data necessary to turn a SkImag e into a texture- 377 * This method allows clients to capture the data necessary to turn a SkImag e into a texture-
379 * backed image. If the original image is codec-backed this will decode into a format optimized 378 * backed image. If the original image is codec-backed this will decode into a format optimized
(...skipping 10 matching lines...) Expand all
390 * to create deferred texture data for this image (or zero if this is an ina ppropriate 389 * to create deferred texture data for this image (or zero if this is an ina ppropriate
391 * candidate). The buffer allocated by the client should be 8 byte aligned. 390 * candidate). The buffer allocated by the client should be 8 byte aligned.
392 * 391 *
393 * When buffer is not null this fills in the deferred texture data for this image in the 392 * When buffer is not null this fills in the deferred texture data for this image in the
394 * provided buffer (assuming this is an appropriate candidate image and the buffer is 393 * provided buffer (assuming this is an appropriate candidate image and the buffer is
395 * appropriately aligned). Upon success the size written is returned, otherw ise 0. 394 * appropriately aligned). Upon success the size written is returned, otherw ise 0.
396 */ 395 */
397 size_t getDeferredTextureImageData(const GrContextThreadSafeProxy&, 396 size_t getDeferredTextureImageData(const GrContextThreadSafeProxy&,
398 const DeferredTextureImageUsageParams[], 397 const DeferredTextureImageUsageParams[],
399 int paramCnt, 398 int paramCnt,
400 void* buffer) const; 399 void* buffer,
400 SkSourceGammaTreatment treatment =
401 SkSourceGammaTreatment::kIgnore) const;
401 402
402 /** 403 /**
403 * Returns a texture-backed image from data produced in SkImage::getDeferred TextureImageData. 404 * Returns a texture-backed image from data produced in SkImage::getDeferred TextureImageData.
404 * The context must be the context that provided the proxy passed to 405 * The context must be the context that provided the proxy passed to
405 * getDeferredTextureImageData. 406 * getDeferredTextureImageData.
406 */ 407 */
407 static sk_sp<SkImage> MakeFromDeferredTextureImageData(GrContext*, const voi d*, SkBudgeted); 408 static sk_sp<SkImage> MakeFromDeferredTextureImageData(GrContext*, const voi d*, SkBudgeted);
408 409
409 // Helper functions to convert to SkBitmap 410 // Helper functions to convert to SkBitmap
410 411
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
463 SkImage* newSubset(const SkIRect& subset) const { return this->makeSubset(su bset).release(); } 464 SkImage* newSubset(const SkIRect& subset) const { return this->makeSubset(su bset).release(); }
464 SkImage* newTextureImage(GrContext* ctx) const { return this->makeTextureIma ge(ctx).release(); } 465 SkImage* newTextureImage(GrContext* ctx) const { return this->makeTextureIma ge(ctx).release(); }
465 #endif 466 #endif
466 467
467 protected: 468 protected:
468 SkImage(int width, int height, uint32_t uniqueID); 469 SkImage(int width, int height, uint32_t uniqueID);
469 470
470 private: 471 private:
471 static sk_sp<SkImage> MakeTextureFromMipMap(GrContext*, const SkImageInfo&, 472 static sk_sp<SkImage> MakeTextureFromMipMap(GrContext*, const SkImageInfo&,
472 const GrMipLevel* texels, int mi pLevelCount, 473 const GrMipLevel* texels, int mi pLevelCount,
473 SkBudgeted); 474 SkBudgeted, SkSourceGammaTreatme nt);
474 475
475 const int fWidth; 476 const int fWidth;
476 const int fHeight; 477 const int fHeight;
477 const uint32_t fUniqueID; 478 const uint32_t fUniqueID;
478 479
479 typedef SkRefCnt INHERITED; 480 typedef SkRefCnt INHERITED;
480 }; 481 };
481 482
482 #endif 483 #endif
OLDNEW
« no previous file with comments | « gm/deferredtextureimagedata.cpp ('k') | src/image/SkImage.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698