VirtualBox

Ignore:
Timestamp:
May 15, 2014 3:35:56 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
93719
Message:

wddm: resize enhancements & fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_muralfbo.cpp

    r51141 r51260  
    113113    mural->cUsedFBDatas = 0;
    114114
    115     for (i = 0; i < cr_server.screenCount; ++i)
     115    for (i = 0; i < (uint32_t)cr_server.screenCount; ++i)
    116116    {
    117117        GLuint j;
     
    360360            }
    361361
    362             for (int j = pMI->cUsedFBDatas; j > i; --j)
     362            for (uint32_t j = pMI->cUsedFBDatas; j > i; --j)
    363363            {
    364364                pMI->apUsedFBDatas[j] = pMI->apUsedFBDatas[j-1];
     
    374374        if (fFbWasUsed)
    375375        {
    376             for (int j = i; j < pMI->cUsedFBDatas - 1; ++j)
     376            for (uint32_t j = i; j < pMI->cUsedFBDatas - 1; ++j)
    377377            {
    378378                pMI->apUsedFBDatas[j] = pMI->apUsedFBDatas[j+1];
     
    394394}
    395395
    396 
    397 int crVBoxServerResizeScreen(const struct VBVAINFOSCREEN *pScreen, void *pvVRAM)
    398 {
    399     int rc;
    400     HCR_FRAMEBUFFER hFb = CrPMgrFbGet(pScreen->u32ViewIndex);
    401     if (!hFb)
    402     {
    403         WARN(("CrPMgrFbGet failed"));
    404         return VERR_INVALID_PARAMETER;
    405     }
    406 
    407     rc = CrFbUpdateBegin(hFb);
    408     if (!RT_SUCCESS(rc))
    409     {
    410         WARN(("CrFbUpdateBegin failed %d", rc));
    411         return rc;
    412     }
    413 
    414     crVBoxServerMuralFbResizeBegin(hFb);
    415 
    416     rc = CrFbResize(hFb, pScreen, pvVRAM);
    417     if (!RT_SUCCESS(rc))
    418     {
    419         WARN(("CrFbResize failed %d", rc));
    420     }
    421 
    422     crVBoxServerMuralFbResizeEnd(hFb);
    423 
    424     CrFbUpdateEnd(hFb);
    425 
    426     CrPMgrNotifyResize(hFb);
    427 
    428     return rc;
    429 }
    430 
    431396DECLEXPORT(int) crVBoxServerNotifyResize(const struct VBVAINFOSCREEN *pScreen, void *pvVRAM)
    432397{
     
    437402    }
    438403
    439     int rc = crVBoxServerResizeScreen(pScreen, pvVRAM);
     404    if (pScreen->u32ViewIndex >= (uint32_t)cr_server.screenCount)
     405    {
     406        WARN(("invalid view index"));
     407        return VERR_INVALID_PARAMETER;
     408    }
     409
     410    VBOXCMDVBVA_SCREENMAP_DECL(uint32_t, aTargetMap);
     411
     412    memset(aTargetMap, 0, sizeof (aTargetMap));
     413
     414    ASMBitSet(aTargetMap, pScreen->u32ViewIndex);
     415
     416    int rc = CrPMgrResize(pScreen, pvVRAM, aTargetMap);
    440417    if (!RT_SUCCESS(rc))
    441418    {
Note: See TracChangeset for help on using the changeset viewer.

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