VirtualBox

Changeset 50394 in vbox for trunk/src/VBox/Main/src-client


Ignore:
Timestamp:
Feb 10, 2014 3:33:47 PM (11 years ago)
Author:
vboxsync
Message:

crOpenGL: greyed-out 3D image on VM pause

File:
1 edited

Legend:

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

    r50364 r50394  
    116116
    117117    mfMachineRunning = false;
     118#ifdef VBOX_WITH_CROGL
     119    mfCrOglDataHidden = false;
     120#endif
    118121
    119122    mpu8VbvaPartial = NULL;
     
    617620}
    618621
     622#ifdef VBOX_WITH_CROGL
     623int Display::crOglWindowsShow(bool fShow)
     624{
     625    if (!mfCrOglDataHidden == !!fShow)
     626        return VINF_SUCCESS;
     627
     628    VMMDev *pVMMDev = mParent->getVMMDev();
     629    if (!pVMMDev)
     630    {
     631        AssertMsgFailed(("no vmmdev\n"));
     632        return VERR_INVALID_STATE;
     633    }
     634
     635    if (!mhCrOglSvc)
     636    {
     637        AssertMsgFailed(("no mhCrOglSvc\n"));
     638        return VERR_INVALID_STATE;
     639    }
     640
     641    VBOXHGCMSVCPARM parm;
     642
     643    parm.type = VBOX_HGCM_SVC_PARM_32BIT;
     644    parm.u.uint32 = (uint32_t)fShow;
     645
     646    int rc = pVMMDev->hgcmHostFastCallAsync(mhCrOglSvc, SHCRGL_HOST_FN_WINDOWS_SHOW, &parm, NULL, NULL);
     647    if (RT_SUCCESS(rc))
     648        mfCrOglDataHidden = !fShow;
     649    else
     650        AssertMsgFailed(("hgcmHostFastCallAsync failed rc %n", rc));
     651
     652    return rc;
     653}
     654#endif
     655
     656
    619657// IEventListener method
    620658STDMETHODIMP Display::HandleEvent(IEvent * aEvent)
     
    639677
    640678                mfMachineRunning = true;
     679
     680#ifdef VBOX_WITH_CROGL
     681                crOglWindowsShow(true);
     682#endif
    641683            }
    642684            else
     685            {
    643686                mfMachineRunning = false;
     687
     688#ifdef VBOX_WITH_CROGL
     689                if (machineState == MachineState_Paused)
     690                    crOglWindowsShow(false);
     691#endif
     692            }
    644693            break;
    645694        }
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