Chromium Code Reviews| Index: chrome/browser/android/vr_shell/vr_util.h |
| diff --git a/chrome/browser/android/vr_shell/vr_util.h b/chrome/browser/android/vr_shell/vr_util.h |
| index 53fa9de9c10c306be759079f451d01870e27200f..1f7ad7406c87aefe4b35837071a602465b948b3d 100644 |
| --- a/chrome/browser/android/vr_shell/vr_util.h |
| +++ b/chrome/browser/android/vr_shell/vr_util.h |
| @@ -12,12 +12,54 @@ |
| namespace vr_shell { |
| +#define makeRectangularTextureBuffer(left, right, bottom, top) \ |
|
bshe
2016/09/09 14:42:10
see here: https://google.github.io/styleguide/cppg
mthiesse
2016/09/09 15:16:38
Done.
|
| + { \ |
| + left, bottom, left, top, right, bottom, left, top, right, top, right, \ |
| + bottom \ |
| + } |
| + |
| +// 2D rectangles. Unlike gvr::Rectf and gvr::Recti, these have width and height |
| +// rather than right and top. |
| +typedef struct Recti { |
| + int x; |
| + int y; |
| + int width; |
| + int height; |
| +} Recti; |
| + |
| +typedef struct Rectf { |
| + float x; |
| + float y; |
| + float width; |
| + float height; |
| +} Rectf; |
| + |
| +void SetIdentityM(gvr::Mat4f& mat); |
| + |
| +void TranslateM(gvr::Mat4f& tmat, gvr::Mat4f& mat, float x, float y, float z); |
| +void TranslateMRight(gvr::Mat4f& tmat, |
| + gvr::Mat4f& mat, |
| + float x, |
| + float y, |
| + float z); |
| + |
| +void ScaleM(gvr::Mat4f& tmat, const gvr::Mat4f& mat, float x, float y, float z); |
| +void ScaleMRight(gvr::Mat4f& tmat, const gvr::Mat4f& mat, |
| + float x, float y, float z); |
| + |
| std::array<float, 16> MatrixToGLArray(const gvr::Mat4f& matrix); |
| // Util functions that are copied from the treasure_hunt NDK demo in |
| // third_party/gvr-andoir-sdk/ folder. |
| gvr::Mat4f MatrixTranspose(const gvr::Mat4f& mat); |
| +std::array<float, 4> MatrixVectorMul(const gvr::Mat4f& matrix, |
| + const std::array<float, 4>& vec); |
| +std::array<float, 3> MatrixVectorMul(const gvr::Mat4f& matrix, |
| + const std::array<float, 3>& vec); |
| +gvr::Vec3f MatrixVectorMul(const gvr::Mat4f& m, const gvr::Vec3f& v); |
| +gvr::Vec3f MatrixVectorRotate(const gvr::Mat4f& m, const gvr::Vec3f& v); |
| gvr::Mat4f MatrixMul(const gvr::Mat4f& matrix1, const gvr::Mat4f& matrix2); |
| +gvr::Mat4f InvertM(const gvr::Mat4f& mat); |
| gvr::Mat4f PerspectiveMatrixFromView(const gvr::Rectf& fov, |
| float z_near, |
| float z_far); |
| @@ -25,6 +67,9 @@ gvr::Rectf ModulateRect(const gvr::Rectf& rect, float width, float height); |
| gvr::Recti CalculatePixelSpaceRect(const gvr::Sizei& texture_size, |
| const gvr::Rectf& texture_rect); |
| +gvr::Vec3f getForwardVector(const gvr::Mat4f& matrix); |
| +gvr::Vec3f getTranslation(const gvr::Mat4f& matrix); |
| + |
| // Compile a shader. |
| GLuint CompileShader(GLenum shader_type, |
| const GLchar* shader_source, |
| @@ -37,6 +82,20 @@ GLuint CreateAndLinkProgram(GLuint vertex_shader_handle, |
| const GLchar** attributes, |
| std::string& error); |
| +gvr::Quatf QuatMultiply(const gvr::Quatf& a, const gvr::Quatf& b); |
| + |
| +gvr::Mat4f QuatToMatrix(const gvr::Quatf& quat); |
| + |
| +float VectorLength(const gvr::Vec3f& vec); |
| + |
| +void NormalizeVector(gvr::Vec3f& vec); |
| + |
| +float VectorDot(const gvr::Vec3f& a, const gvr::Vec3f& b); |
| + |
| +void NormalizeQuat(gvr::Quatf& quat); |
| + |
| +gvr::Quatf QuatFromAxisAngle(float x, float y, float z, float angle); |
| + |
| } // namespace vr_shell |
| #endif // CHROME_BROWSER_ANDROID_VR_SHELL_VR_UTIL_H_ |