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

Commit d57ca2de authored by Android (Google) Code Review's avatar Android (Google) Code Review
Browse files

Merge change 22163 into eclair

* changes:
  Point Sprites
parents 4e297203 25ffcdc9
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -111,7 +111,8 @@ public class Element extends BaseObj {
        NX (15),
        NY (16),
        NZ (17),
        INDEX (18);
        INDEX (18),
        POINT_SIZE(19);

        int mID;
        DataKind(int id) {
@@ -248,6 +249,11 @@ public class Element extends BaseObj {
            return this;
        }

        public Builder addFloatPointSize() {
            add(DataType.FLOAT, DataKind.POINT_SIZE, false, 32, null);
            return this;
        }

        public Builder addFloatRGB() {
            add(DataType.FLOAT, DataKind.RED, false, 32, null);
            add(DataType.FLOAT, DataKind.GREEN, false, 32, null);
+9 −7
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ public class ProgramFragment extends BaseObj {
        RenderScript mRS;
        Element mIn;
        Element mOut;
        boolean mPointSpriteEnable;

        private class Slot {
            Type mType;
@@ -85,6 +86,7 @@ public class ProgramFragment extends BaseObj {
            mIn = in;
            mOut = out;
            mSlots = new Slot[MAX_SLOT];
            mPointSpriteEnable = false;
            for(int ct=0; ct < MAX_SLOT; ct++) {
                mSlots[ct] = new Slot();
            }
@@ -117,6 +119,9 @@ public class ProgramFragment extends BaseObj {
            mSlots[slot].mEnv = env;
        }

        public void setPointSpriteTexCoordinateReplacement(boolean enable) {
            mPointSpriteEnable = enable;
        }

        static synchronized ProgramFragment internalCreate(RenderScript rs, Builder b) {
            int inID = 0;
@@ -127,21 +132,18 @@ public class ProgramFragment extends BaseObj {
            if (b.mOut != null) {
                outID = b.mOut.mID;
            }
            rs.nProgramFragmentBegin(inID, outID);
            rs.nProgramFragmentBegin(inID, outID, b.mPointSpriteEnable);
            for(int ct=0; ct < MAX_SLOT; ct++) {
                if(b.mSlots[ct].mTexEnable) {
                    Slot s = b.mSlots[ct];
                    int typeID = 0;
                    if(s.mType != null) {
                        rs.nProgramFragmentSetType(ct, s.mType.mID);
                    }
                    rs.nProgramFragmentSetTexEnable(ct, true);
                    if(s.mEnv != null) {
                        rs.nProgramFragmentSetEnvMode(ct, s.mEnv.mID);
                        typeID = s.mType.mID;
                    }
                    rs.nProgramFragmentSetSlot(ct, true, s.mEnv.mID, typeID);
                }
            }


            int id = rs.nProgramFragmentCreate();
            return new ProgramFragment(id, rs);
        }
+2 −4
Original line number Diff line number Diff line
@@ -158,12 +158,10 @@ public class RenderScript {
    native void nProgramFragmentStoreDither(boolean enable);
    native int  nProgramFragmentStoreCreate();

    native void nProgramFragmentBegin(int in, int out);
    native void nProgramFragmentBegin(int in, int out, boolean pointSpriteEnable);
    native void nProgramFragmentBindTexture(int vpf, int slot, int a);
    native void nProgramFragmentBindSampler(int vpf, int slot, int s);
    native void nProgramFragmentSetType(int slot, int vt);
    native void nProgramFragmentSetEnvMode(int slot, int env);
    native void nProgramFragmentSetTexEnable(int slot, boolean enable);
    native void nProgramFragmentSetSlot(int slot, boolean enable, int env, int vt);
    native int  nProgramFragmentCreate();

    native void nProgramVertexBindAllocation(int pv, int mID);
+8 −26
Original line number Diff line number Diff line
@@ -952,11 +952,11 @@ nProgramFragmentStoreCreate(JNIEnv *_env, jobject _this)
// ---------------------------------------------------------------------------

static void
nProgramFragmentBegin(JNIEnv *_env, jobject _this, jint in, jint out)
nProgramFragmentBegin(JNIEnv *_env, jobject _this, jint in, jint out, jboolean pointSpriteEnable)
{
    RsContext con = (RsContext)(_env->GetIntField(_this, gContextId));
    LOG_API("nProgramFragmentBegin, con(%p), in(%p), out(%p)", con, (RsElement)in, (RsElement)out);
    rsProgramFragmentBegin(con, (RsElement)in, (RsElement)out);
    LOG_API("nProgramFragmentBegin, con(%p), in(%p), out(%p) PointSprite(%i)", con, (RsElement)in, (RsElement)out, pointSpriteEnable);
    rsProgramFragmentBegin(con, (RsElement)in, (RsElement)out, pointSpriteEnable);
}

static void
@@ -976,27 +976,11 @@ nProgramFragmentBindSampler(JNIEnv *_env, jobject _this, jint vpf, jint slot, ji
}

static void
nProgramFragmentSetType(JNIEnv *_env, jobject _this, jint slot, jint vt)
nProgramFragmentSetSlot(JNIEnv *_env, jobject _this, jint slot, jboolean enable, jint env, jint vt)
{
    RsContext con = (RsContext)(_env->GetIntField(_this, gContextId));
    LOG_API("nProgramFragmentSetType, con(%p), slot(%i), vt(%p)", con, slot, (RsType)vt);
    rsProgramFragmentSetType(con, slot, (RsType)vt);
}

static void
nProgramFragmentSetEnvMode(JNIEnv *_env, jobject _this, jint slot, jint env)
{
    RsContext con = (RsContext)(_env->GetIntField(_this, gContextId));
    LOG_API("nProgramFragmentSetEnvMode, con(%p), slot(%i), vt(%i)", con, slot, env);
    rsProgramFragmentSetEnvMode(con, slot, (RsTexEnvMode)env);
}

static void
nProgramFragmentSetTexEnable(JNIEnv *_env, jobject _this, jint slot, jboolean enable)
{
    RsContext con = (RsContext)(_env->GetIntField(_this, gContextId));
    LOG_API("nProgramFragmentSetTexEnable, con(%p), slot(%i), enable(%i)", con, slot, enable);
    rsProgramFragmentSetTexEnable(con, slot, enable);
    LOG_API("nProgramFragmentSetType, con(%p), slot(%i), enable(%i), env(%i), vt(%p)", con, slot, enable, env, (RsType)vt);
    rsProgramFragmentSetSlot(con, slot, enable, (RsTexEnvMode)env, (RsType)vt);
}

static jint
@@ -1305,12 +1289,10 @@ static JNINativeMethod methods[] = {
{"nProgramFragmentStoreDither",    "(Z)V",                                 (void*)nProgramFragmentStoreDither },
{"nProgramFragmentStoreCreate",    "()I",                                  (void*)nProgramFragmentStoreCreate },

{"nProgramFragmentBegin",          "(II)V",                                (void*)nProgramFragmentBegin },
{"nProgramFragmentBegin",          "(IIZ)V",                               (void*)nProgramFragmentBegin },
{"nProgramFragmentBindTexture",    "(III)V",                               (void*)nProgramFragmentBindTexture },
{"nProgramFragmentBindSampler",    "(III)V",                               (void*)nProgramFragmentBindSampler },
{"nProgramFragmentSetType",        "(II)V",                                (void*)nProgramFragmentSetType },
{"nProgramFragmentSetEnvMode",     "(II)V",                                (void*)nProgramFragmentSetEnvMode },
{"nProgramFragmentSetTexEnable",   "(IZ)V",                                (void*)nProgramFragmentSetTexEnable },
{"nProgramFragmentSetSlot",        "(IZII)V",                              (void*)nProgramFragmentSetSlot },
{"nProgramFragmentCreate",         "()I",                                  (void*)nProgramFragmentCreate },

{"nProgramVertexBindAllocation",   "(II)V",                                (void*)nProgramVertexBindAllocation },
+2 −1
Original line number Diff line number Diff line
@@ -80,7 +80,8 @@ enum RsDataKind {
    RS_KIND_NX,
    RS_KIND_NY,
    RS_KIND_NZ,
    RS_KIND_INDEX
    RS_KIND_INDEX,
    RS_KIND_POINT_SIZE
};

enum RsElementPredefined {
Loading