VirtualBox

Ignore:
Timestamp:
May 21, 2010 3:58:56 PM (15 years ago)
Author:
vboxsync
Message:

wddm/2D: more impl (get caps + initialization working)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoVhwa.cpp

    r29710 r29742  
    173173    vboxVhwaCommandFree(pDevExt, pCmd);
    174174}
     175
     176void vboxVhwaCompletionListProcess(PDEVICE_EXTENSION pDevExt, VBOXSHGSMILIST *pList)
     177{
     178    PVBOXSHGSMILIST_ENTRY pNext, pCur;
     179    for (pCur = pList->pFirst; pCur; pCur = pNext)
     180    {
     181        /* need to save next since the command may be released in a pfnCallback and thus its data might be invalid */
     182        pNext = pCur->pNext;
     183        VBOXVHWACMD *pCmd = VBOXVHWA_LISTENTRY2CMD(pCur);
     184        PFNVBOXVHWACMDCOMPLETION pfnCallback = (PFNVBOXVHWACMDCOMPLETION)pCmd->GuestVBVAReserved1;
     185        void *pvCallback = (void*)pCmd->GuestVBVAReserved2;
     186        pfnCallback(pDevExt, pCmd, pvCallback);
     187    }
     188}
     189
    175190#endif
    176191
     
    216231    pInfo1->u.in.guestVersion.reserved = VBOXVHWA_VERSION_RSV;
    217232
    218     if(vboxVhwaCommandSubmit(pDevExt, pCmd))
     233    int rc = vboxVhwaCommandSubmit(pDevExt, pCmd);
     234    AssertRC(rc);
     235    if(RT_SUCCESS(rc))
    219236    {
    220237        if(RT_SUCCESS(pCmd->rc))
     
    242259    pInfo2->numFourCC = numFourCC;
    243260
    244     if(vboxVhwaCommandSubmit(pDevExt, pCmd))
    245     {
     261    int rc = vboxVhwaCommandSubmit(pDevExt, pCmd);
     262    AssertRC(rc);
     263    if(RT_SUCCESS(rc))
     264    {
     265        AssertRC(pCmd->rc);
    246266        if(RT_SUCCESS(pCmd->rc))
    247267        {
     
    270290    }
    271291
    272     if(vboxVhwaCommandSubmit(pDevExt, pCmd))
    273     {
     292    rc = vboxVhwaCommandSubmit(pDevExt, pCmd);
     293    AssertRC(rc);
     294    if(RT_SUCCESS(rc))
     295    {
     296        AssertRC(pCmd->rc);
    274297        if(RT_SUCCESS(pCmd->rc))
    275         {
    276298            rc = VINF_SUCCESS;
    277         }
     299        else
     300            rc = pCmd->rc;
    278301    }
    279302
     
    295318    }
    296319
    297     if(vboxVhwaCommandSubmit(pDevExt, pCmd))
    298     {
     320    rc = vboxVhwaCommandSubmit(pDevExt, pCmd);
     321    AssertRC(rc);
     322    if(RT_SUCCESS(rc))
     323    {
     324        AssertRC(pCmd->rc);
    299325        if(RT_SUCCESS(pCmd->rc))
    300         {
    301326            rc = VINF_SUCCESS;
    302         }
     327        else
     328            rc = pCmd->rc;
    303329    }
    304330
     
    345371
    346372                pSettings->aFormats[pSettings->cFormats] = D3DDDIFMT_X8R8G8B8;
    347                 ++pSettings->cFormats;
    348                 pSettings->aFormats[pSettings->cFormats] = D3DDDIFMT_A8R8G8B8;
    349373                ++pSettings->cFormats;
    350374
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