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

Commit 838c6a15 authored by Alex Sakhartchouk's avatar Alex Sakhartchouk Committed by Android (Google) Code Review
Browse files

Merge "Changing scenegraph sample to use arrays."

parents 4826ce82 9e401bcd
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -342,7 +342,7 @@ public class Element extends BaseObj {
        mElementNames = n;
        mArraySizes = as;
        for (int ct = 0; ct < mElements.length; ct++ ) {
            mSize += mElements[ct].mSize;
            mSize += mElements[ct].mSize * mArraySizes[ct];
        }
    }

+7 −53
Original line number Diff line number Diff line
@@ -46,9 +46,6 @@ public class SgTransform {
    ScriptField_SgTransform mChildField;
    public ScriptField_SgTransform.Item mTransformData;

    Float4[] mTransforms;
    TransformType[] mTransformTypes;

    RenderScript mRS;

    Vector mChildren;
@@ -66,62 +63,20 @@ public class SgTransform {
    }

    public void setTransform(int index, Float4 value, TransformType type) {
        mTransforms[index] = value;
        mTransformTypes[index] = type;
        mTransformData.transforms[index] = value;
        mTransformData.transformTypes[index] = type.mID;
    }

    void initData() {
        int numTransforms = 16;
        mTransforms = new Float4[numTransforms];
        mTransformTypes = new TransformType[numTransforms];
        for(int i = 0; i < numTransforms; i ++) {
            mTransforms[i] = new Float4(0, 0, 0, 0);
            mTransformTypes[i] = TransformType.NONE;
        }
        int numElements = mTransformData.transforms.length;
        mTransformData.transformTypes = new int[numElements];
        for(int i = 0; i < numElements; i ++) {
            mTransformData.transforms[i] = new Float4(0, 0, 0, 0);
            mTransformData.transformTypes[i] = TransformType.NONE.mID;
        }

    void setData() {

        mTransformData.globalMat = new Matrix4f();
        mTransformData.localMat = new Matrix4f();

        mTransformData.transforms0 = mTransforms[0];
        mTransformData.transforms1 = mTransforms[1];
        mTransformData.transforms2 = mTransforms[2];
        mTransformData.transforms3 = mTransforms[3];
        mTransformData.transforms4 = mTransforms[4];
        mTransformData.transforms5 = mTransforms[5];
        mTransformData.transforms6 = mTransforms[6];
        mTransformData.transforms7 = mTransforms[7];
        mTransformData.transforms8 = mTransforms[8];
        mTransformData.transforms9 = mTransforms[9];
        mTransformData.transforms10 = mTransforms[10];
        mTransformData.transforms11 = mTransforms[11];
        mTransformData.transforms12 = mTransforms[12];
        mTransformData.transforms13 = mTransforms[13];
        mTransformData.transforms14 = mTransforms[14];
        mTransformData.transforms15 = mTransforms[15];

        mTransformData.transformType0 = mTransformTypes[0].mID;
        mTransformData.transformType1 = mTransformTypes[1].mID;
        mTransformData.transformType2 = mTransformTypes[2].mID;
        mTransformData.transformType3 = mTransformTypes[3].mID;
        mTransformData.transformType4 = mTransformTypes[4].mID;
        mTransformData.transformType5 = mTransformTypes[5].mID;
        mTransformData.transformType6 = mTransformTypes[6].mID;
        mTransformData.transformType7 = mTransformTypes[7].mID;
        mTransformData.transformType8 = mTransformTypes[8].mID;
        mTransformData.transformType9 = mTransformTypes[9].mID;
        mTransformData.transformType10 = mTransformTypes[10].mID;
        mTransformData.transformType11 = mTransformTypes[11].mID;
        mTransformData.transformType12 = mTransformTypes[12].mID;
        mTransformData.transformType13 = mTransformTypes[13].mID;
        mTransformData.transformType14 = mTransformTypes[14].mID;
        mTransformData.transformType15 = mTransformTypes[15].mID;

        mTransformData.isDirty = 1;
        mTransformData.children = null;

    }

    public SgTransform(RenderScript rs) {
@@ -132,7 +87,6 @@ public class SgTransform {
    }

    public ScriptField_SgTransform.Item getData() {
        setData();
        if(mChildren.size() != 0) {
            mChildField = new ScriptField_SgTransform(mRS, mChildren.size());
            mTransformData.children = mChildField.getAllocation();
+3 −3
Original line number Diff line number Diff line
@@ -48,16 +48,16 @@ void init() {

int root(int launchID) {

    gGroup->transforms1.w += 0.5f;
    gGroup->transforms[1].w += 0.5f;
    gGroup->isDirty = 1;

    SgTransform *robot1Ptr = gRobot1 + gRobot1Index;

    robot1Ptr->transforms1.w -= 1.5f;
    robot1Ptr->transforms[1].w -= 1.5f;
    robot1Ptr->isDirty = 1;

    SgTransform *robot2Ptr = gRobot2 + gRobot2Index;
    robot2Ptr->transforms1.w += 2.5f;
    robot2Ptr->transforms[1].w += 2.5f;
    robot2Ptr->isDirty = 1;

    rsForEach(gTransformRS, gRootNode->children, gRootNode->children, 0);
+2 −5
Original line number Diff line number Diff line
@@ -67,15 +67,12 @@ void root(const void *v_in, void *v_out, const void *usrData, uint32_t x, uint32
        // Reset our local matrix
        rsMatrixLoadIdentity(localMat);

        float4 *transformSource = &data->transforms0;
        int *transformTypes = &data->transformType0;

        for(int i = 0; i < 16; i ++) {
            if(transformTypes[i] == TRANSFORM_NONE) {
            if(data->transformTypes[i] == TRANSFORM_NONE) {
                break;
            }
            //rsDebug("Transform adding transformation", transformTypes[i]);
            appendTransformation(transformTypes[i], transformSource[i], localMat);
            appendTransformation(data->transformTypes[i], data->transforms[i], localMat);
        }
    }

+2 −33
Original line number Diff line number Diff line
@@ -25,39 +25,8 @@ typedef struct __attribute__((packed, aligned(4))) {
    rs_matrix4x4 globalMat;
    rs_matrix4x4 localMat;

    float4 transforms0;
    float4 transforms1;
    float4 transforms2;
    float4 transforms3;
    float4 transforms4;
    float4 transforms5;
    float4 transforms6;
    float4 transforms7;
    float4 transforms8;
    float4 transforms9;
    float4 transforms10;
    float4 transforms11;
    float4 transforms12;
    float4 transforms13;
    float4 transforms14;
    float4 transforms15;

    int transformType0;
    int transformType1;
    int transformType2;
    int transformType3;
    int transformType4;
    int transformType5;
    int transformType6;
    int transformType7;
    int transformType8;
    int transformType9;
    int transformType10;
    int transformType11;
    int transformType12;
    int transformType13;
    int transformType14;
    int transformType15;
    float4 transforms[16];
    int transformTypes[16];

    int isDirty;

Loading