static GrTexture* load_compressed_into_texture(GrContext* ctx, SkData* data, GrSurfaceDesc desc) { const void* rawStart; GrPixelConfig config = GrIsCompressedTextureDataSupported(ctx, data, desc.fWidth, desc.fHeight, &rawStart); if (kUnknown_GrPixelConfig == config) { return nullptr; } desc.fConfig = config; return ctx->textureProvider()->createTexture(desc, SkBudgeted::kYes, rawStart, 0); }
static GrTexture* load_etc1_texture(GrContext* ctx, const SkBitmap &bm, GrSurfaceDesc desc) { SkAutoTUnref<SkData> data(bm.pixelRef()->refEncodedData()); if (!data) { return nullptr; } const void* startOfTexData; desc.fConfig = GrIsCompressedTextureDataSupported(ctx, data, bm.width(), bm.height(), &startOfTexData); if (kUnknown_GrPixelConfig == desc.fConfig) { return nullptr; } return ctx->textureProvider()->createTexture(desc, true, startOfTexData, 0); }
static GrTexture* load_etc1_texture(GrContext* ctx, const GrUniqueKey& optionalKey, const SkBitmap &bm, GrSurfaceDesc desc) { SkAutoTUnref<SkData> data(bm.pixelRef()->refEncodedData()); if (!data) { return nullptr; } const void* startOfTexData; desc.fConfig = GrIsCompressedTextureDataSupported(ctx, data, bm.width(), bm.height(), &startOfTexData); if (kUnknown_GrPixelConfig == desc.fConfig) { return nullptr; } return GrCreateTextureForPixels(ctx, optionalKey, desc, bm.pixelRef(), startOfTexData, 0); }