VirtualBox

Ignore:
Timestamp:
Mar 25, 2013 10:31:13 AM (12 years ago)
Author:
vboxsync
Message:

crOpenGL: do not pass intersected rects to vrdp backend

Location:
trunk/src/VBox/HostServices/SharedOpenGL/crserverlib
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_main.c

    r45150 r45159  
    24092409    cr_server.head_spu->dispatch_table.WindowVisibleRegion(pMI->spuWindow, cRects, pRects);
    24102410
    2411     if (pMI->pvOutputRedirectInstance)
    2412     {
    2413         /* @todo the code assumes that RTRECT == four GLInts. */
    2414         cr_server.outputRedirect.CRORVisibleRegion(pMI->pvOutputRedirectInstance,
    2415                                                    cRects, pRects);
    2416     }
    2417 
    24182411    pMI->fRootVrOn = cr_server.fRootVrOn;
    24192412
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_muralfbo.c

    r45148 r45159  
    8787        if (mural->pvOutputRedirectInstance)
    8888        {
     89            uint32_t cRects;
     90            const RTRECT *pRects;
     91
     92            int rc = CrVrScrCompositorEntryRegionsGet(&mural->Compositor, &mural->CEntry, &cRects, NULL, &pRects);
     93            if (!RT_SUCCESS(rc))
     94            {
     95                crWarning("CrVrScrCompositorEntryRegionsGet failed, rc %d", rc);
     96                return;
     97            }
     98
    8999            cr_server.outputRedirect.CRORGeometry(mural->pvOutputRedirectInstance,
    90100                                                  mural->hX, mural->hY,
  • trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_window.c

    r45148 r45159  
    130130                /* do visible rects only ig they differ from the default */
    131131                cr_server.head_spu->dispatch_table.WindowVisibleRegion(mural->spuWindow, cRects, pRects);
    132 
    133                 if (mural->pvOutputRedirectInstance)
    134                 {
    135                     /* @todo the code assumes that RTRECT == four GLInts. */
    136                     cr_server.outputRedirect.CRORVisibleRegion(mural->pvOutputRedirectInstance,
    137                                                                cRects, pRects);
    138                 }
    139132            }
    140133        }
     
    558551        if (mural->pvOutputRedirectInstance)
    559552        {
     553            if (mural->fRootVrOn)
     554            {
     555                rc = CrVrScrCompositorEntryRegionsGet(&mural->Compositor, &mural->CEntry, &cRects, NULL, &pRects);
     556                if (!RT_SUCCESS(rc))
     557                {
     558                    crWarning("CrVrScrCompositorEntryRegionsGet failed, rc %d", rc);
     559                    return;
     560                }
     561            }
    560562            /* @todo the code assumes that RTRECT == four GLInts. */
    561563            cr_server.outputRedirect.CRORVisibleRegion(mural->pvOutputRedirectInstance,
    562                                                        cRects, (RTRECT *)pRects);
     564                    cRects, pRects);
    563565        }
    564566
     
    648650                {
    649651                    cr_server.head_spu->dispatch_table.WindowVisibleRegion(mural->spuWindow, cRects, pRects);
    650 
    651                     if (mural->pvOutputRedirectInstance)
    652                     {
    653                         /* @todo the code assumes that RTRECT == four GLInts. */
    654                         cr_server.outputRedirect.CRORVisibleRegion(mural->pvOutputRedirectInstance,
    655                                                                    cRects, pRects);
    656                     }
    657652                }
    658653                else
     
    727722    if (fRegionsChanged)
    728723    {
     724        const RTRECT * pRealRects;
     725        uint32_t cRealRects;
     726
    729727        if (mural->fRootVrOn)
    730728        {
     
    744742            }
    745743
    746             rc = CrVrScrCompositorEntryRegionsGet(&mural->RootVrCompositor, &mural->RootVrCEntry, &cRects, NULL, (const RTRECT **)&pRects);
     744            rc = CrVrScrCompositorEntryRegionsGet(&mural->RootVrCompositor, &mural->RootVrCEntry, &cRealRects, NULL, &pRealRects);
    747745            if (!RT_SUCCESS(rc))
    748746            {
     
    753751        else
    754752        {
    755             rc = CrVrScrCompositorEntryRegionsGet(&mural->Compositor, &mural->CEntry, &cRects, NULL, (const RTRECT **)&pRects);
     753            rc = CrVrScrCompositorEntryRegionsGet(&mural->Compositor, &mural->CEntry, &cRealRects, NULL, &pRealRects);
    756754            if (!RT_SUCCESS(rc))
    757755            {
     
    761759        }
    762760
    763         cr_server.head_spu->dispatch_table.WindowVisibleRegion(mural->spuWindow, cRects, pRects);
     761        cr_server.head_spu->dispatch_table.WindowVisibleRegion(mural->spuWindow, cRealRects, pRealRects);
    764762
    765763        if (mural->pvOutputRedirectInstance)
    766764        {
     765            if (mural->fRootVrOn)
     766            {
     767                rc = CrVrScrCompositorEntryRegionsGet(&mural->Compositor, &mural->CEntry, &cRealRects, NULL, &pRealRects);
     768                if (!RT_SUCCESS(rc))
     769                {
     770                    crWarning("CrVrScrCompositorEntryRegionsGet failed, rc %d", rc);
     771                    return;
     772                }
     773            }
    767774            /* @todo the code assumes that RTRECT == four GLInts. */
    768             cr_server.outputRedirect.CRORVisibleRegion(mural->pvOutputRedirectInstance,
    769                                                        cRects, (RTRECT *)pRects);
     775            cr_server.outputRedirect.CRORVisibleRegion(mural->pvOutputRedirectInstance, cRealRects, pRealRects);
    770776        }
    771777    }
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