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

Commit a4e5adf9 authored by Miao Wang's avatar Miao Wang
Browse files

[RenderScript] Add create(Context, int) to be compatible with

the thunker layer & minor tweaks.

bug:19888167
bug:19888339
Change-Id: Ib264c4ca48c990b3476456838047f73d95f6752f
parent 978cfc39
Loading
Loading
Loading
Loading
+36 −7
Original line number Diff line number Diff line
@@ -1352,7 +1352,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
     *
@@ -1364,7 +1364,7 @@ public class RenderScript {
    }

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


    /**
     * Gets or creates a RenderScript context of the specified type.
     *
@@ -1398,21 +1399,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;