VirtualBox

Changeset 74549 in vbox for trunk/src


Ignore:
Timestamp:
Oct 1, 2018 11:56:56 AM (6 years ago)
Author:
vboxsync
Message:

DevVGA-SVGA: further cleanup of context windows creation (Windows host only); removed obsolete debug code.

Location:
trunk/src/VBox/Devices/Graphics
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-ogl.cpp

    r73736 r74549  
    9494#define D3D_TO_OGL_Y_COORD(ptrSurface, y_coordinate)                (ptrSurface->pMipmapLevels[0].mipmapSize.height - (y_coordinate))
    9595#define D3D_TO_OGL_Y_COORD_MIPLEVEL(ptrMipLevel, y_coordinate)      (ptrMipLevel->size.height - (y_coordinate))
    96 
    97 /* Enable to render the result of DrawPrimitive in a seperate window. */
    98 //#define DEBUG_GFX_WINDOW
    99 
    10096
    10197/**
     
    10751071    }
    10761072
    1077 #ifdef DEBUG_DEBUG_GFX_WINDOW_TEST_CONTEXT
    1078     pState->idTestContext = SVGA_ID_INVALID;
    1079 #endif
    10801073    return VINF_SUCCESS;
    10811074}
     
    28582851
    28592852    Log(("vmsvga3dContextDefine id %x\n", cid));
    2860 #ifdef DEBUG_DEBUG_GFX_WINDOW_TEST_CONTEXT
    2861     if (pState->idTestContext == SVGA_ID_INVALID)
    2862     {
    2863         pState->idTestContext = 207;
    2864         rc = vmsvga3dContextDefine(pThis, pState->idTestContext);
    2865         AssertRCReturn(rc, rc);
    2866     }
    2867 #endif
    28682853
    28692854    if (cid == VMSVGA3D_SHARED_CTX_ID)
     
    29352920     * system memory in the guest VRAM.
    29362921     */
    2937     CREATESTRUCT cs;
    2938     cs.lpCreateParams   = NULL;
    2939     cs.dwExStyle        = WS_EX_NOACTIVATE | WS_EX_NOPARENTNOTIFY;
    2940 # ifdef DEBUG_GFX_WINDOW
    2941     cs.lpszName         = (char *)RTMemAllocZ(256);
    2942     RTStrPrintf((char *)cs.lpszName, 256, "Context %d OpenGL Window", cid);
    2943 # else
    2944     cs.lpszName         = NULL;
    2945 # endif
    2946     cs.lpszClass        = 0;
    2947 # ifdef DEBUG_GFX_WINDOW
    2948     cs.style            = WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_VISIBLE | WS_CAPTION;
    2949 # else
    2950     cs.style            = WS_DISABLED | WS_CHILD;
    2951 # endif
    2952     cs.x                = 0;
    2953     cs.y                = 0;
    2954     cs.cx               = 4;
    2955     cs.cy               = 4;
    2956     cs.hwndParent       = (HWND)pThis->svga.u64HostWindowId;
    2957     cs.hMenu            = NULL;
    2958     cs.hInstance        = pState->hInstance;
    2959 
    2960     rc = vmsvga3dSendThreadMessage(pState->pWindowThread, pState->WndRequestSem, WM_VMSVGA3D_CREATEWINDOW, (WPARAM)&pContext->hwnd, (LPARAM)&cs);
     2922    rc = vmsvga3dContextWindowCreate(pState->hInstance, pState->pWindowThread, pState->WndRequestSem, &pContext->hwnd);
    29612923    AssertRCReturn(rc, rc);
    29622924
     
    32413203{
    32423204#ifdef RT_OS_WINDOWS
    3243     /* Resize the window. */
    3244     CREATESTRUCT          cs;
    3245     RT_ZERO(cs);
    3246     cs.cx = pThis->svga.uWidth;
    3247     cs.cy = pThis->svga.uHeight;
    3248     int rc = vmsvga3dSendThreadMessage(pState->pWindowThread, pState->WndRequestSem, WM_VMSVGA3D_RESIZEWINDOW, (WPARAM)pContext->hwnd, (LPARAM)&cs);
    3249     AssertRC(rc);
     3205    RT_NOREF3(pThis, pState, pContext);
     3206    /* Do nothing. The window is not used for presenting. */
    32503207
    32513208#elif defined(RT_OS_DARWIN)
     
    62096166#endif
    62106167
    6211 #ifdef DEBUG_GFX_WINDOW
    6212     if (pContext->state.aRenderTargets[SVGA3D_RT_COLOR0])
    6213     {
    6214         SVGA3dCopyRect rect;
    6215 
    6216         rect.srcx = rect.srcy = rect.x = rect.y = 0;
    6217         rect.w = pContext->state.RectViewPort.w;
    6218         rect.h = pContext->state.RectViewPort.h;
    6219         vmsvga3dCommandPresent(pThis, pContext->state.aRenderTargets[SVGA3D_RT_COLOR0], 0, NULL);
    6220     }
    6221 #endif
    6222 
    62236168#if 0
    62246169    /* Dump render target to a bitmap. */
  • trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-shared.cpp

    r73194 r74549  
    111111    {
    112112        MSG msg;
    113 
    114113        if (GetMessage(&msg, 0, 0, 0))
    115114        {
     
    125124                continue;
    126125            }
     126
    127127            if (msg.message == WM_VMSVGA3D_CREATEWINDOW)
    128128            {
     
    130130                LPCREATESTRUCT pCS = (LPCREATESTRUCT) msg.lParam;
    131131
    132 #ifdef DEBUG_GFX_WINDOW
    133                 RECT rectClient;
    134 
    135                 rectClient.left     = 0;
    136                 rectClient.top      = 0;
    137                 rectClient.right    = pCS->cx;
    138                 rectClient.bottom   = pCS->cy;
    139                 AdjustWindowRectEx(&rectClient, WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_VISIBLE | WS_CAPTION, FALSE, WS_EX_NOACTIVATE | WS_EX_NOPARENTNOTIFY | WS_EX_TRANSPARENT);
    140                 pCS->cx = rectClient.right - rectClient.left;
    141                 pCS->cy = rectClient.bottom - rectClient.top;
    142 #endif
    143132                *pHwnd = CreateWindowEx(pCS->dwExStyle,
    144133                                        VMSVGA3D_WNDCLASSNAME,
    145134                                        pCS->lpszName,
    146135                                        pCS->style,
    147 #ifdef DEBUG_GFX_WINDOW
    148                                         0,
    149                                         0,
    150 #else
    151136                                        pCS->x,
    152137                                        pCS->y,
    153 #endif
    154138                                        pCS->cx,
    155139                                        pCS->cy,
    156 #ifdef DEBUG_GFX_WINDOW
    157                                         0,
    158 #else
    159140                                        pCS->hwndParent,
    160 #endif
    161141                                        pCS->hMenu,
    162142                                        pCS->hInstance,
     
    169149                continue;
    170150            }
     151
    171152            if (msg.message == WM_VMSVGA3D_DESTROYWINDOW)
    172153            {
    173154                BOOL fRc = DestroyWindow((HWND)msg.wParam);
    174                 Assert(fRc); NOREF(fRc);
    175                 /* Signal to the caller that we're done. */
    176                 RTSemEventSignal(WndRequestSem);
    177                 continue;
    178             }
    179             if (msg.message == WM_VMSVGA3D_RESIZEWINDOW)
    180             {
    181                 HWND hwnd = (HWND)msg.wParam;
    182                 LPCREATESTRUCT pCS = (LPCREATESTRUCT) msg.lParam;
    183 
    184 #ifdef DEBUG_GFX_WINDOW
    185                 RECT rectClient;
    186 
    187                 rectClient.left     = 0;
    188                 rectClient.top      = 0;
    189                 rectClient.right    = pCS->cx;
    190                 rectClient.bottom   = pCS->cy;
    191                 AdjustWindowRectEx(&rectClient, WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_VISIBLE | WS_CAPTION, FALSE, WS_EX_NOACTIVATE | WS_EX_NOPARENTNOTIFY | WS_EX_TRANSPARENT);
    192                 pCS->cx = rectClient.right - rectClient.left;
    193                 pCS->cy = rectClient.bottom - rectClient.top;
    194 #endif
    195                 BOOL fRc = SetWindowPos(hwnd, 0, pCS->x, pCS->y, pCS->cx, pCS->cy, SWP_NOZORDER | SWP_NOMOVE);
    196155                Assert(fRc); NOREF(fRc);
    197156
     
    269228    }
    270229    return DefWindowProc(hwnd, uMsg, wParam, lParam);
     230}
     231
     232int vmsvga3dContextWindowCreate(HINSTANCE hInstance, RTTHREAD pWindowThread, RTSEMEVENT WndRequestSem, HWND *pHwnd)
     233{
     234    /* Create a context window with minimal 4x4 size. We will never use the swapchain
     235     * to present the rendered image. Rendered images from the guest will be copied to
     236     * the VMSVGA SCREEN object, which can be either an offscreen render target or
     237     * system memory in the guest VRAM.
     238     */
     239    CREATESTRUCT cs;
     240    cs.lpCreateParams   = NULL;
     241    cs.hInstance        = hInstance;
     242    cs.hMenu            = NULL;
     243    cs.hwndParent       = HWND_DESKTOP;
     244    cs.cx               = 4;
     245    cs.cy               = 4;
     246    cs.x                = 0;
     247    cs.y                = 0;
     248    cs.style            = WS_DISABLED;
     249    cs.lpszName         = NULL;
     250    cs.lpszClass        = 0;
     251    cs.dwExStyle        = WS_EX_NOACTIVATE | WS_EX_NOPARENTNOTIFY;
     252
     253    int rc = vmsvga3dSendThreadMessage(pWindowThread, WndRequestSem, WM_VMSVGA3D_CREATEWINDOW, (WPARAM)pHwnd, (LPARAM)&cs);
     254    return rc;
    271255}
    272256
  • trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d-win.cpp

    r73736 r74549  
    5555*   Defined Constants And Macros                                                                                                 *
    5656*********************************************************************************************************************************/
    57 /* Enable to render the result of DrawPrimitive in a seperate window. */
    58 //#define DEBUG_GFX_WINDOW
    5957
    6058#define FOURCC_INTZ     (D3DFORMAT)MAKEFOURCC('I', 'N', 'T', 'Z')
     
    25162514     * system memory in the guest VRAM.
    25172515     */
    2518     CREATESTRUCT cs;
    2519 
    2520     AssertReturn(pThis->svga.u64HostWindowId, VERR_INTERNAL_ERROR);
    2521 
    2522     cs.lpCreateParams   = NULL;
    2523     cs.dwExStyle        = WS_EX_NOACTIVATE | WS_EX_NOPARENTNOTIFY;
    2524 #ifdef DEBUG_GFX_WINDOW
    2525     cs.lpszName         = (char *)RTMemAllocZ(256);
    2526     RTStrPrintf((char *)cs.lpszName, 256, "Context %d OpenGL Window", cid);
    2527 #else
    2528     cs.lpszName         = NULL;
    2529 #endif
    2530     cs.lpszClass        = NULL;
    2531 #ifdef DEBUG_GFX_WINDOW
    2532     cs.style            = WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_VISIBLE | WS_CAPTION;
    2533 #else
    2534     cs.style            = WS_DISABLED | WS_CHILD;
    2535 #endif
    2536     cs.x                = 0;
    2537     cs.y                = 0;
    2538     cs.cx               = 4;
    2539     cs.cy               = 4;
    2540     cs.hwndParent       = (HWND)pThis->svga.u64HostWindowId;
    2541     cs.hMenu            = NULL;
    2542     cs.hInstance        = pState->hInstance;
    2543 
    2544     rc = vmsvga3dSendThreadMessage(pState->pWindowThread, pState->WndRequestSem, WM_VMSVGA3D_CREATEWINDOW, (WPARAM)&pContext->hwnd, (LPARAM)&cs);
     2516    rc = vmsvga3dContextWindowCreate(pState->hInstance, pState->pWindowThread, pState->WndRequestSem, &pContext->hwnd);
    25452517    AssertRCReturn(rc, rc);
    25462518
     
    25552527    PresParam.SwapEffect                    = D3DSWAPEFFECT_DISCARD;
    25562528    PresParam.hDeviceWindow                 = pContext->hwnd;
    2557     PresParam.Windowed                      = TRUE;     /** @todo */
     2529    PresParam.Windowed                      = TRUE;
    25582530    PresParam.EnableAutoDepthStencil        = FALSE;
    25592531    PresParam.AutoDepthStencilFormat        = D3DFMT_UNKNOWN;   /* not relevant */
     
    27642736        if (cid != SVGA3D_INVALID_ID)
    27652737        {
    2766             CREATESTRUCT          cs;
    27672738            D3DPRESENT_PARAMETERS PresParam;
    27682739            D3DVIEWPORT9          viewportOrg;
     
    28872858            D3D_RELEASE(pContext->d3dState.pVertexDecl);
    28882859
    2889             memset(&cs, 0, sizeof(cs));
    2890             cs.cx = pThis->svga.uWidth;
    2891             cs.cy = pThis->svga.uHeight;
    2892 
    2893             Log(("vmsvga3dChangeMode: Resize window %x of context %d to (%d,%d)\n", pContext->hwnd, pContext->id, cs.cx, cs.cy));
    2894 
    28952860            AssertReturn(pContext->pDevice, VERR_INTERNAL_ERROR);
    28962861            hr = pContext->pDevice->GetViewport(&viewportOrg);
     
    28982863
    28992864            Log(("vmsvga3dChangeMode: old viewport settings (%d,%d)(%d,%d) z=%d/%d\n", viewportOrg.X, viewportOrg.Y, viewportOrg.Width, viewportOrg.Height, (uint32_t)(viewportOrg.MinZ * 100.0), (uint32_t)(viewportOrg.MaxZ * 100.0)));
    2900 
    2901             /* Resize the window. */
    2902             int rc = vmsvga3dSendThreadMessage(pState->pWindowThread, pState->WndRequestSem, WM_VMSVGA3D_RESIZEWINDOW, (WPARAM)pContext->hwnd, (LPARAM)&cs);
    2903             AssertRC(rc);
    29042865
    29052866            /* Changed when the function returns. */
     
    29112872            PresParam.MultiSampleType               = D3DMULTISAMPLE_NONE;
    29122873            PresParam.MultiSampleQuality            = 0;
    2913             PresParam.SwapEffect                    = D3DSWAPEFFECT_FLIP;
     2874            PresParam.SwapEffect                    = D3DSWAPEFFECT_DISCARD;
    29142875            PresParam.hDeviceWindow                 = pContext->hwnd;
    2915             PresParam.Windowed                      = TRUE;     /** @todo */
     2876            PresParam.Windowed                      = TRUE;
    29162877            PresParam.EnableAutoDepthStencil        = FALSE;
    29172878            PresParam.AutoDepthStencilFormat        = D3DFMT_UNKNOWN;   /* not relevant */
     
    29562917                    target.face     = 0;
    29572918                    target.mipmap   = 0;
    2958                     rc = vmsvga3dSetRenderTarget(pThis, cid, (SVGA3dRenderTargetType)j, target);
     2919                    int rc = vmsvga3dSetRenderTarget(pThis, cid, (SVGA3dRenderTargetType)j, target);
    29592920                    AssertRCReturn(rc, rc);
    29602921                }
     
    52445205    vmsvga3dContextTrackUsage(pThis, pContext);
    52455206
    5246 #ifdef DEBUG_GFX_WINDOW
    5247     if (pContext->aSidActiveTexture[0] == 0x62)
    5248 ////    if (pContext->sidActiveTexture == 0x3d)
    5249     {
    5250         SVGA3dCopyRect rect;
    5251 
    5252         rect.srcx = rect.srcy = rect.x = rect.y = 0;
    5253         rect.w = 800;
    5254         rect.h = 600;
    5255         vmsvga3dCommandPresent(pThis, pContext->state.aRenderTargets[SVGA3D_RT_COLOR0] /*pContext->aSidActiveTexture[0] */, 0, &rect);
    5256     }
    5257 #endif
    52585207    return rc;
    52595208
  • trunk/src/VBox/Devices/Graphics/DevVGA-SVGA3d.h

    r73194 r74549  
    113113# define WM_VMSVGA3D_CREATEWINDOW               (WM_APP+2)
    114114# define WM_VMSVGA3D_DESTROYWINDOW              (WM_APP+3)
    115 # define WM_VMSVGA3D_RESIZEWINDOW               (WM_APP+4)
    116115# define WM_VMSVGA3D_EXIT                       (WM_APP+5)
    117116
    118117DECLCALLBACK(int) vmsvga3dWindowThread(RTTHREAD ThreadSelf, void *pvUser);
    119118int vmsvga3dSendThreadMessage(RTTHREAD pWindowThread, RTSEMEVENT WndRequestSem, UINT msg, WPARAM wParam, LPARAM lParam);
     119int vmsvga3dContextWindowCreate(HINSTANCE hInstance, RTTHREAD pWindowThread, RTSEMEVENT WndRequestSem, HWND *pHwnd);
    120120
    121121#endif
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