VirtualBox

Changeset 27516 in vbox


Ignore:
Timestamp:
Mar 19, 2010 7:43:30 AM (15 years ago)
Author:
vboxsync
Message:

wddm: yet another fix to make dwm & stuff more happy

Location:
trunk/src/VBox/Additions/WINNT/Graphics/Display
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/Makefile.kmk

    r26928 r27516  
    9292 ifeq ($(KBUILD_TARGET_ARCH), amd64)
    9393DLLS += VBoxDispD3D64
    94  if defined(VBOX_SIGNING_MODE)
    95 VBoxDispD3D64_NOINST = true
    96  endif
    97 VBoxDispD3D64_TEMPLATE = VBOXGUESTR3DLL
    98 VBoxDispD3D64_DEFS     = UNICODE _UNICODE
    99 VBoxDispD3D64_SOURCES  = \
    100         wddm/VBoxDispD3D.cpp \
    101         wddm/VBoxDispD3D64.def \
    102         wddm/VBoxDispD3D.rc
    103 VBoxDispD3D64_LIBS     = \
    104         $(VBOX_LIB_IPRT_GUEST_R3) \
    105         $(VBOX_LIB_VBGL_R3)
    106 VBoxDispD3D64_SDKS     = WINDDKWLH
     94VBoxDispD3D64_EXTENDS  = VBoxDispD3D
     95VBoxDispD3D64_SOURCES  = $(subst VBoxDispD3D.def,VBoxDispD3D64.def,$(VBoxDispD3D_SOURCES))
    10796 endif
    10897endif
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxDispD3D.cpp

    r27505 r27516  
    8989{
    9090    vboxVDbgPrint(("==> "__FUNCTION__", hAdapter(0x%p), caps type(%d)\n", hAdapter, pData->Type));
    91     AssertBreakpoint();
     91
     92    HRESULT hr = S_OK;
    9293
    9394    switch (pData->Type)
    9495    {
    9596        case D3DDDICAPS_DDRAW:
     97            Assert(pData->DataSize >= sizeof (DDRAW_CAPS));
     98            if (pData->DataSize >= sizeof (DDRAW_CAPS))
     99                memset(pData->pData, 0, sizeof (DDRAW_CAPS));
     100            else
     101                hr = E_INVALIDARG;
     102            break;
    96103        case D3DDDICAPS_DDRAW_MODE_SPECIFIC:
     104            Assert(pData->DataSize >= sizeof (DDRAW_MODE_SPECIFIC_CAPS));
     105            if (pData->DataSize >= sizeof (DDRAW_MODE_SPECIFIC_CAPS))
     106                memset(pData->pData, 0, sizeof (DDRAW_MODE_SPECIFIC_CAPS));
     107            else
     108                hr = E_INVALIDARG;
     109            break;
    97110        case D3DDDICAPS_GETFORMATCOUNT:
     111            *((uint32_t*)pData->pData) = 0;
     112            break;
    98113        case D3DDDICAPS_GETFORMATDATA:
     114            /* TODO: fill the array of FORMATOP structures of size reported with D3DDDICAPS_GETFORMATCOUNT (currently 0) */
     115            break;
     116        case D3DDDICAPS_GETD3DQUERYCOUNT:
     117            *((uint32_t*)pData->pData) = 0;
     118            break;
     119        case D3DDDICAPS_GETD3D3CAPS:
     120            Assert(pData->DataSize >= sizeof (D3DHAL_GLOBALDRIVERDATA));
     121            if (pData->DataSize >= sizeof (D3DHAL_GLOBALDRIVERDATA))
     122                memset (pData->pData, 0, sizeof (D3DHAL_GLOBALDRIVERDATA));
     123            else
     124                hr = E_INVALIDARG;
     125            break;
     126        case D3DDDICAPS_GETD3D7CAPS:
     127            Assert(pData->DataSize >= sizeof (D3DHAL_D3DEXTENDEDCAPS));
     128            if (pData->DataSize >= sizeof (D3DHAL_D3DEXTENDEDCAPS))
     129                memset(pData->pData, 0, sizeof (D3DHAL_D3DEXTENDEDCAPS));
     130            else
     131                hr = E_INVALIDARG;
     132            break;
     133        case D3DDDICAPS_GETD3D9CAPS:
     134            Assert(pData->DataSize >= sizeof (D3DCAPS9));
     135            if (pData->DataSize >= sizeof (D3DCAPS9))
     136                memset(pData->pData, 0, sizeof (D3DCAPS9));
     137            else
     138                hr = E_INVALIDARG;
     139            break;
     140        case D3DDDICAPS_GETGAMMARAMPCAPS:
     141            *((uint32_t*)pData->pData) = 0;
     142            break;
    99143        case D3DDDICAPS_GETMULTISAMPLEQUALITYLEVELS:
    100         case D3DDDICAPS_GETD3DQUERYCOUNT:
    101144        case D3DDDICAPS_GETD3DQUERYDATA:
    102         case D3DDDICAPS_GETD3D3CAPS:
    103145        case D3DDDICAPS_GETD3D5CAPS:
    104146        case D3DDDICAPS_GETD3D6CAPS:
    105         case D3DDDICAPS_GETD3D7CAPS:
    106147        case D3DDDICAPS_GETD3D8CAPS:
    107         case D3DDDICAPS_GETD3D9CAPS:
    108148        case D3DDDICAPS_GETDECODEGUIDCOUNT:
    109149        case D3DDDICAPS_GETDECODEGUIDS:
     
    126166        case D3DDDICAPS_GETEXTENSIONGUIDS:
    127167        case D3DDDICAPS_GETEXTENSIONCAPS:
    128         case D3DDDICAPS_GETGAMMARAMPCAPS:
     168            vboxVDbgPrint((__FUNCTION__": unimplemented caps type(%d)\n", pData->Type));
     169            AssertBreakpoint();
    129170            if (pData->pData && pData->DataSize)
    130171                memset(pData->pData, 0, pData->DataSize);
    131172            break;
    132173        default:
     174            vboxVDbgPrint((__FUNCTION__": unknown caps type(%d)\n", pData->Type));
    133175            AssertBreakpoint();
    134176    }
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