VirtualBox

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


Ignore:
Timestamp:
Mar 12, 2014 5:43:09 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
92767
Message:

Dev/VGA/crOpenGL/wddm: command thread, more command processing

File:
1 edited

Legend:

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

    r50677 r50754  
    43044304void Display::handleCrHgsmiCommandProcess(PVBOXVDMACMD_CHROMIUM_CMD pCmd, uint32_t cbCmd)
    43054305{
    4306     int rc = VERR_INVALID_FUNCTION;
     4306    int rc = VERR_NOT_SUPPORTED;
    43074307    VBOXHGCMSVCPARM parm;
    43084308    parm.type = VBOX_HGCM_SVC_PARM_PTR;
     
    43324332void Display::handleCrHgsmiControlProcess(PVBOXVDMACMD_CHROMIUM_CTL pCtl, uint32_t cbCtl)
    43334333{
    4334     int rc = VERR_INVALID_FUNCTION;
     4334    int rc = VERR_NOT_SUPPORTED;
    43354335    VBOXHGCMSVCPARM parm;
    43364336    parm.type = VBOX_HGCM_SVC_PARM_PTR;
     
    43834383}
    43844384#endif
     4385
     4386DECLCALLBACK(void)  Display::displayCrHgcmCtlSubmitCompletion(int32_t result, uint32_t u32Function, PVBOXHGCMSVCPARM pParam, void *pvContext)
     4387{
     4388    VBOXCRCMDCTL *pCmd = (VBOXCRCMDCTL*)pParam->u.pointer.addr;
     4389    if (pCmd->pfnInternal)
     4390        ((PFNCRCTLCOMPLETION)pCmd->pfnInternal)(pCmd, pParam->u.pointer.size, result, pvContext);
     4391}
     4392
     4393int  Display::handleCrHgcmCtlSubmit(struct VBOXCRCMDCTL* pCmd, uint32_t cbCmd,
     4394                                        PFNCRCTLCOMPLETION pfnCompletion,
     4395                                        void *pvCompletion)
     4396{
     4397    VMMDev *pVMMDev = mParent->getVMMDev();
     4398    if (!pVMMDev)
     4399    {
     4400        AssertMsgFailed(("no vmmdev\n"));
     4401        return VERR_INVALID_STATE;
     4402    }
     4403
     4404    Assert(mhCrOglSvc);
     4405    VBOXHGCMSVCPARM parm;
     4406    parm.type = VBOX_HGCM_SVC_PARM_PTR;
     4407    parm.u.pointer.addr = pCmd;
     4408    parm.u.pointer.size = cbCmd;
     4409
     4410    pCmd->pfnInternal = (void(*)())pfnCompletion;
     4411    int rc = pVMMDev->hgcmHostFastCallAsync(mhCrOglSvc, SHCRGL_HOST_FN_CTL, &parm, displayCrHgcmCtlSubmitCompletion, pvCompletion);
     4412    if (!RT_SUCCESS(rc))
     4413        AssertMsgFailed(("hgcmHostFastCallAsync failed rc %n", rc));
     4414
     4415    return rc;
     4416}
     4417
     4418DECLCALLBACK(int)  Display::displayCrHgcmCtlSubmit(PPDMIDISPLAYCONNECTOR pInterface,
     4419                                    struct VBOXCRCMDCTL* pCmd, uint32_t cbCmd,
     4420                                    PFNCRCTLCOMPLETION pfnCompletion,
     4421                                    void *pvCompletion)
     4422{
     4423    PDRVMAINDISPLAY pDrv = PDMIDISPLAYCONNECTOR_2_MAINDISPLAY(pInterface);
     4424    Display *pThis = pDrv->pDisplay;
     4425    return pThis->handleCrHgcmCtlSubmit(pCmd, cbCmd, pfnCompletion, pvCompletion);
     4426}
    43854427
    43864428#if defined(VBOX_WITH_HGCM) && defined(VBOX_WITH_CROGL)
     
    50075049    pThis->IConnector.pfnCrHgsmiControlProcess = Display::displayCrHgsmiControlProcess;
    50085050#endif
     5051    pThis->IConnector.pfnCrHgcmCtlSubmit       = Display::displayCrHgcmCtlSubmit;
    50095052#ifdef VBOX_WITH_HGSMI
    50105053    pThis->IConnector.pfnVBVAEnable            = Display::displayVBVAEnable;
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