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

Commit adeb8092 authored by Stephen Hines's avatar Stephen Hines
Browse files

Start passing element/dim information along with FieldPacker.

BUG=6009244

Change-Id: I3c82c8b40c899b875831f53cf0ad82ea36c1a043
parent 9da1b5d0
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -19239,6 +19239,7 @@ package android.renderscript {
    method public deprecated void setVar(int, boolean);
    method public deprecated void setVar(int, android.renderscript.BaseObj);
    method public deprecated void setVar(int, android.renderscript.FieldPacker);
    method public deprecated void setVar(int, android.renderscript.FieldPacker, android.renderscript.Element, int[]);
  }
  public static class Script.Builder {
+7 −0
Original line number Diff line number Diff line
@@ -541,6 +541,13 @@ public class RenderScript {
        validate();
        rsnScriptSetVarV(mContext, id, slot, val);
    }
    native void rsnScriptSetVarVE(int con, int id, int slot, byte[] val,
                                  int e, int[] dims);
    synchronized void nScriptSetVarVE(int id, int slot, byte[] val,
                                      int e, int[] dims) {
        validate();
        rsnScriptSetVarVE(mContext, id, slot, val, e, dims);
    }
    native void rsnScriptSetVarObj(int con, int id, int slot, int val);
    synchronized void nScriptSetVarObj(int id, int slot, int val) {
        validate();
+13 −1
Original line number Diff line number Diff line
/*
 * Copyright (C) 2008 The Android Open Source Project
 * Copyright (C) 2008-2012 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
@@ -162,6 +162,18 @@ public class Script extends BaseObj {
        mRS.nScriptSetVarV(getID(mRS), index, v.getData());
    }

    /** @deprecated renderscript is deprecated in J
     * Only intended for use by generated reflected code.
     *
     * @param index
     * @param v
     * @param e
     * @param dims
     */
    public void setVar(int index, FieldPacker v, Element e, int[] dims) {
        mRS.nScriptSetVarVE(getID(mRS), index, v.getData(), e.getID(mRS), dims);
    }

    /** @deprecated renderscript is deprecated in J
    */
    public void setTimeZone(String timeZone) {
+15 −0
Original line number Diff line number Diff line
@@ -953,6 +953,20 @@ nScriptSetVarV(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slo
    _env->ReleaseByteArrayElements(data, ptr, JNI_ABORT);
}

static void
nScriptSetVarVE(JNIEnv *_env, jobject _this, RsContext con, jint script, jint slot, jbyteArray data, jint elem, jintArray dims)
{
    LOG_API("nScriptSetVarVE, con(%p), s(%p), slot(%i)", con, (void *)script, slot);
    jint len = _env->GetArrayLength(data);
    jbyte *ptr = _env->GetByteArrayElements(data, NULL);
    jint dimsLen = _env->GetArrayLength(dims) * sizeof(int);
    jint *dimsPtr = _env->GetIntArrayElements(dims, NULL);
    rsScriptSetVarVE(con, (RsScript)script, slot, ptr, len, (RsElement)elem,
                     (const size_t*) dimsPtr, dimsLen);
    _env->ReleaseByteArrayElements(data, ptr, JNI_ABORT);
    _env->ReleaseIntArrayElements(dims, dimsPtr, JNI_ABORT);
}


static void
nScriptSetTimeZone(JNIEnv *_env, jobject _this, RsContext con, jint script, jbyteArray timeZone)
@@ -1394,6 +1408,7 @@ static JNINativeMethod methods[] = {
{"rsnScriptSetVarF",                 "(IIIF)V",                               (void*)nScriptSetVarF },
{"rsnScriptSetVarD",                 "(IIID)V",                               (void*)nScriptSetVarD },
{"rsnScriptSetVarV",                 "(III[B)V",                              (void*)nScriptSetVarV },
{"rsnScriptSetVarVE",                "(III[BI[I)V",                           (void*)nScriptSetVarVE },
{"rsnScriptSetVarObj",               "(IIII)V",                               (void*)nScriptSetVarObj },

{"rsnScriptCCreate",                 "(ILjava/lang/String;Ljava/lang/String;[BI)I",  (void*)nScriptCCreate },
+1 −0
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ public class RSTestCore {
        unitTests.add(new UT_constant(this, mRes, mCtx));
        unitTests.add(new UT_vector(this, mRes, mCtx));
        unitTests.add(new UT_array_init(this, mRes, mCtx));
        unitTests.add(new UT_array_alloc(this, mRes, mCtx));
        unitTests.add(new UT_convert(this, mRes, mCtx));
        unitTests.add(new UT_rsdebug(this, mRes, mCtx));
        unitTests.add(new UT_rstime(this, mRes, mCtx));
Loading