am 39a5ba90: Merge change 25629 into eclair

Merge commit '39a5ba90a4939cfdd23ecd10f73a77a75679b13e' into eclair-plus-aosp

* commit '39a5ba90a4939cfdd23ecd10f73a77a75679b13e':
  Android side of the fix for [2121211] Sholes has stutter during animations
This commit is contained in:
Mathias Agopian
2009-09-17 17:44:12 -07:00
committed by Android Git Automerger
5 changed files with 17 additions and 3 deletions

View File

@@ -54,6 +54,7 @@ public:
bool isUpdateOnDemand() const { return mUpdateOnDemand; } bool isUpdateOnDemand() const { return mUpdateOnDemand; }
status_t setUpdateRectangle(const Rect& updateRect); status_t setUpdateRectangle(const Rect& updateRect);
status_t compositionComplete();
private: private:
friend class LightRefBase<FramebufferNativeWindow>; friend class LightRefBase<FramebufferNativeWindow>;

View File

@@ -297,9 +297,9 @@ uint32_t DisplayHardware::getPageFlipCount() const {
return mPageFlipCount; return mPageFlipCount;
} }
/* status_t DisplayHardware::compositionComplete() const {
* "Flip" the front and back buffers. return mNativeWindow->compositionComplete();
*/ }
void DisplayHardware::flip(const Region& dirty) const void DisplayHardware::flip(const Region& dirty) const
{ {

View File

@@ -80,6 +80,8 @@ public:
EGLDisplay getEGLDisplay() const { return mDisplay; } EGLDisplay getEGLDisplay() const { return mDisplay; }
overlay_control_device_t* getOverlayEngine() const { return mOverlayEngine; } overlay_control_device_t* getOverlayEngine() const { return mOverlayEngine; }
status_t compositionComplete() const;
Rect bounds() const { Rect bounds() const {
return Rect(mWidth, mHeight); return Rect(mWidth, mHeight);
} }

View File

@@ -495,6 +495,9 @@ bool SurfaceFlinger::threadLoop()
// repaint the framebuffer (if needed) // repaint the framebuffer (if needed)
handleRepaint(); handleRepaint();
// inform the h/w that we're done compositing
hw.compositionComplete();
// release the clients before we flip ('cause flip might block) // release the clients before we flip ('cause flip might block)
unlockClients(); unlockClients();

View File

@@ -158,6 +158,14 @@ status_t FramebufferNativeWindow::setUpdateRectangle(const Rect& r)
return fbDev->setUpdateRect(fbDev, r.left, r.top, r.width(), r.height()); return fbDev->setUpdateRect(fbDev, r.left, r.top, r.width(), r.height());
} }
status_t FramebufferNativeWindow::compositionComplete()
{
if (fbDev->compositionComplete) {
return fbDev->compositionComplete(fbDev);
}
return INVALID_OPERATION;
}
int FramebufferNativeWindow::setSwapInterval( int FramebufferNativeWindow::setSwapInterval(
android_native_window_t* window, int interval) android_native_window_t* window, int interval)
{ {