Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d88e0680 authored by Romain Guy's avatar Romain Guy Committed by Android Git Automerger
Browse files

am 288471d8: DO NOT MERGE. Load assets in place instead of deferring until draw.

Merge commit '288471d8' into gingerbread-plus-aosp

* commit '288471d8':
  DO NOT MERGE. Load assets in place instead of deferring until draw.
parents 36c051c7 288471d8
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -218,6 +218,7 @@ static SkPixelRef* installPixelRef(SkBitmap* bitmap, SkStream* stream,
    }
    pr->setDitherImage(ditherImage);
    bitmap->setPixelRef(pr)->unref();
    pr->isOpaque(bitmap);
    return pr;
}

@@ -464,10 +465,7 @@ static jobject nativeDecodeAsset(JNIEnv* env, jobject clazz,
                                 jobject options) { // BitmapFactory$Options
    SkStream* stream;
    Asset* asset = reinterpret_cast<Asset*>(native_asset);
    // assets can always be rebuilt, so force this
    bool forcePurgeable = true;

    if (forcePurgeable || optionsPurgeable(env, options)) {
    if (optionsPurgeable(env, options)) {
        // if we could "ref/reopen" the asset, we may not need to copy it here
        // and we could assume optionsShareable, since assets are always RO
        stream = copyAssetToStream(asset);
+11 −13
Original line number Diff line number Diff line
@@ -27,7 +27,6 @@ import java.io.FileDescriptor;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.FileNotFoundException;

/**
 * Creates Bitmap objects from various sources, including files, streams,
@@ -40,7 +39,7 @@ public class BitmapFactory {
         * the same result from the decoder as if null were passed.
         */
        public Options() {
            inDither = true;
            inDither = false;
            inScaled = true;
        }

@@ -70,8 +69,11 @@ public class BitmapFactory {
         * the decoder will try to pick the best matching config based on the
         * system's screen depth, and characteristics of the original image such
         * as if it has per-pixel alpha (requiring a config that also does).
         * 
         * Image are loaded with the {@link Bitmap.Config#ARGB_8888} config by
         * default.
         */
        public Bitmap.Config inPreferredConfig;
        public Bitmap.Config inPreferredConfig = Bitmap.Config.ARGB_8888;

        /**
         * If dither is true, the decoder will attempt to dither the decoded
@@ -453,10 +455,8 @@ public class BitmapFactory {
            // into is.read(...) This number is not related to the value passed
            // to mark(...) above.
            byte [] tempStorage = null;
            if (opts != null)
                tempStorage = opts.inTempStorage;
            if (tempStorage == null)
                tempStorage = new byte[16 * 1024];
            if (opts != null) tempStorage = opts.inTempStorage;
            if (tempStorage == null) tempStorage = new byte[16 * 1024];
            bm = nativeDecodeStream(is, tempStorage, outPadding, opts);
        }

@@ -475,8 +475,7 @@ public class BitmapFactory {
        
        bm.setDensity(density);
        final int targetDensity = opts.inTargetDensity;
        if (targetDensity == 0 || density == targetDensity
                || density == opts.inScreenDensity) {
        if (targetDensity == 0 || density == targetDensity || density == opts.inScreenDensity) {
            return bm;
        }
        
@@ -673,8 +672,7 @@ public class BitmapFactory {
            // pass some temp storage down to the native code. 1024 is made up,
            // but should be large enough to avoid too many small calls back
            // into is.read(...).
            byte [] tempStorage = null;
            tempStorage = new byte[16 * 1024];
            byte [] tempStorage = new byte[16 * 1024];
            return nativeCreateLargeBitmap(is, tempStorage, isShareable);
        }
    }
@@ -695,8 +693,8 @@ public class BitmapFactory {
     * @throws IOException if the image format is not supported or can not be decoded.
     * @hide
     */
    public static LargeBitmap createLargeBitmap(String pathName,
            boolean isShareable) throws FileNotFoundException, IOException {
    public static LargeBitmap createLargeBitmap(String pathName, boolean isShareable)
            throws IOException {
        LargeBitmap bm = null;
        InputStream stream = null;