Index: trunk/src/VBox/Main/idl/VirtualBox.xidl
===================================================================
--- trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 51607)
+++ trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 51610)
@@ -15234,24 +15234,4 @@
   </enum>
 
-  <enum
-    name="FramebufferUpdateMode"
-    uuid="1268d8ab-dd2f-443c-bc56-d93d3ced5cde"
-    >
-    <desc>
-      How a framebuffer is notified about screen updates.
-    </desc>
-
-    <const name="NotifyUpdate"       value="0">
-      <desc>
-        IFramebuffer::NotifyUpdate is called.
-      </desc>
-    </const>
-    <const name="NotifyUpdateImage"  value="1">
-      <desc>
-        IFramebuffer::NotifyUpdateImage is called.
-      </desc>
-    </const>
-  </enum>
-
   <interface
     name="IDisplaySourceBitmap" extends="$unknown" wsmap="suppress"
@@ -15273,5 +15253,5 @@
   <interface
     name="IFramebuffer" extends="$unknown"
-    uuid="c42d2714-6263-473f-a6c4-3d3b38983e74"
+    uuid="929e4228-f7cf-436d-99a0-dcf6596473b2"
     wsmap="managed"
     >
@@ -15354,19 +15334,4 @@
       <param name="width" type="unsigned long" dir="in"/>
       <param name="height" type="unsigned long" dir="in"/>
-    </method>
-
-    <method name="notifyUpdateImage">
-      <desc>
-        Informs about an update and provides 32bpp bitmap.
-      </desc>
-      <param name="x" type="unsigned long" dir="in"/>
-      <param name="y" type="unsigned long" dir="in"/>
-      <param name="width" type="unsigned long" dir="in"/>
-      <param name="height" type="unsigned long" dir="in"/>
-      <param name="image" type="octet" dir="in" safearray="yes">
-        <desc>
-          Array with 32BPP image data.
-        </desc>
-      </param>
     </method>
 
@@ -15552,5 +15517,5 @@
   <interface
     name="IDisplay" extends="$unknown"
-    uuid="a2bb2e85-f797-4c5e-884c-2efd897af4f4"
+    uuid="efd0567f-8697-4b4c-965a-7f3672d1909e"
     wsmap="managed"
     >
@@ -15887,8 +15852,4 @@
       <param name="displaySourceBitmap" type="IDisplaySourceBitmap" dir="out"/>
     </method>
-
-    <attribute name="framebufferUpdateMode" type="FramebufferUpdateMode">
-      <desc>How the Framebuffer is informed aboput screen updates.</desc>
-    </attribute>
 
   </interface>
Index: trunk/src/VBox/Main/include/DisplayImpl.h
===================================================================
--- trunk/src/VBox/Main/include/DisplayImpl.h	(revision 51607)
+++ trunk/src/VBox/Main/include/DisplayImpl.h	(revision 51610)
@@ -47,11 +47,4 @@
     bool fDisabled;
 
-    struct
-    {
-        ComPtr<IDisplaySourceBitmap> pSourceBitmap;
-        uint8_t *pu8Address;
-        uint32_t cbLine;
-    } updateImage;
-
     LONG xOrigin;
     LONG yOrigin;
@@ -190,8 +183,4 @@
     // IEventListener methods
     STDMETHOD(HandleEvent)(IEvent * aEvent);
-
-    // IDisplay properties
-    STDMETHOD(COMGETTER(FramebufferUpdateMode))(FramebufferUpdateMode_T *aFramebufferUpdateMode);
-    STDMETHOD(COMSETTER(FramebufferUpdateMode))(FramebufferUpdateMode_T aFramebufferUpdateMode);
 
     // IDisplay methods
@@ -304,6 +293,4 @@
     bool volatile fVGAResizing;
 
-    FramebufferUpdateMode_T mFramebufferUpdateMode;
-
     VBVAMEMORY *mpVbvaMemory;
     bool        mfVideoAccelEnabled;
Index: trunk/src/VBox/Main/src-client/DisplayImpl.cpp
===================================================================
--- trunk/src/VBox/Main/src-client/DisplayImpl.cpp	(revision 51607)
+++ trunk/src/VBox/Main/src-client/DisplayImpl.cpp	(revision 51610)
@@ -586,6 +586,4 @@
     fVGAResizing = false;
 
-    mFramebufferUpdateMode = FramebufferUpdateMode_NotifyUpdate;
-
     ULONG ul;
     mParent->machine()->COMGETTER(MonitorCount)(&ul);
@@ -601,7 +599,4 @@
         /* All secondary monitors are disabled at startup. */
         maFramebuffers[ul].fDisabled = ul > 0;
-
-        maFramebuffers[ul].updateImage.pu8Address = NULL;
-        maFramebuffers[ul].updateImage.cbLine = 0;
 
         maFramebuffers[ul].xOrigin = 0;
@@ -665,7 +660,4 @@
     {
         maFramebuffers[uScreenId].pSourceBitmap.setNull();
-        maFramebuffers[uScreenId].updateImage.pSourceBitmap.setNull();
-        maFramebuffers[uScreenId].updateImage.pu8Address = NULL;
-        maFramebuffers[uScreenId].updateImage.cbLine = 0;
         maFramebuffers[uScreenId].pFramebuffer.setNull();
     }
