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

Commit 7f22d015 authored by Stephen Hines's avatar Stephen Hines Committed by Android Git Automerger
Browse files

am c5b11fcc: am ff83ed2d: am b02dadd4: Merge "Create FieldPacker.getPos() to...

am c5b11fcc: am ff83ed2d: am b02dadd4: Merge "Create FieldPacker.getPos() to get the actual amount of data used for FP."

* commit 'c5b11fcc':
  Create FieldPacker.getPos() to get the actual amount of data used for FP.
parents 6f2b8e55 c5b11fcc
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -770,10 +770,11 @@ public class Allocation extends BaseObj {
        mRS.validate();
        int eSize = mType.mElement.getBytesSize();
        final byte[] data = fp.getData();
        int data_length = fp.getPos();

        int count = data.length / eSize;
        if ((eSize * count) != data.length) {
            throw new RSIllegalArgumentException("Field packer length " + data.length +
        int count = data_length / eSize;
        if ((eSize * count) != data_length) {
            throw new RSIllegalArgumentException("Field packer length " + data_length +
                                               " not divisible by element size " + eSize + ".");
        }
        copy1DRangeFromUnchecked(xoff, count, data);
@@ -797,16 +798,17 @@ public class Allocation extends BaseObj {
        }

        final byte[] data = fp.getData();
        int data_length = fp.getPos();
        int eSize = mType.mElement.mElements[component_number].getBytesSize();
        eSize *= mType.mElement.mArraySizes[component_number];

        if (data.length != eSize) {
            throw new RSIllegalArgumentException("Field packer sizelength " + data.length +
        if (data_length != eSize) {
            throw new RSIllegalArgumentException("Field packer sizelength " + data_length +
                                               " does not match component size " + eSize + ".");
        }

        mRS.nAllocationElementData1D(getIDSafe(), xoff, mSelectedLOD,
                                     component_number, data, data.length);
                                     component_number, data, data_length);
    }

    private void data1DChecks(int off, int count, int len, int dataSize) {
+10 −1
Original line number Diff line number Diff line
@@ -75,7 +75,7 @@ public class FieldPacker {
        mPos = 0;
    }
    public void reset(int i) {
        if ((i < 0) || (i >= mLen)) {
        if ((i < 0) || (i > mLen)) {
            throw new RSIllegalArgumentException("out of range argument: " + i);
        }
        mPos = i;
@@ -605,6 +605,15 @@ public class FieldPacker {
        return mData;
    }

    /**
     * Get the actual length used for the FieldPacker.
     *
     * @hide
     */
    public int getPos() {
        return mPos;
    }

    private final byte mData[];
    private int mPos;
    private int mLen;
+3 −0
Original line number Diff line number Diff line
@@ -245,6 +245,9 @@ public class ProgramVertexFixedFunction extends ProgramVertex {
            for(int i = 0; i < 16; i ++) {
                mIOBuffer.addF32(m.mMat[i]);
            }
            // Reset the buffer back to the end, since we want to flush all of
            // the contents back (and not just what we wrote now).
            mIOBuffer.reset(mIOBuffer.getData().length);
            mAlloc.setFromFieldPacker(0, mIOBuffer);
        }