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

Commit ab452f70 authored by Miao Wang's avatar Miao Wang Committed by Android Git Automerger
Browse files

am 2b30b73b: am 6f6f44b0: am b2b0c4c2: Merge "[RenderScript] Add...

am 2b30b73b: am 6f6f44b0: am b2b0c4c2: Merge "[RenderScript] Add create(Context, int) to be compatible with the thunker layer & minor tweaks."

* commit '2b30b73b':
  [RenderScript] Add create(Context, int) to be compatible with the thunker layer & minor tweaks.
parents 568e3918 2b30b73b
Loading
Loading
Loading
Loading
+36 −7
Original line number Diff line number Diff line
@@ -1351,7 +1351,7 @@ public class RenderScript {
    }

    /**
     * calls create(cts, ContextType.NORMAL, CREATE_FLAG_NONE)
     * calls create(ctx, ContextType.NORMAL, CREATE_FLAG_NONE)
     *
     * See documentation for @create for details
     *
@@ -1363,7 +1363,7 @@ public class RenderScript {
    }

    /**
     * calls create(cts, ct, CREATE_FLAG_NONE)
     * calls create(ctx, ct, CREATE_FLAG_NONE)
     *
     * See documentation for @create for details
     *
@@ -1375,6 +1375,7 @@ public class RenderScript {
        return create(ctx, ct, CREATE_FLAG_NONE);
    }


    /**
     * Gets or creates a RenderScript context of the specified type.
     *
@@ -1397,21 +1398,49 @@ public class RenderScript {
     */
    public static RenderScript create(Context ctx, ContextType ct, int flags) {
        int v = ctx.getApplicationInfo().targetSdkVersion;
        if (v < 23) {
            return internalCreate(ctx, v, ct, flags);
        return create(ctx, v, ct, flags);
    }

    /**
     * calls create(ctx, sdkVersion, ContextType.NORMAL, CREATE_FLAG_NONE)
     *
     * Used by the RenderScriptThunker to maintain backward compatibility.
     *
     * @hide
     * @param ctx The context.
     * @param sdkVersion The target SDK Version.
     * @return RenderScript
     */
    public static RenderScript create(Context ctx, int sdkVersion) {
        return create(ctx, sdkVersion, ContextType.NORMAL, CREATE_FLAG_NONE);
    }

     /**
     * Gets or creates a RenderScript context of the specified type.
     *
     * @hide
     * @param ctx The context.
     * @param ct The type of context to be created.
     * @param sdkVersion The target SDK Version.
     * @param flags The OR of the CREATE_FLAG_* options desired
     * @return RenderScript
     */
    public static RenderScript create(Context ctx, int sdkVersion, ContextType ct, int flags) {
        if (sdkVersion < 23) {
            return internalCreate(ctx, sdkVersion, ct, flags);
        }

        synchronized (mProcessContextList) {
            for (RenderScript prs : mProcessContextList) {
                if ((prs.mContextType == ct) &&
                    (prs.mContextFlags == flags) &&
                    (prs.mContextSdkVersion == v)) {
                    (prs.mContextSdkVersion == sdkVersion)) {

                    return prs;
                }
            }

            RenderScript prs = internalCreate(ctx, v, ct, flags);
            RenderScript prs = internalCreate(ctx, sdkVersion, ct, flags);
            prs.mIsProcessContext = true;
            mProcessContextList.add(prs);
            return prs;