Changeset 49332 in vbox for trunk/include
- Timestamp:
- Oct 30, 2013 1:13:02 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/VBoxVideo.h
r44529 r49332 1422 1422 VBOXVDMACMD_CHROMIUM_CTL_TYPE_SAVESTATE_END, 1423 1423 VBOXVDMACMD_CHROMIUM_CTL_TYPE_CRHGSMI_SETUP_COMPLETION, 1424 VBOXVDMACMD_CHROMIUM_CTL_TYPE_CRCONNECT, 1424 1425 VBOXVDMACMD_CHROMIUM_CTL_TYPE_SIZEHACK = 0xfffffffe 1425 1426 } VBOXVDMACMD_CHROMIUM_CTL_TYPE; … … 1442 1443 } VBOXVDMACMD_CHROMIUM_CTL_CRHGSMI_SETUP, *PVBOXVDMACMD_CHROMIUM_CTL_CRHGSMI_SETUP; 1443 1444 1445 1444 1446 typedef struct PDMIDISPLAYVBVACALLBACKS *HCRHGSMICMDCOMPLETION; 1445 1447 typedef DECLCALLBACK(int) FNCRHGSMICMDCOMPLETION(HCRHGSMICMDCOMPLETION hCompletion, PVBOXVDMACMD_CHROMIUM_CMD pCmd, int rc); … … 1452 1454 PFNCRHGSMICMDCOMPLETION pfnCompletion; 1453 1455 } VBOXVDMACMD_CHROMIUM_CTL_CRHGSMI_SETUP_COMPLETION, *PVBOXVDMACMD_CHROMIUM_CTL_CRHGSMI_SETUP_COMPLETION; 1456 1457 typedef struct VBOXCRCON_SERVER *HVBOXCRCON_SERVER; 1458 typedef struct PDMIDISPLAYVBVACALLBACKS* HVBOXCRCON_CLIENT; 1459 1460 typedef struct VBOXCRCON_3DRGN_CLIENT* HVBOXCRCON_3DRGN_CLIENT; 1461 typedef struct VBOXCRCON_3DRGN_ASYNCCLIENT* HVBOXCRCON_3DRGN_ASYNCCLIENT; 1462 1463 /* server callbacks */ 1464 /* submit chromium cmd */ 1465 typedef DECLCALLBACK(int) FNVBOXCRCON_SVR_CRCMD(HVBOXCRCON_SERVER hServer, PVBOXVDMACMD_CHROMIUM_CMD pCmd, uint32_t cbCmd); 1466 typedef FNVBOXCRCON_SVR_CRCMD *PFNVBOXCRCON_SVR_CRCMD; 1467 1468 /* submit chromium control cmd */ 1469 typedef DECLCALLBACK(int) FNVBOXCRCON_SVR_CRCTL(HVBOXCRCON_SERVER hServer, PVBOXVDMACMD_CHROMIUM_CTL pCtl, uint32_t cbCmd); 1470 typedef FNVBOXCRCON_SVR_CRCTL *PFNVBOXCRCON_SVR_CRCTL; 1471 1472 /* request 3D data. 1473 * The protocol is the following: 1474 * 1. if there is no 3D data displayed on screen, returns VINF_EOF immediately w/o calling any PFNVBOXCRCON_3DRGN_XXX callbacks 1475 * 2. otherwise calls PFNVBOXCRCON_3DRGN_ONSUBMIT, submits the "regions get" request to the CrOpenGL server to process it asynchronously and returns VINF_SUCCESS 1476 * 2.a on "regions get" request processing calls PFNVBOXCRCON_3DRGN_BEGIN, 1477 * 2.b then PFNVBOXCRCON_3DRGN_REPORT zero or more times for each 3D region, 1478 * 2.c and then PFNVBOXCRCON_3DRGN_END 1479 * 3. returns VERR_XXX code on failure 1480 * */ 1481 typedef DECLCALLBACK(int) FNVBOXCRCON_SVR_3DRGN_GET(HVBOXCRCON_SERVER hServer, HVBOXCRCON_3DRGN_CLIENT hRgnClient, uint32_t idScreen); 1482 typedef FNVBOXCRCON_SVR_3DRGN_GET *PFNVBOXCRCON_SVR_3DRGN_GET; 1483 1484 /* 3D Regions Client callbacks */ 1485 /* called from the PFNVBOXCRCON_SVR_3DRGN_GET callback in case server has 3D data and is going to process the request asynchronously, 1486 * see comments for PFNVBOXCRCON_SVR_3DRGN_GET above */ 1487 typedef DECLCALLBACK(int) FNVBOXCRCON_3DRGN_ONSUBMIT(HVBOXCRCON_3DRGN_CLIENT hRgnClient, uint32_t idScreen, HVBOXCRCON_3DRGN_ASYNCCLIENT *phRgnAsyncClient); 1488 typedef FNVBOXCRCON_3DRGN_ONSUBMIT *PFNVBOXCRCON_3DRGN_ONSUBMIT; 1489 1490 /* called from the "regions get" command processing thread, to indicate that the "regions get" is started. 1491 * see comments for PFNVBOXCRCON_SVR_3DRGN_GET above */ 1492 typedef DECLCALLBACK(int) FNVBOXCRCON_3DRGN_BEGIN(HVBOXCRCON_3DRGN_ASYNCCLIENT hRgnAsyncClient, uint32_t idScreen); 1493 typedef FNVBOXCRCON_3DRGN_BEGIN *PFNVBOXCRCON_3DRGN_BEGIN; 1494 1495 /* called from the "regions get" command processing thread, to report a 3D region. 1496 * see comments for PFNVBOXCRCON_SVR_3DRGN_GET above */ 1497 typedef DECLCALLBACK(int) FNVBOXCRCON_3DRGN_REPORT(HVBOXCRCON_3DRGN_ASYNCCLIENT hRgnAsyncClient, uint32_t idScreen, void *pvData, uint32_t cbStride, const RTRECT *pRect); 1498 typedef FNVBOXCRCON_3DRGN_REPORT *PFNVBOXCRCON_3DRGN_REPORT; 1499 1500 /* called from the "regions get" command processing thread, to indicate that the "regions get" is completed. 1501 * see comments for PFNVBOXCRCON_SVR_3DRGN_GET above */ 1502 typedef DECLCALLBACK(int) FNVBOXCRCON_3DRGN_END(HVBOXCRCON_3DRGN_ASYNCCLIENT hRgnAsyncClient, uint32_t idScreen); 1503 typedef FNVBOXCRCON_3DRGN_END *PFNVBOXCRCON_3DRGN_END; 1504 1505 1506 /* client callbacks */ 1507 /* complete chromium cmd */ 1508 typedef DECLCALLBACK(int) FNVBOXCRCON_CLT_CRCTL_COMPLETE(HVBOXCRCON_CLIENT hClient, PVBOXVDMACMD_CHROMIUM_CTL pCtl, int rc); 1509 typedef FNVBOXCRCON_CLT_CRCTL_COMPLETE *PFNVBOXCRCON_CLT_CRCTL_COMPLETE; 1510 1511 /* complete chromium control cmd */ 1512 typedef DECLCALLBACK(int) FNVBOXCRCON_CLT_CRCMD_COMPLETE(HVBOXCRCON_CLIENT hClient, PVBOXVDMACMD_CHROMIUM_CMD pCmd, int rc); 1513 typedef FNVBOXCRCON_CLT_CRCMD_COMPLETE *PFNVBOXCRCON_CLT_CRCMD_COMPLETE; 1514 1515 typedef struct VBOXCRCON_SERVER_CALLBACKS 1516 { 1517 HVBOXCRCON_SERVER hServer; 1518 PFNVBOXCRCON_SVR_CRCMD pfnCrCmd; 1519 PFNVBOXCRCON_SVR_CRCTL pfnCrCtl; 1520 PFNVBOXCRCON_SVR_3DRGN_GET pfn3DRgnGet; 1521 } VBOXCRCON_SERVER_CALLBACKS, *PVBOXCRCON_SERVER_CALLBACKS; 1522 1523 typedef struct VBOXCRCON_CLIENT_CALLBACKS 1524 { 1525 HVBOXCRCON_CLIENT hClient; 1526 PFNVBOXCRCON_CLT_CRCMD_COMPLETE pfnCrCmdComplete; 1527 PFNVBOXCRCON_CLT_CRCTL_COMPLETE pfnCrCtlComplete; 1528 PFNVBOXCRCON_3DRGN_ONSUBMIT pfn3DRgnOnSubmit; 1529 PFNVBOXCRCON_3DRGN_BEGIN pfn3DRgnBegin; 1530 PFNVBOXCRCON_3DRGN_REPORT pfn3DRgnReport; 1531 PFNVBOXCRCON_3DRGN_END pfn3DRgnEnd; 1532 } VBOXCRCON_CLIENT_CALLBACKS, *PVBOXCRCON_CLIENT_CALLBACKS; 1533 1534 /* issued by Main to establish connection between Main and CrOpenGL service */ 1535 typedef struct VBOXVDMACMD_CHROMIUM_CTL_CRCONNECT 1536 { 1537 VBOXVDMACMD_CHROMIUM_CTL Hdr; 1538 /*input (filled by Client) :*/ 1539 /*class VMMDev*/void *pVMMDev; 1540 VBOXCRCON_CLIENT_CALLBACKS ClientCallbacks; 1541 /*output (filled by Server) :*/ 1542 VBOXCRCON_SERVER_CALLBACKS ServerCallbacks; 1543 } VBOXVDMACMD_CHROMIUM_CTL_CRCONNECT, *PVBOXVDMACMD_CHROMIUM_CTL_CRCONNECT; 1544 1454 1545 # pragma pack() 1546 1455 1547 #endif 1456 1548
Note:
See TracChangeset
for help on using the changeset viewer.