Changeset 50250 in vbox for trunk/src/VBox/Main/src-client
- Timestamp:
- Jan 28, 2014 9:13:59 AM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 91870
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/src-client/DisplayImpl.cpp
r50178 r50250 935 935 VMMDev *pVMMDev = mParent->getVMMDev(); 936 936 if (pVMMDev) 937 pVMMDev->hgcmHostCall("VBoxSharedCrOpenGL", SHCRGL_HOST_FN_SCREEN_CHANGED, SHCRGL_CPARMS_SCREEN_CHANGED, &parm); 937 { 938 if (mhCrOglSvc) 939 pVMMDev->hgcmHostFastCallAsync(mhCrOglSvc, SHCRGL_HOST_FN_SCREEN_CHANGED, &parm, NULL, NULL); 940 else 941 AssertMsgFailed(("mhCrOglSvc is NULL\n")); 942 } 938 943 } 939 944 } … … 1251 1256 if (is3denabled && vmmDev) 1252 1257 { 1253 VBOXHGCMSVCPARM parms[2]; 1254 1255 parms[0].type = VBOX_HGCM_SVC_PARM_PTR; 1256 parms[0].u.pointer.addr = pRect; 1257 parms[0].u.pointer.size = 0; /* We don't actually care. */ 1258 parms[1].type = VBOX_HGCM_SVC_PARM_32BIT; 1259 parms[1].u.uint32 = cRect; 1260 1261 vmmDev->hgcmHostCall("VBoxSharedCrOpenGL", SHCRGL_HOST_FN_SET_VISIBLE_REGION, 2, &parms[0]); 1258 if (mhCrOglSvc) 1259 { 1260 RTRECT *pRectsCopy = (RTRECT *)RTMemAlloc( RT_MAX(cRect, 1) 1261 * sizeof (RTRECT)); 1262 if (pRectsCopy) 1263 { 1264 memcpy(pRectsCopy, pRect, cRect * sizeof (RTRECT)); 1265 1266 VBOXHGCMSVCPARM parm; 1267 1268 parm.type = VBOX_HGCM_SVC_PARM_PTR; 1269 parm.u.pointer.addr = pRectsCopy; 1270 parm.u.pointer.size = cRect * sizeof (RTRECT); 1271 1272 vmmDev->hgcmHostFastCallAsync(mhCrOglSvc, SHCRGL_HOST_FN_SET_VISIBLE_REGION, &parm, displayCrAsyncCmdCompletion, this); 1273 } 1274 else 1275 AssertMsgFailed(("failed to allocate rects memory\n")); 1276 } 1277 else 1278 AssertMsgFailed(("mhCrOglSvc is NULL\n")); 1262 1279 } 1263 1280 #endif … … 1674 1691 if (cbDst >= VBVA_RING_BUFFER_SIZE) 1675 1692 { 1676 AssertMsgFailed (("cbDst = 0x%08X, ring buffer size 0x%08X ", cbDst, VBVA_RING_BUFFER_SIZE));1693 AssertMsgFailed (("cbDst = 0x%08X, ring buffer size 0x%08X\n", cbDst, VBVA_RING_BUFFER_SIZE)); 1677 1694 return; 1678 1695 } … … 2214 2231 2215 2232 if (pVMMDev) 2216 vrc = pVMMDev->hgcmHostCall("VBoxSharedCrOpenGL", SHCRGL_HOST_FN_SCREEN_CHANGED, SHCRGL_CPARMS_SCREEN_CHANGED, &parm); 2233 { 2234 if (mhCrOglSvc) 2235 pVMMDev->hgcmHostFastCallAsync(mhCrOglSvc, SHCRGL_HOST_FN_SCREEN_CHANGED, &parm, NULL, NULL); 2236 else 2237 AssertMsgFailed(("mhCrOglSvc is NULL\n")); 2238 } 2217 2239 /*ComAssertRCRet (vrc, E_FAIL);*/ 2218 2240 … … 2345 2367 if (is3denabled && vmmDev) 2346 2368 { 2347 VBOXHGCMSVCPARM parm s[2];2348 2349 parm s[0].type = VBOX_HGCM_SVC_PARM_PTR;2369 VBOXHGCMSVCPARM parm; 2370 2371 parm.type = VBOX_HGCM_SVC_PARM_PTR; 2350 2372 /* NULL means disable */ 2351 parms[0].u.pointer.addr = NULL; 2352 parms[0].u.pointer.size = 0; /* We don't actually care. */ 2353 parms[1].type = VBOX_HGCM_SVC_PARM_32BIT; 2354 parms[1].u.uint32 = 0; 2355 2356 vmmDev->hgcmHostCall("VBoxSharedCrOpenGL", SHCRGL_HOST_FN_SET_VISIBLE_REGION, 2, &parms[0]); 2373 parm.u.pointer.addr = NULL; 2374 parm.u.pointer.size = 0; /* <- means null rects, NULL pRects address and 0 rects means "disable" */ 2375 2376 if (mhCrOglSvc) 2377 vmmDev->hgcmHostFastCallAsync(mhCrOglSvc, SHCRGL_HOST_FN_SET_VISIBLE_REGION, &parm, NULL, NULL); 2378 else 2379 AssertMsgFailed(("mhCrOglSvc is NULL\n")); 2380 2357 2381 } 2358 2382 } … … 3312 3336 void Display::crViewportNotify(VMMDev *pVMMDev, ULONG aScreenId, ULONG x, ULONG y, ULONG width, ULONG height) 3313 3337 { 3314 VBOXHGCMSVCPARM aParms[5]; 3315 3316 aParms[0].type = VBOX_HGCM_SVC_PARM_32BIT; 3317 aParms[0].u.uint32 = aScreenId; 3318 3319 aParms[1].type = VBOX_HGCM_SVC_PARM_32BIT; 3320 aParms[1].u.uint32 = x; 3321 3322 aParms[2].type = VBOX_HGCM_SVC_PARM_32BIT; 3323 aParms[2].u.uint32 = y; 3324 3325 3326 aParms[3].type = VBOX_HGCM_SVC_PARM_32BIT; 3327 aParms[3].u.uint32 = width; 3328 3329 aParms[4].type = VBOX_HGCM_SVC_PARM_32BIT; 3330 aParms[4].u.uint32 = height; 3331 3332 pVMMDev->hgcmHostCall("VBoxSharedCrOpenGL", SHCRGL_HOST_FN_VIEWPORT_CHANGED, SHCRGL_CPARMS_VIEWPORT_CHANGED, aParms); 3338 VBOXHGCMSVCPARM parm; 3339 3340 CRVBOXHGCMVIEWPORT *pViewportInfo = (CRVBOXHGCMVIEWPORT*)RTMemAlloc(sizeof (*pViewportInfo)); 3341 if(!pViewportInfo) 3342 { 3343 AssertMsgFailed(("RTMemAlloc failed!\n")); 3344 return; 3345 } 3346 3347 pViewportInfo->u32Screen = aScreenId; 3348 pViewportInfo->x = x; 3349 pViewportInfo->y = y; 3350 pViewportInfo->width = width; 3351 pViewportInfo->height = height; 3352 3353 parm.type = VBOX_HGCM_SVC_PARM_PTR; 3354 parm.u.pointer.addr = pViewportInfo; 3355 parm.u.pointer.size = sizeof (*pViewportInfo); 3356 3357 pVMMDev->hgcmHostFastCallAsync(mhCrOglSvc, SHCRGL_HOST_FN_VIEWPORT_CHANGED, &parm, displayCrAsyncCmdCompletion, this); 3333 3358 3334 3359 }
Note:
See TracChangeset
for help on using the changeset viewer.