diff options
Diffstat (limited to 'libs/ui/FramebufferNativeWindow.cpp')
-rw-r--r-- | libs/ui/FramebufferNativeWindow.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/libs/ui/FramebufferNativeWindow.cpp b/libs/ui/FramebufferNativeWindow.cpp index 83b333f..8c8fd6b 100644 --- a/libs/ui/FramebufferNativeWindow.cpp +++ b/libs/ui/FramebufferNativeWindow.cpp @@ -76,7 +76,7 @@ private: */ FramebufferNativeWindow::FramebufferNativeWindow() - : BASE(), fbDev(0), grDev(0) + : BASE(), fbDev(0), grDev(0), mUpdateOnDemand(false) { hw_module_t const* module; if (hw_get_module(GRALLOC_HARDWARE_MODULE_ID, &module) == 0) { @@ -86,6 +86,8 @@ FramebufferNativeWindow::FramebufferNativeWindow() int err; + mUpdateOnDemand = (fbDev->setUpdateRect != 0); + // initialize the buffer FIFO mNumBuffers = 2; mNumFreeBuffers = 2; @@ -131,6 +133,14 @@ FramebufferNativeWindow::~FramebufferNativeWindow() { framebuffer_close(fbDev); } +status_t FramebufferNativeWindow::setUpdateRectangle(const Rect& r) +{ + if (!mUpdateOnDemand) { + return INVALID_OPERATION; + } + return fbDev->setUpdateRect(fbDev, r.left, r.top, r.width(), r.height()); +} + int FramebufferNativeWindow::setSwapInterval( android_native_window_t* window, int interval) { |