Bug 1400387 - Change 32-bit VR Frame ID's to 64-bit draft
authorKearwood "Kip" Gilbert <kgilbert@mozilla.com>
Fri, 15 Sep 2017 13:38:47 -0700
changeset 670127 2ba6c92e8df7cbb9968f2f58b877da5a975a3723
parent 670035 33b7b8e81b4befcba503c0e48cd5370aeb715085
child 733139 65bef46f26cf7bb95b8ff48a1d084d2f1b955221
push id81524
push userkgilbert@mozilla.com
push dateMon, 25 Sep 2017 21:55:32 +0000
bugs1400387
milestone58.0a1
Bug 1400387 - Change 32-bit VR Frame ID's to 64-bit MozReview-Commit-ID: BSvZMa0XVSO
dom/vr/VRDisplay.cpp
dom/vr/VRDisplay.h
gfx/vr/VRDisplayClient.h
gfx/vr/gfxVR.h
--- a/dom/vr/VRDisplay.cpp
+++ b/dom/vr/VRDisplay.cpp
@@ -972,17 +972,17 @@ VRSubmitFrameResult::Constructor(const G
 JSObject*
 VRSubmitFrameResult::WrapObject(JSContext* aCx,
                                 JS::Handle<JSObject*> aGivenProto)
 {
   return VRSubmitFrameResultBinding::Wrap(aCx, this, aGivenProto);
 }
 
 void
-VRSubmitFrameResult::Update(uint32_t aFrameNum, const nsACString& aBase64Image)
+VRSubmitFrameResult::Update(uint64_t aFrameNum, const nsACString& aBase64Image)
 {
   mFrameNum = aFrameNum;
   mBase64Image = NS_ConvertASCIItoUTF16(aBase64Image);
 }
 
 double
 VRSubmitFrameResult::FrameNum() const
 {
--- a/dom/vr/VRDisplay.h
+++ b/dom/vr/VRDisplay.h
@@ -98,17 +98,17 @@ protected:
 
 class VRPose final : public Pose
 {
 
 public:
   VRPose(nsISupports* aParent, const gfx::VRHMDSensorState& aState);
   explicit VRPose(nsISupports* aParent);
 
-  uint32_t FrameID() const { return mFrameId; }
+  uint64_t FrameID() const { return mFrameId; }
 
   virtual void GetPosition(JSContext* aCx,
                            JS::MutableHandle<JSObject*> aRetval,
                            ErrorResult& aRv) override;
   virtual void GetLinearVelocity(JSContext* aCx,
                                  JS::MutableHandle<JSObject*> aRetval,
                                  ErrorResult& aRv) override;
   virtual void GetLinearAcceleration(JSContext* aCx,
@@ -124,17 +124,17 @@ public:
                                       JS::MutableHandle<JSObject*> aRetval,
                                       ErrorResult& aRv) override;
 
   virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
 
 protected:
   ~VRPose();
 
-  uint32_t mFrameId;
+  uint64_t mFrameId;
   gfx::VRHMDSensorState mVRState;
 };
 
 struct VRFrameInfo
 {
   VRFrameInfo();
 
   void Update(const gfx::VRDisplayInfo& aInfo,
@@ -276,31 +276,31 @@ class VRSubmitFrameResult final : public
 public:
   NS_INLINE_DECL_CYCLE_COLLECTING_NATIVE_REFCOUNTING(VRSubmitFrameResult)
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_NATIVE_CLASS(VRSubmitFrameResult)
 
   explicit VRSubmitFrameResult(nsISupports* aParent);
   static already_AddRefed<VRSubmitFrameResult> Constructor(const GlobalObject& aGlobal,
                                                            ErrorResult& aRv);
 
-  void Update(uint32_t aFrameNum, const nsACString& aBase64Image);
+  void Update(uint64_t aFrameNum, const nsACString& aBase64Image);
   // WebIDL Members
   double FrameNum() const;
   void GetBase64Image(nsAString& aImage) const;
 
   // WebIDL Boilerplate
   nsISupports* GetParentObject() const { return mParent; }
   virtual JSObject* WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
 
 protected:
   ~VRSubmitFrameResult();
 
   nsCOMPtr<nsISupports> mParent;
   nsString mBase64Image;
-  uint32_t mFrameNum;
+  uint64_t mFrameNum;
 };
 
 class VRDisplay final : public DOMEventTargetHelper
                       , public nsIObserver
 {
 public:
   NS_DECL_ISUPPORTS_INHERITED
   NS_DECL_NSIOBSERVER
--- a/gfx/vr/VRDisplayClient.h
+++ b/gfx/vr/VRDisplayClient.h
@@ -49,17 +49,17 @@ protected:
   void FireEvents();
 
   VRDisplayInfo mDisplayInfo;
 
   bool bLastEventWasMounted;
   bool bLastEventWasPresenting;
 
   int mPresentationCount;
-  uint32_t mLastEventFrameId;
+  uint64_t mLastEventFrameId;
 private:
   VRSubmitFrameResultInfo mSubmitFrameResult;
 };
 
 } // namespace gfx
 } // namespace mozilla
 
 #endif /* GFX_VR_DISPLAY_CLIENT_H */
--- a/gfx/vr/gfxVR.h
+++ b/gfx/vr/gfxVR.h
@@ -132,17 +132,17 @@ struct VRFieldOfView {
   double leftDegrees;
 };
 
 struct VRHMDSensorState {
   VRHMDSensorState()
   {
     Clear();
   }
-  int32_t inputFrameID;
+  int64_t inputFrameID;
   double timestamp;
   VRDisplayCapabilityFlags flags;
 
   // These members will only change with inputFrameID:
   float orientation[4];
   float position[3];
   float angularVelocity[3];
   float angularAcceleration[3];
@@ -194,17 +194,17 @@ struct VRDisplayInfo
   const Point3D& GetEyeTranslation(uint32_t whichEye) const { return mEyeTranslation[whichEye]; }
   const VRFieldOfView& GetEyeFOV(uint32_t whichEye) const { return mEyeFOV[whichEye]; }
   bool GetIsConnected() const { return mIsConnected; }
   bool GetIsMounted() const { return mIsMounted; }
   uint32_t GetPresentingGroups() const { return mPresentingGroups; }
   uint32_t GetGroupMask() const { return mGroupMask; }
   const Size& GetStageSize() const { return mStageSize; }
   const Matrix4x4& GetSittingToStandingTransform() const { return mSittingToStandingTransform; }
-  uint32_t GetFrameId() const { return mFrameId; }
+  uint64_t GetFrameId() const { return mFrameId; }
 
   enum Eye {
     Eye_Left,
     Eye_Right,
     NumEyes
   };
 
   uint32_t mDisplayID;
@@ -215,17 +215,17 @@ struct VRDisplayInfo
   Point3D mEyeTranslation[VRDisplayInfo::NumEyes];
   IntSize mEyeResolution;
   bool mIsConnected;
   bool mIsMounted;
   uint32_t mPresentingGroups;
   uint32_t mGroupMask;
   Size mStageSize;
   Matrix4x4 mSittingToStandingTransform;
-  uint32_t mFrameId;
+  uint64_t mFrameId;
   VRHMDSensorState mLastSensorState[kVRMaxLatencyFrames];
 
   bool operator==(const VRDisplayInfo& other) const {
     for (size_t i = 0; i < kVRMaxLatencyFrames; i++) {
       if (mLastSensorState[i] != other.mLastSensorState[i]) {
         return false;
       }
     }
@@ -262,17 +262,17 @@ struct VRSubmitFrameResultInfo
   VRSubmitFrameResultInfo()
    : mFrameNum(0),
      mWidth(0),
      mHeight(0)
   {}
 
   nsCString mBase64Image;
   SurfaceFormat mFormat;
-  uint32_t mFrameNum;
+  uint64_t mFrameNum;
   uint32_t mWidth;
   uint32_t mHeight;
 };
 
 struct VRControllerInfo
 {
   VRDeviceType GetType() const { return mType; }
   uint32_t GetControllerID() const { return mControllerID; }