Lines Matching refs:cache

384     // Only initialize the cache in getCache16/32.
403 uint16_t cache[], SkColor c0, SkColor c1, int count) {
424 cache[0] = SkPackRGB16(SkR32ToR16(rr), SkG32ToG16(gg), SkB32ToB16(bb));
425 cache[kCache16Count] = SkDitherPack888ToRGB16(rr, gg, bb);
426 cache += 1;
452 SkPMColor cache[], SkColor c0, SkColor c1,
511 cache[kCache32Count*0] = SkPackARGB32(0xFF, (r + 0 ) >> 16,
514 cache[kCache32Count*1] = SkPackARGB32(0xFF, (r + 0x8000) >> 16,
517 cache[kCache32Count*2] = SkPackARGB32(0xFF, (r + 0xC000) >> 16,
520 cache[kCache32Count*3] = SkPackARGB32(0xFF, (r + 0x4000) >> 16,
523 cache += 1;
530 cache[kCache32Count*0] = SkPackARGB32((a + 0 ) >> 16,
534 cache[kCache32Count*1] = SkPackARGB32((a + 0x8000) >> 16,
538 cache[kCache32Count*2] = SkPackARGB32((a + 0xC000) >> 16,
542 cache[kCache32Count*3] = SkPackARGB32((a + 0x4000) >> 16,
546 cache += 1;
554 cache[kCache32Count*0] = SkPremultiplyARGBInline((a + 0 ) >> 16,
558 cache[kCache32Count*1] = SkPremultiplyARGBInline((a + 0x8000) >> 16,
562 cache[kCache32Count*2] = SkPremultiplyARGBInline((a + 0xC000) >> 16,
566 cache[kCache32Count*3] = SkPremultiplyARGBInline((a + 0x4000) >> 16,
570 cache += 1;
591 void SkGradientShaderBase::GradientShaderCache::initCache16(GradientShaderCache* cache) {
596 SkASSERT(NULL == cache->fCache16Storage);
597 cache->fCache16Storage = (uint16_t*)sk_malloc_throw(allocSize);
598 cache->fCache16 = cache->fCache16Storage;
599 if (cache->fShader.fColorCount == 2) {
600 Build16bitCache(cache->fCache16, cache->fShader.fOrigColors[0],
601 cache->fShader.fOrigColors[1], kCache16Count);
603 Rec* rec = cache->fShader.fRecs;
605 for (int i = 1; i < cache->fShader.fColorCount; i++) {
610 Build16bitCache(cache->fCache16 + prevIndex, cache->fShader.fOrigColors[i-1],
611 cache->fShader.fOrigColors[i], nextIndex - prevIndex + 1);
624 void SkGradientShaderBase::GradientShaderCache::initCache32(GradientShaderCache* cache) {
628 SkASSERT(NULL == cache->fCache32PixelRef);
629 cache->fCache32PixelRef = SkMallocPixelRef::NewAllocate(info, 0, NULL);
630 cache->fCache32 = (SkPMColor*)cache->fCache32PixelRef->getAddr();
631 if (cache->fShader.fColorCount == 2) {
632 Build32bitCache(cache->fCache32, cache->fShader.fOrigColors[0],
633 cache->fShader.fOrigColors[1], kCache32Count, cache->fCacheAlpha,
634 cache->fShader.fGradFlags);
636 Rec* rec = cache->fShader.fRecs;
638 for (int i = 1; i < cache->fShader.fColorCount; i++) {
643 Build32bitCache(cache->fCache32 + prevIndex, cache->fShader.fOrigColors[i-1],
644 cache->fShader.fOrigColors[i], nextIndex - prevIndex + 1,
645 cache->fCacheAlpha, cache->fShader.fGradFlags);
652 * The gradient holds a cache for the most recent value of alpha. Successive
653 * callers with the same alpha value will share the same cache.
671 * allowing the client to utilize a cache of our bitmap (e.g. with a GPU).
672 * To do that, we maintain a private cache of built-bitmaps, based on our
674 * is present, we skip the cache for now.
677 // our caller assumes no external alpha, so we ensure that our cache is
679 SkAutoTUnref<GradientShaderCache> cache(this->refCache(0xFF));
704 // each cache cost 1K of RAM, since each bitmap will be 1x256 at 32bpp
715 (void)cache->getCache32();
717 bitmap->setPixelRef(cache->getCache32PixelRef());
1174 // the cache, but it'll still be ref'd until it's no longer being used.