@@ -904,6 +896,4 @@
         return VINF_SUCCESS;
     }
-
-    COMSETTER(FramebufferUpdateMode)(FramebufferUpdateMode_NotifyUpdate);
 
     if (uScreenId == VBOX_VIDEO_PRIMARY_SCREEN)
@@ -1134,37 +1124,5 @@
     {
         if (w != 0 && h != 0)
-        {
-            if (RT_LIKELY(mFramebufferUpdateMode == FramebufferUpdateMode_NotifyUpdate))
-            {
-                pFramebuffer->NotifyUpdate(x, y, w, h);
-            }
-            else if (mFramebufferUpdateMode == FramebufferUpdateMode_NotifyUpdateImage)
-            {
-                AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
-
-                DISPLAYFBINFO *pFBInfo = &maFramebuffers[uScreenId];
-
-                if (!pFBInfo->updateImage.pSourceBitmap.isNull())
-                {
-                    Assert(pFBInfo->updateImage.pu8Address);
-
-                    size_t cbData = w * h * 4;
-                    com::SafeArray<BYTE> image(cbData);
-
-                    uint8_t *pu8Dst = image.raw();
-                    const uint8_t *pu8Src = pFBInfo->updateImage.pu8Address + pFBInfo->updateImage.cbLine * y + x * 4;
-
-                    int i;
-                    for (i = y; i < y + h; ++i)
-                    {
-                        memcpy(pu8Dst, pu8Src, w * 4);
-                        pu8Dst += w * 4;
-                        pu8Src += pFBInfo->updateImage.cbLine;
-                    }
-
-                    pFramebuffer->NotifyUpdateImage(x, y, w, h, ComSafeArrayAsInParam(image));
-                }
-            }
-        }
+            pFramebuffer->NotifyUpdate(x, y, w, h);
     }
 
@@ -2224,85 +2182,4 @@
         }
     }
-}
-
-
-/*
- * IDisplay properties
- */
-
-STDMETHODIMP Display::COMGETTER(FramebufferUpdateMode)(FramebufferUpdateMode_T *aFramebufferUpdateMode)
-{
-    LogRelFlowFunc(("\n"));
-
-    CheckComArgPointerValid(aFramebufferUpdateMode);
-
-    AutoCaller autoCaller(this);
-    if (FAILED(autoCaller.rc())) return autoCaller.rc();
-
-    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
-
-    *aFramebufferUpdateMode = mFramebufferUpdateMode;
-
-    return S_OK;
-}
-
-STDMETHODIMP Display::COMSETTER(FramebufferUpdateMode)(FramebufferUpdateMode_T aFramebufferUpdateMode)
-{
-    LogRelFlowFunc(("aFramebufferUpdateMode %d\n", aFramebufferUpdateMode));
-
-    AutoCaller autoCaller(this);
-    if (FAILED(autoCaller.rc())) return autoCaller.rc();
-
-    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
-
-    /* Reset the update mode. */
-    unsigned uScreenId;
-    for (uScreenId = 0; uScreenId < mcMonitors; ++uScreenId)
-    {
-        DISPLAYFBINFO *pFBInfo = &maFramebuffers[uScreenId];
-        pFBInfo->updateImage.pu8Address = NULL;
-        pFBInfo->updateImage.cbLine = 0;
-        pFBInfo->updateImage.pSourceBitmap.setNull();
-    }
-
-    if (aFramebufferUpdateMode == FramebufferUpdateMode_NotifyUpdateImage)
-    {
-        /* Query source bitmaps. */
-        for (uScreenId = 0; uScreenId < mcMonitors; ++uScreenId)
-        {
-            DISPLAYFBINFO *pFBInfo = &maFramebuffers[uScreenId];
-            HRESULT hr = querySourceBitmap(uScreenId, pFBInfo->updateImage.pSourceBitmap.asOutParam());
-            if (SUCCEEDED(hr))
-            {
-                BYTE *pAddress = NULL;
-                ULONG ulWidth = 0;
-                ULONG ulHeight = 0;
-                ULONG ulBitsPerPixel = 0;
-                ULONG ulBytesPerLine = 0;
-                ULONG ulPixelFormat = 0;
-
-                hr = pFBInfo->updateImage.pSourceBitmap->QueryBitmapInfo(&pAddress,
-                                                                         &ulWidth,
-                                                                         &ulHeight,
-                                                                         &ulBitsPerPixel,
-                                                                         &ulBytesPerLine,
-                                                                         &ulPixelFormat);
-                if (SUCCEEDED(hr))
-                {
-                    pFBInfo->updateImage.pu8Address = pAddress;
-                    pFBInfo->updateImage.cbLine = ulBytesPerLine;
-                }
-            }
-
-            if (FAILED(hr))
-            {
-                pFBInfo->updateImage.pSourceBitmap.setNull();
-            }
-        }
-    }
-
-    mFramebufferUpdateMode = aFramebufferUpdateMode;
-
-    return S_OK;
 }
 
