v0.4.2: various performance improvements to core classes

This commit is contained in:
Evan Debenham
2016-08-29 15:40:28 -04:00
parent 71c7c264ac
commit 926b02ce65
4 changed files with 31 additions and 42 deletions

View File

@@ -47,14 +47,14 @@ public class Attribute {
}
public void vertexPointer( int size, int stride, FloatBuffer ptr ) {
GLES20.glVertexAttribPointer( location, size, GLES20.GL_FLOAT, false, stride * Float.SIZE / 8, ptr );
GLES20.glVertexAttribPointer( location, size, GLES20.GL_FLOAT, false, stride * 4, ptr );
}
public void vertexBuffer( int size, int stride, int offset) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
GLES20.glVertexAttribPointer(location, size, GLES20.GL_FLOAT, false, stride * Float.SIZE / 8, offset * Float.SIZE / 8);
GLES20.glVertexAttribPointer(location, size, GLES20.GL_FLOAT, false, stride * 4, offset * 4);
} else {
FroyoGLES20Fix.glVertexAttribPointer(location, size, GLES20.GL_FLOAT, false, stride * Float.SIZE / 8, offset * Float.SIZE / 8);
FroyoGLES20Fix.glVertexAttribPointer(location, size, GLES20.GL_FLOAT, false, stride * 4, offset * 4);
}
}
}

View File

@@ -44,14 +44,16 @@ public class Matrix {
} while (n > 0);
}
private static float[] identity = new float[]{
1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1
};
public static void setIdentity( float[] m ) {
for (int i=0 ; i < 16 ; i++) {
m[i] = 0f;
}
for (int i = 0; i < 16; i += 5) {
m[i] = 1f;
}
System.arraycopy(identity, 0, m, 0, identity.length);
}
public static void rotate( float[] m, float a ) {

View File

@@ -28,8 +28,6 @@ import java.util.Arrays;
public class Uniform {
private int location;
private float[] prevVal = new float[4];
public Uniform(int location) {
this.location = location;
@@ -56,16 +54,6 @@ public class Uniform {
}
public void value4f(float v1, float v2, float v3, float v4) {
if (v1 == prevVal[0] &&
v2 == prevVal[1] &&
v3 == prevVal[2] &&
v4 == prevVal[3])
return;
prevVal[0] = v1;
prevVal[1] = v2;
prevVal[2] = v3;
prevVal[3] = v4;
GLES20.glUniform4f(location, v1, v2, v3, v4);
}
@@ -74,10 +62,6 @@ public class Uniform {
}
public void valueM4(float[] value) {
if (Arrays.equals(prevVal, value))
return;
System.arraycopy(value, 0, prevVal, 0, 4);
GLES20.glUniformMatrix4fv(location, 1, false, value, 0);
}
}