VirtualBox

Ignore:
Timestamp:
Feb 10, 2014 3:33:47 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
92153
Message:

crOpenGL: greyed-out 3D image on VM pause

Location:
trunk/src/VBox/HostServices/SharedOpenGL
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostServices/SharedOpenGL/crserver/crservice.cpp

    r50364 r50394  
    14451445            break;
    14461446        }
     1447        case SHCRGL_HOST_FN_WINDOWS_SHOW:
     1448        {
     1449            /* Verify parameter count and types. */
     1450            if (cParms != 1)
     1451            {
     1452                WARN(("invalid parameter"));
     1453                rc = VERR_INVALID_PARAMETER;
     1454                break;
     1455            }
     1456
     1457            if (paParms[0].type != VBOX_HGCM_SVC_PARM_32BIT)
     1458            {
     1459                WARN(("invalid parameter"));
     1460                rc = VERR_INVALID_PARAMETER;
     1461                break;
     1462            }
     1463
     1464            rc = crServerVBoxWindowsShow(paParms[0].u.uint32);
     1465            if (!RT_SUCCESS(rc))
     1466                WARN(("crServerVBoxWindowsShow failed rc %d", rc));
     1467
     1468            break;
     1469        }
    14471470        default:
    14481471            rc = VERR_NOT_IMPLEMENTED;
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server.h

    r50364 r50394  
    408408int CrPMgrModeVrdp(bool fEnable);
    409409int CrPMgrModeRootVr(bool fEnable);
     410int CrPMgrModeWinVisible(bool fEnable);
    410411int CrPMgrRootVrUpdate();
    411412int CrPMgrViewportUpdate(uint32_t idScreen);
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_muralfbo.cpp

    r50364 r50394  
    746746
    747747    return VINF_SUCCESS;
     748}
     749
     750extern DECLEXPORT(int) crServerVBoxWindowsShow(bool fShow)
     751{
     752    return CrPMgrModeWinVisible(fShow);
    748753}
    749754
     
    829834    Assert(mural->aidColorTexs[CR_SERVER_FBO_FB_IDX(mural)]);
    830835}
     836
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_presenter.cpp

    r50378 r50394  
    136136    CR_FBMAP FramebufferInitMap;
    137137    CR_FRAMEBUFFER aFramebuffers[CR_MAX_GUEST_MONITORS];
     138    bool fWindowsForceHidden;
    138139    uint32_t cbTmpBuf;
    139140    void *pvTmpBuf;
     
    24342435    }
    24352436
     2437    int winVisibilityChanged()
     2438    {
     2439        int rc = mpWindow->UpdateBegin();
     2440        if (RT_SUCCESS(rc))
     2441        {
     2442            rc = mpWindow->SetVisible(!g_CrPresenter.fWindowsForceHidden);
     2443            if (!RT_SUCCESS(rc))
     2444                WARN(("SetVisible failed, rc %d", rc));
     2445
     2446            mpWindow->UpdateEnd();
     2447        }
     2448        else
     2449            WARN(("UpdateBegin failed, rc %d", rc));
     2450
     2451        return rc;
     2452    }
     2453
    24362454protected:
    24372455    virtual void onUpdateEnd()
     
    25642582        }
    25652583
    2566         rc = mpWindow->SetVisible(true);
     2584        rc = mpWindow->SetVisible(!g_CrPresenter.fWindowsForceHidden);
    25672585        if (!RT_SUCCESS(rc))
    25682586        {
     
    38203838}
    38213839
     3840int CrPMgrModeWinVisible(bool fEnable)
     3841{
     3842    if (!g_CrPresenter.fWindowsForceHidden == !!fEnable)
     3843        return VINF_SUCCESS;
     3844
     3845    g_CrPresenter.fWindowsForceHidden = !fEnable;
     3846
     3847    for (HCR_FRAMEBUFFER hFb = CrPMgrFbGetFirstEnabled();
     3848            hFb;
     3849            hFb = CrPMgrFbGetNextEnabled(hFb))
     3850    {
     3851        uint32_t idScreen = CrFbGetScreenInfo(hFb)->u32ViewIndex;
     3852
     3853        CR_FBDISPLAY_INFO *pInfo = &g_CrPresenter.aDisplayInfos[idScreen];
     3854
     3855        if (pInfo->pDpWin)
     3856            pInfo->pDpWin->winVisibilityChanged();
     3857    }
     3858
     3859    return VINF_SUCCESS;
     3860}
     3861
    38223862int CrPMgrRootVrUpdate()
    38233863{
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