| Index: remoting/client/gl_math.h
|
| diff --git a/remoting/client/gl_math.h b/remoting/client/gl_math.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3ea6731f82db464c7334338ca036d8a7f4b6acd0
|
| --- /dev/null
|
| +++ b/remoting/client/gl_math.h
|
| @@ -0,0 +1,53 @@
|
| +// Copyright 2016 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef REMOTING_CLIENT_OPENGL_GL_MATH_H_
|
| +#define REMOTING_CLIENT_OPENGL_GL_MATH_H_
|
| +
|
| +#include <array>
|
| +#include <string>
|
| +
|
| +#include "base/macros.h"
|
| +
|
| +namespace remoting {
|
| +
|
| +// See GlCanvas::SetNormalizedTransformation for definition of the
|
| +// transformation matrix.
|
| +//
|
| +// Converts a pixel based transformation matrix to a texture coordinates based
|
| +// transformation matrix.
|
| +// 3 by 3 transformation matrix, [ m0, m1, m2, m3, m4, m5, m6, m7, m8 ].
|
| +//
|
| +// | m0, m1, m2, | | x |
|
| +// | m3, m4, m5, | * | y |
|
| +// | m6, m7, m8 | | 1 |
|
| +void NormalizeTransformationMatrix(int view_width,
|
| + int view_height,
|
| + int canvas_width,
|
| + int canvas_height,
|
| + std::array<float, 9>* matrix);
|
| +
|
| +// Given left, top, width, height of a rectangle, fills |positions| with
|
| +// coordinates of four vertices of the rectangle.
|
| +// positions: [ x_upperleft, y_upperleft, x_lowerleft, y_lowerleft,
|
| +// x_upperright, y_upperright, x_lowerright, y_lowerright ]
|
| +void FillRectangleVertexPositions(float left,
|
| + float top,
|
| + float width,
|
| + float height,
|
| + std::array<float, 8>* positions);
|
| +
|
| +// Returns the string representation of the matrix for debugging.
|
| +//
|
| +// For example:
|
| +// [
|
| +// 1, 0, 0,
|
| +// 0, 1, 0,
|
| +// 0, 0, 1,
|
| +// ]
|
| +std::string MatrixToString(const float* mat, int num_rows, int num_cols);
|
| +
|
| +} // namespace remoting
|
| +
|
| +#endif // REMOTING_CLIENT_OPENGL_GL_MATH_H_
|
|
|