Limit composition to every 15 ms, may want to try increasing this value

This commit is contained in:
Benoit Girard 2012-02-06 13:51:33 -05:00
Родитель 658ac2bd4e
Коммит 92886562bf
2 изменённых файлов: 9 добавлений и 2 удалений

Просмотреть файл

@ -132,9 +132,15 @@ CompositorParent::ScheduleComposition()
return;
}
TimeDuration delta = mozilla::TimeStamp::Now() - mLastCompose;
printf_stderr("Schedule composition\n");
mCurrentCompositeTask = NewRunnableMethod(this, &CompositorParent::Composite);
MessageLoop::current()->PostTask(FROM_HERE, mCurrentCompositeTask);
if (delta.ToMilliseconds() < 15) {
MessageLoop::current()->PostDelayedTask(FROM_HERE, mCurrentCompositeTask, 15 - delta.ToMilliseconds());
} else {
MessageLoop::current()->PostTask(FROM_HERE, mCurrentCompositeTask);
}
// Test code for async scrolling.
#ifdef OMTC_TEST_ASYNC_SCROLLING
@ -177,8 +183,8 @@ CompositorParent::Composite()
Layer* root = mLayerManager->GetRoot();
root->AsShadowLayer()->SetShadowTransform(worldTransform);
mLayerManager->EndEmptyTransaction();
mLastCompose = mozilla::TimeStamp::Now();
}
// Go down shadow layer tree, setting properties to match their non-shadow

Просмотреть файл

@ -131,6 +131,7 @@ private:
nsRefPtr<LayerManager> mLayerManager;
nsIWidget* mWidget;
CancelableTask *mCurrentCompositeTask;
TimeStamp mLastCompose;
bool mPaused;
float mXScale;