VirtualBox

Ignore:
Timestamp:
Apr 26, 2011 8:33:19 AM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
71402
Message:

3D for VRDP: initial commit (xTracker 5565).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostServices/SharedOpenGL/crserver/crservice.cpp

    r36290 r36843  
    164164        }
    165165
     166        // @todo use critsect only to fetch the list and update the g_SvcPresentFBO's pQueueHead and pQueueTail.
    166167        rc = RTCritSectEnter(&g_SvcPresentFBO.hQueueLock);
    167168        AssertRCReturn(rc, rc);
     
    12421243                    g_pConsole = pConsole;
    12431244
    1244                     /*rc = crVBoxServerSetOffscreenRendering(GL_TRUE);*/
    12451245                    rc = VINF_SUCCESS;
    12461246                }
     
    13491349
    13501350                rc = VINF_SUCCESS;
     1351            }
     1352            break;
     1353        }
     1354        case SHCRGL_HOST_FN_SET_OUTPUT_REDIRECT:
     1355        {
     1356            /*
     1357             * OutputRedirect.
     1358             * Note: the service calls OutputRedirect callbacks directly
     1359             *       and they must not block. If asynchronous processing is needed,
     1360             *       the callback provider must organize this.
     1361             */
     1362            Log(("svcCall: SHCRGL_HOST_FN_SET_OUTPUT_REDIRECT\n"));
     1363
     1364            /* Verify parameter count and types. */
     1365            if (cParms != SHCRGL_CPARMS_SET_OUTPUT_REDIRECT)
     1366            {
     1367                rc = VERR_INVALID_PARAMETER;
     1368            }
     1369            else if (paParms[0].type != VBOX_HGCM_SVC_PARM_PTR)
     1370            {
     1371                rc = VERR_INVALID_PARAMETER;
     1372            }
     1373            else
     1374            {
     1375                /* Fetch parameters. */
     1376                H3DOUTPUTREDIRECT *pOutputRedirect = (H3DOUTPUTREDIRECT *)paParms[0].u.pointer.addr;
     1377                uint32_t cbData = paParms[0].u.pointer.size;
     1378
     1379                /* Verify parameters values. */
     1380                if (cbData != sizeof (H3DOUTPUTREDIRECT))
     1381                {
     1382                    rc = VERR_INVALID_PARAMETER;
     1383                }
     1384                else /* Execute the function. */
     1385                {
     1386                    rc = crVBoxServerSetOffscreenRendering(GL_TRUE);
     1387
     1388                    if (RT_SUCCESS(rc))
     1389                    {
     1390                        CROutputRedirect or;
     1391                        or.pvContext = pOutputRedirect->pvContext;
     1392                        or.CRORBegin = pOutputRedirect->H3DORBegin;
     1393                        or.CRORGeometry = pOutputRedirect->H3DORGeometry;
     1394                        or.CRORVisibleRegion = pOutputRedirect->H3DORVisibleRegion;
     1395                        or.CRORFrame = pOutputRedirect->H3DORFrame;
     1396                        or.CROREnd = pOutputRedirect->H3DOREnd;
     1397                        or.CRORContextProperty = pOutputRedirect->H3DORContextProperty;
     1398                        rc = crVBoxServerOutputRedirectSet(&or);
     1399                    }
     1400                }
    13511401            }
    13521402            break;
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