VirtualBox

Ignore:
Timestamp:
Jun 26, 2013 1:01:07 PM (11 years ago)
Author:
vboxsync
Message:

wddm/crOpenGL: more TexPresent fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/GuestHost/OpenGL/util/vreg.cpp

    r46757 r46801  
    621621static int vboxVrListSubstNoJoin(PVBOXVR_LIST pList, uint32_t cRects, const RTRECT * aRects, bool *pfChanged)
    622622{
    623     *pfChanged = false;
     623    if (pfChanged)
     624        *pfChanged = false;
    624625
    625626    if (VBoxVrListIsEmpty(pList))
     
    637638    }
    638639
    639     *pfChanged = Data.fChanged;
     640    if (pfChanged)
     641        *pfChanged = Data.fChanged;
     642
    640643    return VINF_SUCCESS;
    641644}
     
    910913#endif
    911914
    912     int rc = vboxVrListSubstNoJoin(pList, cRects, aRects, pfChanged);
     915    bool fChanged = false;
     916
     917    int rc = vboxVrListSubstNoJoin(pList, cRects, aRects, &fChanged);
    913918    if (!RT_SUCCESS(rc))
    914919    {
     
    917922    }
    918923
    919     if (!*pfChanged)
     924    if (fChanged)
    920925        goto done;
    921926
     
    927932        RTMemFree(pRects);
    928933#endif
     934
     935    if (pfChanged)
     936        *pfChanged = fChanged;
     937
    929938    return rc;
    930939}
     
    11981207{
    11991208    bool fOthersChanged = false, fCurChanged = false, fEntryChanged = false, fEntryWasInList = false, fEntryReplaced = false;
    1200     PVBOXVR_COMPOSITOR_ENTRY pCur;
     1209    PVBOXVR_COMPOSITOR_ENTRY pCur, pNext;
    12011210    int rc = VINF_SUCCESS;
    12021211
     
    12301239        Assert(!VBoxVrListIsEmpty(&pEntry->Vr));
    12311240    }
    1232 
    1233     RTListForEach(&pCompositor->List, pCur, VBOXVR_COMPOSITOR_ENTRY, Node)
     1241    else
     1242    {
     1243        fEntryChanged = true;
     1244    }
     1245
     1246    RTListForEachSafe(&pCompositor->List, pCur, pNext, VBOXVR_COMPOSITOR_ENTRY, Node)
    12341247    {
    12351248        Assert(!VBoxVrListIsEmpty(&pCur->Vr));
     
    16211634    uint32_t cRects = VBoxVrListRectsCount(&pCEntry->Vr);
    16221635    Assert(cRects);
    1623     Assert(cRects >= pData->cRects);
     1636    Assert(cRects <= pData->cRects);
    16241637    int rc = VBoxVrListRectsGet(&pCEntry->Vr, cRects, pEntry->paDstRects);
    16251638    AssertRC(rc);
     
    17291742{
    17301743    uint32_t fChangedFlags = 0;
    1731     int rc = VBoxVrCompositorEntryRegionsAdd(&pCompositor->Compositor, &pEntry->Ce, cRegions, paRegions, &fChangedFlags);
     1744    int rc = VBoxVrCompositorEntryRegionsAdd(&pCompositor->Compositor, pEntry ? &pEntry->Ce : NULL, cRegions, paRegions, &fChangedFlags);
    17321745    if (!RT_SUCCESS(rc))
    17331746    {
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