VirtualBox

Changeset 34739 in vbox for trunk/src


Ignore:
Timestamp:
Dec 6, 2010 11:54:46 AM (14 years ago)
Author:
vboxsync
Message:

Main::Display: use screen id in VBVA mode.

Location:
trunk/src/VBox/Main
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/DisplayImpl.cpp

    r34377 r34739  
    873873 *  @thread EMT
    874874 */
    875 void Display::handleDisplayUpdate (int x, int y, int w, int h)
     875void Display::handleDisplayUpdateLegacy (int x, int y, int w, int h)
     876{
     877    unsigned uScreenId = mapCoordsToScreen(maFramebuffers, mcMonitors, &x, &y, &w, &h);
     878
     879#ifdef DEBUG_sunlover
     880    LogFlowFunc (("%d,%d %dx%d (checked)\n", x, y, w, h));
     881#endif /* DEBUG_sunlover */
     882
     883    handleDisplayUpdate (uScreenId, x, y, w, h);
     884}
     885
     886void Display::handleDisplayUpdate (unsigned uScreenId, int x, int y, int w, int h)
    876887{
    877888#ifdef VBOX_WITH_OLD_VBVA_LOCK
     
    883894
    884895#ifdef DEBUG_sunlover
    885     LogFlowFunc (("%d,%d %dx%d (%d,%d)\n",
    886                   x, y, w, h, mpDrv->IConnector.cx, mpDrv->IConnector.cy));
    887 #endif /* DEBUG_sunlover */
    888 
    889     unsigned uScreenId = mapCoordsToScreen(maFramebuffers, mcMonitors, &x, &y, &w, &h);
    890 
    891 #ifdef DEBUG_sunlover
    892     LogFlowFunc (("%d,%d %dx%d (checked)\n", x, y, w, h));
     896    LogFlowFunc (("[%d] %d,%d %dx%d (%d,%d)\n",
     897                  uScreenId, x, y, w, h, mpDrv->IConnector.cx, mpDrv->IConnector.cy));
    893898#endif /* DEBUG_sunlover */
    894899
     
    11431148        //@todo pfnUpdateDisplayRect must take the vram offset parameter for the framebuffer
    11441149        prgn->pPort->pfnUpdateDisplayRect (prgn->pPort, phdr->x, phdr->y, phdr->w, phdr->h);
    1145         prgn->pDisplay->handleDisplayUpdate (phdr->x + pFBInfo->xOrigin,
     1150        prgn->pDisplay->handleDisplayUpdateLegacy (phdr->x + pFBInfo->xOrigin,
    11461151                                             phdr->y + pFBInfo->yOrigin, phdr->w, phdr->h);
    11471152    }
     
    11611166        //@todo pfnUpdateDisplayRect must take the vram offset parameter for the framebuffer
    11621167        prgn->pPort->pfnUpdateDisplayRect (prgn->pPort, pFBInfo->dirtyRect.xLeft, pFBInfo->dirtyRect.yTop, w, h);
    1163         prgn->pDisplay->handleDisplayUpdate (pFBInfo->dirtyRect.xLeft + pFBInfo->xOrigin,
     1168        prgn->pDisplay->handleDisplayUpdateLegacy (pFBInfo->dirtyRect.xLeft + pFBInfo->xOrigin,
    11641169                                             pFBInfo->dirtyRect.yTop + pFBInfo->yOrigin, w, h);
    11651170    }
     
    25882593                }
    25892594
    2590                 pDisplay->handleDisplayUpdate(x + pFBInfo->xOrigin, y + pFBInfo->yOrigin, width, height);
     2595                pDisplay->handleDisplayUpdate(aScreenId, x, y, width, height);
    25912596            }
    25922597        }
     
    27242729                }
    27252730
    2726                 pDisplay->handleDisplayUpdate (pFBInfo->xOrigin, pFBInfo->yOrigin, pFBInfo->w, pFBInfo->h);
     2731                pDisplay->handleDisplayUpdate (uScreenId, 0, 0, pFBInfo->w, pFBInfo->h);
    27272732            }
    27282733        }
     
    30113016     */
    30123017
    3013     pDrv->pDisplay->handleDisplayUpdate(x, y, cx, cy);
     3018    pDrv->pDisplay->handleDisplayUpdate(VBOX_VIDEO_PRIMARY_SCREEN, x, y, cx, cy);
    30143019}
    30153020
     
    36543659             */
    36553660            pFBInfo->cVBVASkipUpdate = 0;
    3656             pThis->handleDisplayUpdate(pFBInfo->vbvaSkippedRect.xLeft,
    3657                                        pFBInfo->vbvaSkippedRect.yTop,
     3661            pThis->handleDisplayUpdate(uScreenId, pFBInfo->vbvaSkippedRect.xLeft - pFBInfo->xOrigin,
     3662                                       pFBInfo->vbvaSkippedRect.yTop - pFBInfo->yOrigin,
    36583663                                       pFBInfo->vbvaSkippedRect.xRight - pFBInfo->vbvaSkippedRect.xLeft,
    36593664                                       pFBInfo->vbvaSkippedRect.yBottom - pFBInfo->vbvaSkippedRect.yTop);
     
    37533758    if (RT_LIKELY(pFBInfo->cVBVASkipUpdate == 0))
    37543759    {
    3755         pThis->handleDisplayUpdate(x, y, cx, cy);
     3760        pThis->handleDisplayUpdate(uScreenId, x - pFBInfo->xOrigin, y - pFBInfo->yOrigin, cx, cy);
    37563761    }
    37573762    else
  • trunk/src/VBox/Main/include/DisplayImpl.h

    r33590 r34739  
    123123    // public methods only for internal purposes
    124124    int handleDisplayResize (unsigned uScreenId, uint32_t bpp, void *pvVRAM, uint32_t cbLine, int w, int h);
    125     void handleDisplayUpdate (int x, int y, int cx, int cy);
     125    void handleDisplayUpdateLegacy (int x, int y, int cx, int cy);
     126    void handleDisplayUpdate (unsigned uScreenId, int x, int y, int w, int h);
    126127#ifdef VBOX_WITH_VIDEOHWACCEL
    127128    void handleVHWACommandProcess(PPDMIDISPLAYCONNECTOR pInterface, PVBOXVHWACMD pCommand);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette