Changeset 69870 in vbox
- Timestamp:
- Nov 29, 2017 5:20:04 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Graphics/DevVGA_VDMA.cpp
r69848 r69870 2441 2441 if (pBlt->cDstSubRects) 2442 2442 { 2443 VBOXVDMA_RECTL dstRectl, srcRectl;2444 const VBOXVDMA_RECTL *pDstRectl, *pSrcRectl;2445 2443 for (uint32_t i = 0; i < pBlt->cDstSubRects; ++i) 2446 2444 { 2447 pDstRectl = &pBlt->aDstSubRects[i]; 2448 if (pBlt->dstRectl.left || pBlt->dstRectl.top) 2449 { 2450 dstRectl.left = pDstRectl->left + pBlt->dstRectl.left; 2451 dstRectl.top = pDstRectl->top + pBlt->dstRectl.top; 2452 dstRectl.width = pDstRectl->width; 2453 dstRectl.height = pDstRectl->height; 2454 pDstRectl = &dstRectl; 2455 } 2456 2457 pSrcRectl = &pBlt->aDstSubRects[i]; 2458 if (pBlt->srcRectl.left || pBlt->srcRectl.top) 2459 { 2460 srcRectl.left = pSrcRectl->left + pBlt->srcRectl.left; 2461 srcRectl.top = pSrcRectl->top + pBlt->srcRectl.top; 2462 srcRectl.width = pSrcRectl->width; 2463 srcRectl.height = pSrcRectl->height; 2464 pSrcRectl = &srcRectl; 2465 } 2445 VBOXVDMA_RECTL dstSubRectl = pBlt->aDstSubRects[i]; 2446 VBOXVDMA_RECTL srcSubRectl = dstSubRectl; 2447 2448 dstSubRectl.left += pBlt->dstRectl.left; 2449 dstSubRectl.top += pBlt->dstRectl.top; 2450 2451 srcSubRectl.left += pBlt->srcRectl.left; 2452 srcSubRectl.top += pBlt->srcRectl.top; 2466 2453 2467 2454 int rc = vboxVDMACmdExecBltPerform(pVdma, pvRam + pBlt->offDst, pvRam + pBlt->offSrc, 2468 2455 &pBlt->dstDesc, &pBlt->srcDesc, 2469 pDstRectl,2470 pSrcRectl);2456 &dstSubRectl, 2457 &srcSubRectl); 2471 2458 AssertRC(rc); 2472 2459 if (!RT_SUCCESS(rc)) 2473 2460 return rc; 2474 2461 2475 vboxVDMARectlUnite(&updateRectl, pDstRectl);2462 vboxVDMARectlUnite(&updateRectl, &dstSubRectl); 2476 2463 } 2477 2464 }
Note:
See TracChangeset
for help on using the changeset viewer.