Changeset 107630 in vbox for trunk/src/VBox/Devices
- Timestamp:
- Jan 10, 2025 10:35:52 AM (4 weeks ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Graphics/DevVGA_VBVA.cpp
r106061 r107630 437 437 } 438 438 439 if (cbCmd != 0) 440 { 441 if (!fUpdate) 442 { 443 pThisCC->pDrv->pfnVBVAUpdateBegin(pThisCC->pDrv, uScreenId); 444 fUpdate = true; 445 } 446 447 /* Updates the rectangle and sends the command to the VRDP server. */ 448 pThisCC->pDrv->pfnVBVAUpdateProcess(pThisCC->pDrv, uScreenId, pHdr, cbCmd); 449 450 int32_t xRight = pHdr->x + pHdr->w; 451 int32_t yBottom = pHdr->y + pHdr->h; 452 453 /* These are global coords, relative to the primary screen. */ 454 455 LOGVBVABUFFER(("cbCmd = %d, x=%d, y=%d, w=%d, h=%d\n", cbCmd, pHdr->x, pHdr->y, pHdr->w, pHdr->h)); 456 LogRel3(("%s: update command cbCmd = %d, x=%d, y=%d, w=%d, h=%d\n", 457 __FUNCTION__, cbCmd, pHdr->x, pHdr->y, pHdr->w, pHdr->h)); 458 459 /* Collect all rects into one. */ 460 if (fDirtyEmpty) 461 { 462 /* This is the first rectangle to be added. */ 463 dirtyRect.xLeft = pHdr->x; 464 dirtyRect.yTop = pHdr->y; 465 dirtyRect.xRight = xRight; 439 if (!fUpdate) 440 { 441 pThisCC->pDrv->pfnVBVAUpdateBegin(pThisCC->pDrv, uScreenId); 442 fUpdate = true; 443 } 444 445 /* Updates the rectangle and sends the command to the VRDP server. */ 446 pThisCC->pDrv->pfnVBVAUpdateProcess(pThisCC->pDrv, uScreenId, pHdr, cbCmd); 447 448 int32_t xRight = pHdr->x + pHdr->w; 449 int32_t yBottom = pHdr->y + pHdr->h; 450 451 /* These are global coords, relative to the primary screen. */ 452 453 LOGVBVABUFFER(("cbCmd = %d, x=%d, y=%d, w=%d, h=%d\n", cbCmd, pHdr->x, pHdr->y, pHdr->w, pHdr->h)); 454 LogRel3(("%s: update command cbCmd = %d, x=%d, y=%d, w=%d, h=%d\n", 455 __FUNCTION__, cbCmd, pHdr->x, pHdr->y, pHdr->w, pHdr->h)); 456 457 /* Collect all rects into one. */ 458 if (fDirtyEmpty) 459 { 460 /* This is the first rectangle to be added. */ 461 dirtyRect.xLeft = pHdr->x; 462 dirtyRect.yTop = pHdr->y; 463 dirtyRect.xRight = xRight; 464 dirtyRect.yBottom = yBottom; 465 fDirtyEmpty = false; 466 } 467 else 468 { 469 /* Adjust region coordinates. */ 470 if (dirtyRect.xLeft > pHdr->x) 471 { 472 dirtyRect.xLeft = pHdr->x; 473 } 474 475 if (dirtyRect.yTop > pHdr->y) 476 { 477 dirtyRect.yTop = pHdr->y; 478 } 479 480 if (dirtyRect.xRight < xRight) 481 { 482 dirtyRect.xRight = xRight; 483 } 484 485 if (dirtyRect.yBottom < yBottom) 486 { 466 487 dirtyRect.yBottom = yBottom; 467 fDirtyEmpty = false;468 }469 else470 {471 /* Adjust region coordinates. */472 if (dirtyRect.xLeft > pHdr->x)473 {474 dirtyRect.xLeft = pHdr->x;475 }476 477 if (dirtyRect.yTop > pHdr->y)478 {479 dirtyRect.yTop = pHdr->y;480 }481 482 if (dirtyRect.xRight < xRight)483 {484 dirtyRect.xRight = xRight;485 }486 487 if (dirtyRect.yBottom < yBottom)488 {489 dirtyRect.yBottom = yBottom;490 }491 488 } 492 489 }
Note:
See TracChangeset
for help on using the changeset viewer.