Fix fromAndroidGraphicsMatrix to use column-major order for output.
BUG=webrtc:7760 Review-Url: https://codereview.webrtc.org/2976423002 Cr-Commit-Position: refs/heads/master@{#19089}
This commit is contained in:
@ -52,15 +52,20 @@ Matrix Matrix::fromAndroidGraphicsMatrix(JNIEnv* jni, jobject j_matrix) {
|
||||
// [x2 y2 0 w2]
|
||||
// [ 0 0 1 0]
|
||||
// [x3 y3 0 w3]
|
||||
// Since it is stored in column-major order, it looks like this:
|
||||
// [x1 x2 0 x3
|
||||
// y1 y2 0 y3
|
||||
// 0 0 1 0
|
||||
// w1 w2 0 w3]
|
||||
matrix.elem_[0 * 4 + 0] = array_3x3_ptr[0 * 3 + 0];
|
||||
matrix.elem_[0 * 4 + 1] = array_3x3_ptr[0 * 3 + 1];
|
||||
matrix.elem_[0 * 4 + 3] = array_3x3_ptr[0 * 3 + 2];
|
||||
matrix.elem_[1 * 4 + 0] = array_3x3_ptr[1 * 3 + 0];
|
||||
matrix.elem_[0 * 4 + 1] = array_3x3_ptr[1 * 3 + 0];
|
||||
matrix.elem_[0 * 4 + 3] = array_3x3_ptr[2 * 3 + 0];
|
||||
matrix.elem_[1 * 4 + 0] = array_3x3_ptr[0 * 3 + 1];
|
||||
matrix.elem_[1 * 4 + 1] = array_3x3_ptr[1 * 3 + 1];
|
||||
matrix.elem_[1 * 4 + 3] = array_3x3_ptr[1 * 3 + 2];
|
||||
matrix.elem_[1 * 4 + 3] = array_3x3_ptr[2 * 3 + 1];
|
||||
matrix.elem_[2 * 4 + 2] = 1; // Z-scale should be 1.
|
||||
matrix.elem_[3 * 4 + 0] = array_3x3_ptr[2 * 3 + 0];
|
||||
matrix.elem_[3 * 4 + 1] = array_3x3_ptr[2 * 3 + 1];
|
||||
matrix.elem_[3 * 4 + 0] = array_3x3_ptr[0 * 3 + 2];
|
||||
matrix.elem_[3 * 4 + 1] = array_3x3_ptr[1 * 3 + 2];
|
||||
matrix.elem_[3 * 4 + 3] = array_3x3_ptr[2 * 3 + 2];
|
||||
return matrix;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user