Closed Bug 776310 Opened 12 years ago Closed 12 years ago

Tune flinging friction and logic in AsyncPanZoomController

Categories

(Core :: Graphics: Layers, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla17

People

(Reporter: drs, Assigned: drs)

References

Details

Attachments

(1 file)

Flings run very slow in no-opt/debug builds and sometimes have logical errors like applying too much resistance during very large time steps that the fling actually goes backwards.

In addition, the frictions values are very far off from being optimal. Now that gralloc has landed on B2G, I can properly tune it. This will probably need additional work in the future.
Blocks: 745136
Summary: Tune flinging in Gecko's AsyncPanZoomController → Tune flinging friction and logic in AsyncPanZoomController
Attached patch Proposed patchSplinter Review
Assignee: nobody → bugzilla
Attachment #644714 - Flags: review?(jones.chris.g)
Comment on attachment 644714 [details] [diff] [review]
Proposed patch

>diff --git a/gfx/layers/ipc/AsyncPanZoomController.cpp b/gfx/layers/ipc/AsyncPanZoomController.cpp

>-  if (!mX.FlingApplyFrictionOrCancel(aDelta) && !mY.FlingApplyFrictionOrCancel(aDelta)) {
>+  bool shouldContinueFlingX = mX.FlingApplyFrictionOrCancel(aDelta),
>+       shouldContinueFlingY = mY.FlingApplyFrictionOrCancel(aDelta);
>+  // If we shouldn't continue the fling, let's just stop and repaint.
>+  if (!shouldContinueFlingX && !shouldContinueFlingY) {

Let's do

  if (mX.Blah() || mY.Blah()) {
Attachment #644714 - Flags: review?(jones.chris.g) → review+
I believe it may have been getting short-circuited.
https://hg.mozilla.org/mozilla-central/rev/8aa24637d3fa
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla17
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: