ImageDirView() { SkImageRef_GlobalPool::SetRAMBudget(320 * 1024); #ifdef SPECIFIC_IMAGE fBitmaps = new SkBitmap[3]; fStrings = new SkString[3]; fBitmapCount = 3; const SkBitmap::Config configs[] = { SkBitmap::kARGB_8888_Config, SkBitmap::kRGB_565_Config, SkBitmap::kARGB_4444_Config }; for (int i = 0; i < fBitmapCount; i++) { #if 1 SkStream* stream = new SkFILEStream(SPECIFIC_IMAGE); SetImageRef(&fBitmaps[i], stream, configs[i], SPECIFIC_IMAGE); stream->unref(); #else SkImageDecoder::DecodeFile(SPECIFIC_IMAGE, &fBitmaps[i]); #endif } #else int i, N = 0; SkOSFile::Iter iter(IMAGE_DIR, IMAGE_SUFFIX); SkString name; while (iter.next(&name)) { N += 1; } fBitmaps = new SkBitmap[N]; fStrings = new SkString[N]; iter.reset(IMAGE_DIR, IMAGE_SUFFIX); for (i = 0; i < N; i++) { iter.next(&name); SkString path(IMAGE_DIR); path.append(name); SkStream* stream = new SkFILEStream(path.c_str()); SetImageRef(&fBitmaps[i], stream, SkBitmap::kNo_Config, name.c_str()); stream->unref(); fStrings[i] = name; } fBitmapCount = N; #endif fCurrIndex = 0; fDX = fDY = 0; fSaturation = SK_Scalar1; fAngle = 0; fScale = SK_Scalar1; }
ImageView() { SkImageRef_GlobalPool::SetRAMBudget(32 * 1024); int i, N = SK_ARRAY_COUNT(gNames); fBitmaps = new SkBitmap[N]; for (i = 0; i < N; i++) { SkString str("/skimages/"); str.append(gNames[i]); SkFILEStream* stream = new SkFILEStream(str.c_str()); SetImageRef(&fBitmaps[i], stream, SkBitmap::kNo_Config, gNames[i]); if (i & 1) fBitmaps[i].buildMipMap(); stream->unref(); } fShader = SkShader::CreateBitmapShader(fBitmaps[5], SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode); if (true) { SkMatrix m; m.setRotate(SkIntToScalar(30)); fShader->setLocalMatrix(m); } #if 0 SkImageRef::DumpPool(); for (i = 0; i < N; i++) { SkBitmap& bm = fBitmaps[i]; SkDebugf("<%s> addr=%p", gNames[i], bm.getPixels()); bool success = bm.lockPixels(); SkDebugf(" addr=%d", bm.getPixels()); if (success) bm.unlockPixels(); SkDebugf(" addr=%p", bm.getPixels()); success = bm.lockPixels(); SkDebugf(" addr=%d", bm.getPixels()); if (success) bm.unlockPixels(); SkDebugf("\n"); } SkImageRef::DumpPool(); #endif }