Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
/*
 *  Copyright 2015 The WebRTC project authors. All Rights Reserved.
 *
 *  Use of this source code is governed by a BSD-style license
 *  that can be found in the LICENSE file in the root of the source
 *  tree. An additional intellectual property rights grant can be found
 *  in the file PATENTS.  All contributing project authors may
 *  be found in the AUTHORS file in the root of the source tree.
 */

import android.opengl.Matrix;

public class Main {
    /**
     * Returns texture matrix that will have the effect of rotating the frame |rotationDegree|
     * clockwise when rendered.
     */
    public static float[] rotateTextureMatrix(float[] textureMatrix, float rotationDegree) {
        final float[] rotationMatrix = new float[16];
        Matrix.setRotateM(rotationMatrix, 0, rotationDegree, 0, 0, 1);
        adjustOrigin(rotationMatrix);
        return multiplyMatrices(textureMatrix, rotationMatrix);
    }

    /**
     * Move |matrix| transformation origin to (0.5, 0.5). This is the origin for texture coordinates
     * that are in the range 0 to 1.
     */
    private static void adjustOrigin(float[] matrix) {
        // Note that OpenGL is using column-major order.
        // Pre translate with -0.5 to move coordinates to range [-0.5, 0.5].
        matrix[12] -= 0.5f * (matrix[0] + matrix[4]);
        matrix[13] -= 0.5f * (matrix[1] + matrix[5]);
        // Post translate with 0.5 to move coordinates to range [0, 1].
        matrix[12] += 0.5f;
        matrix[13] += 0.5f;
    }

    /**
     * Returns new matrix with the result of a * b.
     */
    public static float[] multiplyMatrices(float[] a, float[] b) {
        final float[] resultMatrix = new float[16];
        Matrix.multiplyMM(resultMatrix, 0, a, 0, b, 0);
        return resultMatrix;
    }
}