OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef VRFrameData_h | 5 #ifndef VRFrameData_h |
6 #define VRFrameData_h | 6 #define VRFrameData_h |
7 | 7 |
8 #include "bindings/core/v8/ScriptWrappable.h" | 8 #include "bindings/core/v8/ScriptWrappable.h" |
9 #include "core/dom/DOMHighResTimeStamp.h" | |
10 #include "core/dom/DOMTypedArray.h" | 9 #include "core/dom/DOMTypedArray.h" |
11 #include "device/vr/vr_service.mojom-blink.h" | 10 #include "device/vr/vr_service.mojom-blink.h" |
12 #include "platform/heap/Handle.h" | 11 #include "platform/heap/Handle.h" |
13 #include "wtf/Forward.h" | 12 #include "wtf/Forward.h" |
14 | 13 |
15 namespace blink { | 14 namespace blink { |
16 | 15 |
17 class VREyeParameters; | 16 class VREyeParameters; |
18 class VRPose; | 17 class VRPose; |
19 | 18 |
20 class VRFrameData final : public GarbageCollected<VRFrameData>, | 19 class VRFrameData final : public GarbageCollected<VRFrameData>, |
21 public ScriptWrappable { | 20 public ScriptWrappable { |
22 DEFINE_WRAPPERTYPEINFO(); | 21 DEFINE_WRAPPERTYPEINFO(); |
23 | 22 |
24 public: | 23 public: |
25 static VRFrameData* create() { return new VRFrameData(); } | 24 static VRFrameData* create() { return new VRFrameData(); } |
26 | 25 |
27 VRFrameData(); | 26 VRFrameData(); |
28 | 27 |
29 DOMHighResTimeStamp timestamp() const { return m_timestamp; } | |
30 DOMFloat32Array* leftProjectionMatrix() const { | 28 DOMFloat32Array* leftProjectionMatrix() const { |
31 return m_leftProjectionMatrix; | 29 return m_leftProjectionMatrix; |
32 } | 30 } |
33 DOMFloat32Array* leftViewMatrix() const { return m_leftViewMatrix; } | 31 DOMFloat32Array* leftViewMatrix() const { return m_leftViewMatrix; } |
34 DOMFloat32Array* rightProjectionMatrix() const { | 32 DOMFloat32Array* rightProjectionMatrix() const { |
35 return m_rightProjectionMatrix; | 33 return m_rightProjectionMatrix; |
36 } | 34 } |
37 DOMFloat32Array* rightViewMatrix() const { return m_rightViewMatrix; } | 35 DOMFloat32Array* rightViewMatrix() const { return m_rightViewMatrix; } |
38 VRPose* pose() const { return m_pose; } | 36 VRPose* pose() const { return m_pose; } |
39 | 37 |
40 // Populate a the VRFrameData with a pose and the necessary eye parameters. | 38 // Populate a the VRFrameData with a pose and the necessary eye parameters. |
41 // TODO(bajones): The full frame data should be provided by the VRService, | 39 // TODO(bajones): The full frame data should be provided by the VRService, |
42 // not computed here. | 40 // not computed here. |
43 bool update(const device::mojom::blink::VRPosePtr&, | 41 bool update(const device::mojom::blink::VRPosePtr&, |
44 VREyeParameters* leftEye, | 42 VREyeParameters* leftEye, |
45 VREyeParameters* rightEye, | 43 VREyeParameters* rightEye, |
46 float depthNear, | 44 float depthNear, |
47 float depthFar); | 45 float depthFar); |
48 | 46 |
49 DECLARE_VIRTUAL_TRACE() | 47 DECLARE_VIRTUAL_TRACE() |
50 | 48 |
51 private: | 49 private: |
52 DOMHighResTimeStamp m_timestamp; | |
53 Member<DOMFloat32Array> m_leftProjectionMatrix; | 50 Member<DOMFloat32Array> m_leftProjectionMatrix; |
54 Member<DOMFloat32Array> m_leftViewMatrix; | 51 Member<DOMFloat32Array> m_leftViewMatrix; |
55 Member<DOMFloat32Array> m_rightProjectionMatrix; | 52 Member<DOMFloat32Array> m_rightProjectionMatrix; |
56 Member<DOMFloat32Array> m_rightViewMatrix; | 53 Member<DOMFloat32Array> m_rightViewMatrix; |
57 Member<VRPose> m_pose; | 54 Member<VRPose> m_pose; |
58 }; | 55 }; |
59 | 56 |
60 } // namespace blink | 57 } // namespace blink |
61 | 58 |
62 #endif // VRStageParameters_h | 59 #endif // VRStageParameters_h |
OLD | NEW |