VirtualBox

Changeset 30057 in vbox for trunk


Ignore:
Timestamp:
Jun 7, 2010 8:53:54 AM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
62415
Message:

wddm/3d: more impl

Location:
trunk/src/VBox/Additions/WINNT/Graphics
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxDispD3D.cpp

    r30043 r30057  
    884884    }
    885885    return D3DPOOL_DEFAULT;
     886}
     887
     888D3DRENDERSTATETYPE vboxDDI2D3DRenderStateType(D3DDDIRENDERSTATETYPE enmType)
     889{
     890    /* @todo: @fixme: not entirely correct, need to check */
     891    return (D3DRENDERSTATETYPE)enmType;
     892}
     893
     894D3DTEXTURESTAGESTATETYPE vboxDDI2D3DTestureStageStateType(D3DDDITEXTURESTAGESTATETYPE enmType)
     895{
     896    /* @todo: @fixme: not entirely correct, need to check */
     897    return (D3DTEXTURESTAGESTATETYPE)enmType;
    886898}
    887899
     
    12571269static HRESULT APIENTRY vboxWddmDDevSetRenderState(HANDLE hDevice, CONST D3DDDIARG_RENDERSTATE* pData)
    12581270{
    1259     vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    1260     AssertBreakpoint();
    1261     vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    1262     return E_FAIL;
     1271    vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
     1272    PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice;
     1273    Assert(pDevice);
     1274    Assert(pDevice->pDevice9If);
     1275    HRESULT hr = pDevice->pDevice9If->SetRenderState(vboxDDI2D3DRenderStateType(pData->State), pData->Value);
     1276    Assert(hr == S_OK);
     1277    vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p), hr(0x%x)\n", hDevice, hr));
     1278    return hr;
    12631279}
    12641280
     
    12811297static HRESULT APIENTRY vboxWddmDDevSetTextureStageState(HANDLE hDevice, CONST D3DDDIARG_TEXTURESTAGESTATE* pData)
    12821298{
    1283     vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    1284     AssertBreakpoint();
    1285     vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    1286     return E_FAIL;
     1299    vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
     1300    PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice;
     1301    Assert(pDevice);
     1302    Assert(pDevice->pDevice9If);
     1303    HRESULT hr = pDevice->pDevice9If->SetTextureStageState(pData->Stage, vboxDDI2D3DTestureStageStateType(pData->State), pData->Value);
     1304    Assert(hr == S_OK);
     1305    vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p), hr(0x%x)\n", hDevice, hr));
     1306    return hr;
    12871307}
    12881308
     
    13051325static HRESULT APIENTRY vboxWddmDDevSetPixelShaderConst(HANDLE hDevice, CONST D3DDDIARG_SETPIXELSHADERCONST* pData, CONST FLOAT* pRegisters)
    13061326{
    1307     vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    1308     AssertBreakpoint();
    1309     vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    1310     return E_FAIL;
     1327    vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
     1328    PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice;
     1329    Assert(pDevice);
     1330    Assert(pDevice->pDevice9If);
     1331    HRESULT hr = pDevice->pDevice9If->SetPixelShaderConstantF(pData->Register, pRegisters, pData->Count);
     1332    Assert(hr == S_OK);
     1333    vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p), hr(0x%x)\n", hDevice, hr));
     1334    return hr;
    13111335}
    13121336
     
    14671491static HRESULT APIENTRY vboxWddmDDevSetViewport(HANDLE hDevice, CONST D3DDDIARG_VIEWPORTINFO* pData)
    14681492{
    1469     vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    1470     AssertBreakpoint();
    1471     vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    1472     return E_FAIL;
     1493    vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
     1494    PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice;
     1495    Assert(pDevice);
     1496    Assert(pDevice->pDevice9If);
     1497    pDevice->ViewPort.X = pData->X;
     1498    pDevice->ViewPort.Y = pData->Y;
     1499    pDevice->ViewPort.Width = pData->Width;
     1500    pDevice->ViewPort.Height = pData->Height;
     1501    HRESULT hr = pDevice->pDevice9If->SetViewport(&pDevice->ViewPort);
     1502    Assert(hr == S_OK);
     1503    vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p), hr(0x%x)\n", hDevice, hr));
     1504    return hr;
    14731505}
    14741506static HRESULT APIENTRY vboxWddmDDevSetZRange(HANDLE hDevice, CONST D3DDDIARG_ZRANGE* pData)
    14751507{
    1476     vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    1477     AssertBreakpoint();
    1478     vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    1479     return E_FAIL;
     1508    vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
     1509    PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice;
     1510    Assert(pDevice);
     1511    Assert(pDevice->pDevice9If);
     1512    pDevice->ViewPort.MinZ = pData->MinZ;
     1513    pDevice->ViewPort.MaxZ = pData->MaxZ;
     1514    HRESULT hr = pDevice->pDevice9If->SetViewport(&pDevice->ViewPort);
     1515    Assert(hr == S_OK);
     1516    vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p), hr(0x%x)\n", hDevice, hr));
     1517    return hr;
    14801518}
    14811519static HRESULT APIENTRY vboxWddmDDevSetMaterial(HANDLE hDevice, CONST D3DDDIARG_SETMATERIAL* pData)
     
    15091547static HRESULT APIENTRY vboxWddmDDevSetClipPlane(HANDLE hDevice, CONST D3DDDIARG_SETCLIPPLANE* pData)
    15101548{
    1511     vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    1512     AssertBreakpoint();
    1513     vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    1514     return E_FAIL;
     1549    vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
     1550    PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice;
     1551    Assert(pDevice);
     1552    Assert(pDevice->pDevice9If);
     1553    HRESULT hr = pDevice->pDevice9If->SetClipPlane(pData->Index, pData->Plane);
     1554    Assert(hr == S_OK);
     1555    vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p), hr(0x%x)\n", hDevice, hr));
     1556    return hr;
    15151557}
    15161558
     
    16421684    Assert(pResource);
    16431685    PVBOXWDDMDISP_ADAPTER pAdapter = pDevice->pAdapter;
    1644 
    1645     Assert(0);
    16461686
    16471687    if (VBOXDISPMODE_IS_3D(pAdapter))
     
    18141854            {
    18151855                Assert(pDevice->pDevice9If);
     1856                Assert(0);
    18161857            }
    18171858
     
    20822123static HRESULT APIENTRY vboxWddmDDevSetScissorRect(HANDLE hDevice, CONST RECT* pRect)
    20832124{
    2084     vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    2085     AssertBreakpoint();
    2086     vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    2087     return E_FAIL;
     2125    vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
     2126    PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice;
     2127    Assert(pDevice);
     2128    Assert(pDevice->pDevice9If);
     2129    HRESULT hr = pDevice->pDevice9If->SetScissorRect(pRect);
     2130    Assert(hr == S_OK);
     2131    vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p), hr(0x%x)\n", hDevice, hr));
     2132    return hr;
    20882133}
    20892134static HRESULT APIENTRY vboxWddmDDevSetStreamSource(HANDLE hDevice, CONST D3DDDIARG_SETSTREAMSOURCE* pData)
     
    21872232static HRESULT APIENTRY vboxWddmDDevSetPixelShaderConstI(HANDLE hDevice, CONST D3DDDIARG_SETPIXELSHADERCONSTI* pData, CONST INT* pRegisters)
    21882233{
    2189     vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    2190     AssertBreakpoint();
    2191     vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    2192     return E_FAIL;
     2234    vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
     2235    PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice;
     2236    Assert(pDevice);
     2237    Assert(pDevice->pDevice9If);
     2238    HRESULT hr = pDevice->pDevice9If->SetPixelShaderConstantI(pData->Register, pRegisters, pData->Count);
     2239    Assert(hr == S_OK);
     2240    vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p), hr(0x%x)\n", hDevice, hr));
     2241    return hr;
    21932242}
    21942243static HRESULT APIENTRY vboxWddmDDevSetPixelShaderConstB(HANDLE hDevice, CONST D3DDDIARG_SETPIXELSHADERCONSTB* pData, CONST BOOL* pRegisters)
    21952244{
    2196     vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    2197     AssertBreakpoint();
    2198     vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
    2199     return E_FAIL;
     2245    vboxVDbgPrintF(("==> "__FUNCTION__", hDevice(0x%p)\n", hDevice));
     2246    PVBOXWDDMDISP_DEVICE pDevice = (PVBOXWDDMDISP_DEVICE)hDevice;
     2247    Assert(pDevice);
     2248    Assert(pDevice->pDevice9If);
     2249    HRESULT hr = pDevice->pDevice9If->SetPixelShaderConstantB(pData->Register, pRegisters, pData->Count);
     2250    Assert(hr == S_OK);
     2251    vboxVDbgPrintF(("<== "__FUNCTION__", hDevice(0x%p), hr(0x%x)\n", hDevice, hr));
     2252    return hr;
    22002253}
    22012254static HRESULT APIENTRY vboxWddmDDevCreatePixelShader(HANDLE hDevice, D3DDDIARG_CREATEPIXELSHADER* pData, CONST UINT* pCode)
     
    25482601        pDevice->cbCmdBuffer = pCreateData->CommandBufferSize;
    25492602        pDevice->fFlags = pCreateData->Flags;
     2603        /* Set Viewport to some default values */
     2604        pDevice->ViewPort.X = 0;
     2605        pDevice->ViewPort.Y = 0;
     2606        pDevice->ViewPort.Width = 1;
     2607        pDevice->ViewPort.Height = 1;
     2608        pDevice->ViewPort.MinZ = 0.;
     2609        pDevice->ViewPort.MaxZ = 1.;
    25502610
    25512611        Assert(!pCreateData->AllocationListSize);
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxDispD3D.h

    r30042 r30057  
    7474    HWND hWnd;
    7575    IDirect3DDevice9 *pDevice9If;
     76    /* need to cache the ViewPort data because IDirect3DDevice9::SetViewport
     77     * is split into two calls : SetViewport & SetZRange */
     78    D3DVIEWPORT9 ViewPort;
    7679    VBOXWDDMDISP_CONTEXT DefaultContext;
    7780} VBOXWDDMDISP_DEVICE, *PVBOXWDDMDISP_DEVICE;
  • trunk/src/VBox/Additions/WINNT/Graphics/Display/wddm/VBoxDispD3DIf.cpp

    r30039 r30057  
    262262                                        VBOXDISPWND_NAME, VBOXDISPWND_NAME,
    263263                                        WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_DISABLED,
    264 #ifdef DEBUG_misha
    265                                         -1024, -1024,
    266 #else
    267264                                        0, 0,
    268 #endif
    269265                                        w, h,
    270266                                        GetDesktopWindow() /* hWndParent */,
  • trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoWddm.cpp

    r29928 r30057  
    34883488                {
    34893489#ifdef VBOXWDDM_RENDER_FROM_SHADOW
     3490#if 0
    34903491                    Assert (pSrcAlloc->enmType == VBOXWDDM_ALLOC_TYPE_STD_SHADOWSURFACE);
    34913492                    Assert (pDstAlloc->enmType == VBOXWDDM_ALLOC_TYPE_STD_SHAREDPRIMARYSURFACE);
     3493#else
     3494                    Assert ((pSrcAlloc->enmType == VBOXWDDM_ALLOC_TYPE_STD_SHADOWSURFACE
     3495                            && pDstAlloc->enmType == VBOXWDDM_ALLOC_TYPE_STD_SHAREDPRIMARYSURFACE)
     3496                            || (pSrcAlloc->enmType == VBOXWDDM_ALLOC_TYPE_STD_SHAREDPRIMARYSURFACE
     3497                                    && pDstAlloc->enmType == VBOXWDDM_ALLOC_TYPE_STD_SHADOWSURFACE));
     3498#endif
    34923499                    if (pDstAlloc->enmType == VBOXWDDM_ALLOC_TYPE_STD_SHAREDPRIMARYSURFACE
    34933500                            && pSrcAlloc->enmType == VBOXWDDM_ALLOC_TYPE_STD_SHADOWSURFACE)
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