VirtualBox

Ignore:
Timestamp:
May 27, 2014 12:00:56 PM (11 years ago)
Author:
vboxsync
Message:

crOpenGL: window visibility fix

File:
1 edited

Legend:

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

    r51349 r51423  
    23252325    }
    23262326
    2327     bool IsCreated()
     2327    bool IsCreated() const
    23282328    {
    23292329        return !!mSpuWindow;
     2330    }
     2331
     2332    bool IsVisivle() const
     2333    {
     2334        return mFlags.fVisible;
    23302335    }
    23312336
     
    28522857    int winVisibilityChanged()
    28532858    {
     2859        HCR_FRAMEBUFFER hFb = getFramebuffer();
     2860        if (!hFb || !CrFbIsEnabled(hFb))
     2861        {
     2862            Assert(!mpWindow->IsVisivle());
     2863            return VINF_SUCCESS;
     2864        }
     2865
    28542866        int rc = mpWindow->UpdateBegin();
    28552867        if (RT_SUCCESS(rc))
     
    29052917            setRegionsChanged();
    29062918
    2907             return mpWindow->SetSize((uint32_t)(pRect->xRight - pRect->xLeft), (uint32_t)(pRect->yBottom - pRect->yTop));
     2919            rc = mpWindow->SetSize((uint32_t)(pRect->xRight - pRect->xLeft), (uint32_t)(pRect->yBottom - pRect->yTop));
     2920            if (!RT_SUCCESS(rc))
     2921            {
     2922                WARN(("SetSize failed rc %d", rc));
     2923                return rc;
     2924            }
     2925
     2926            rc = mpWindow->SetVisible(!g_CrPresenter.fWindowsForceHidden);
     2927            if (!RT_SUCCESS(rc))
     2928            {
     2929                WARN(("SetVisible failed rc %d", rc));
     2930                return rc;
     2931            }
     2932
     2933            return VINF_SUCCESS;
    29082934        }
    29092935
     
    29973023        }
    29983024
    2999         rc = mpWindow->SetVisible(!g_CrPresenter.fWindowsForceHidden);
     3025        HCR_FRAMEBUFFER hFb = getFramebuffer();
     3026        rc = mpWindow->SetVisible(hFb && CrFbIsEnabled(hFb) && !g_CrPresenter.fWindowsForceHidden);
    30003027        if (!RT_SUCCESS(rc))
    30013028        {
     
    46374664        CR_FBDISPLAY_INFO *pDpInfo = &g_CrPresenter.aDisplayInfos[i];
    46384665
    4639         if (pDpInfo->iFb < 0)
    4640             continue;
    4641 
    46424666        if (pDpInfo->pDpWin)
    46434667            pDpInfo->pDpWin->winVisibilityChanged();
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