//Z:\android\debug\frameworks\base\graphics\java
public void setupProjectionNormalized(int w, int h,float bottomOffset,float topOffset) {
// range -1,1 in the narrow axis at z = 0.
Matrix4f m1 = new Matrix4f();
Matrix4f m2 = new Matrix4f();
if(w > h) {
float aspect = ((float)w) / h;
m1.loadFrustum(-aspect,aspect, -1 - bottomOffset,1 - topOffset, 1,100);
} else {
float aspect = ((float)h) / w;
m1.loadFrustum(-1,1, - aspect - bottomOffset ,aspect - topOffset, 1,100);
}
m2.loadRotate(180, 0, 1, 0);
m1.loadMultiply(m1, m2);
m2.loadScale(-2, 2, 1);
m1.loadMultiply(m1, m2);
m2.loadTranslate(0, 0, 2);
m1.loadMultiply(m1, m2);
mProjection = m1;
mAlloc.subData1D(PROJECTION_OFFSET, 16, mProjection.mMat);
}