Lines Matching defs:pReg1

218 typedef DECLCALLBACK(int) FNVBOXVR_CB_COMPARATOR(PCVBOXVR_REG pReg1, PCVBOXVR_REG pReg2);
232 PVBOXVR_REG pReg1, pReg2;
233 RTListForEach(&pList->ListHead, pReg1, VBOXVR_REG, ListEntry)
235 Assert(!VBoxRectIsZero(&pReg1->Rect));
236 for (RTLISTNODE *pEntry2 = pReg1->ListEntry.pNext; pEntry2 != &pList->ListHead; pEntry2 = pEntry2->pNext)
239 Assert(vboxVrRegNonintersectedComparator(&pReg1->Rect, &pReg2->Rect) < 0);
295 PVBOXVR_REG pReg1 = PVBOXVR_REG_FROM_ENTRY(pEntry1);
296 if (vboxVrRegNonintersectedComparator(&pReg1->Rect, &pReg2->Rect) < 0)
311 static int vboxVrListRegIntersectSubstNoJoin(PVBOXVR_LIST pList1, PVBOXVR_REG pReg1, PCRTRECT pRect2)
318 RTRECT tmpRect = pReg1->Rect;
325 Assert(VBoxRectIsIntersect(&pReg1->Rect, pRect2));
327 if (pReg1->Rect.yTop < pRect2->yTop)
329 Assert(pRect2->yTop < pReg1->Rect.yBottom);
331 pRegResult->Rect.yTop = pReg1->Rect.yTop;
332 pRegResult->Rect.xLeft = pReg1->Rect.xLeft;
334 pRegResult->Rect.xRight = pReg1->Rect.xRight;
339 if (pReg1->Rect.yBottom > pRect2->yBottom)
341 Assert(pRect2->yBottom > pReg1->Rect.yTop);
344 pRegResult->Rect.xLeft = pReg1->Rect.xLeft;
345 pRegResult->Rect.yBottom = pReg1->Rect.yBottom;
346 pRegResult->Rect.xRight = pReg1->Rect.xRight;
351 if (pReg1->Rect.xLeft < pRect2->xLeft)
353 Assert(pRect2->xLeft < pReg1->Rect.xRight);
355 pRegResult->Rect.yTop = topLim == VBOXVR_INVALID_COORD ? pReg1->Rect.yTop : topLim;
356 pRegResult->Rect.xLeft = pReg1->Rect.xLeft;
357 pRegResult->Rect.yBottom = bottomLim == VBOXVR_INVALID_COORD ? pReg1->Rect.yBottom : bottomLim;
362 if (pReg1->Rect.xRight > pRect2->xRight)
364 Assert(pRect2->xRight > pReg1->Rect.xLeft);
366 pRegResult->Rect.yTop = topLim == VBOXVR_INVALID_COORD ? pReg1->Rect.yTop : topLim;
368 pRegResult->Rect.yBottom = bottomLim == VBOXVR_INVALID_COORD ? pReg1->Rect.yBottom : bottomLim;
369 pRegResult->Rect.xRight = pReg1->Rect.xRight;
376 PRTLISTNODE pMemberEntry = pReg1->ListEntry.pNext;
377 vboxVrListRegRemove(pList1, pReg1);
378 vboxVrRegTerm(pReg1);
399 * @param ppNext specifies next reg entry to be used for iteration. the default is pReg1->ListEntry.pNext */
400 typedef DECLCALLBACK(PRTLISTNODE) FNVBOXVR_CB_INTERSECTED_VISITOR(PVBOXVR_LIST pList1, PVBOXVR_REG pReg1,
414 PVBOXVR_REG pReg1 = PVBOXVR_REG_FROM_ENTRY(pEntry1);
421 if (!VBoxRectIsIntersect(&pReg1->Rect, pRect2))
425 pEntry1 = pfnVisitor (pList1, pReg1, pRect2, pvVisitor, &pNext1);
428 pReg1 = PVBOXVR_REG_FROM_ENTRY(pEntry1);
437 typedef DECLCALLBACK(PRTLISTNODE) FNVBOXVR_CB_NONINTERSECTED_VISITOR(PVBOXVR_LIST pList1, PVBOXVR_REG pReg1, void *pvContext);
449 PVBOXVR_REG pReg1 = PVBOXVR_REG_FROM_ENTRY(pEntry1);
457 if (VBoxRectIsIntersect(&pReg1->Rect, pRect2))
462 pNext1 = pfnVisitor(pList1, pReg1, pvVisitor);
474 PVBOXVR_REG pReg1 = PVBOXVR_REG_FROM_ENTRY(pEntry1);
482 if (pReg1->Rect.yTop == pReg2->Rect.yTop)
484 if (pReg1->Rect.xRight == pReg2->Rect.xLeft)
488 if (pReg1->Rect.yBottom > pReg2->Rect.yBottom)
490 int32_t oldRight1 = pReg1->Rect.xRight;
491 int32_t oldBottom1 = pReg1->Rect.yBottom;
492 pReg1->Rect.xRight = pReg2->Rect.xRight;
493 pReg1->Rect.yBottom = pReg2->Rect.yBottom;
497 pReg2->Rect.xLeft = pReg1->Rect.xLeft;
498 pReg2->Rect.yTop = pReg1->Rect.yBottom;
501 vboxVrListRegAddOrder(pList, pReg1->ListEntry.pNext, pReg2);
508 if (pReg1->Rect.yBottom < pReg2->Rect.yBottom)
510 pReg1->Rect.xRight = pReg2->Rect.xRight;
512 pReg2->Rect.yTop = pReg1->Rect.yBottom;
513 vboxVrListRegAddOrder(pList, pReg1->ListEntry.pNext, pReg2);
520 pReg1->Rect.xRight = pReg2->Rect.xRight;
529 else if (pReg1->Rect.yBottom == pReg2->Rect.yBottom)
531 Assert(pReg1->Rect.yTop < pReg2->Rect.yTop); /* <- since pReg1 > pReg2 && pReg1->Rect.yTop != pReg2->Rect.yTop*/
532 if (pReg1->Rect.xRight == pReg2->Rect.xLeft)
537 pReg1->Rect.yBottom = pReg2->Rect.yTop;
539 pReg2->Rect.xLeft = pReg1->Rect.xLeft;
549 if (pReg1->Rect.xLeft == pReg2->Rect.xRight)
554 pReg1->Rect.yBottom = pReg2->Rect.yTop;
556 pReg2->Rect.xRight = pReg1->Rect.xRight;
570 if (pReg1->Rect.yBottom == pReg2->Rect.yTop)
572 if (pReg1->Rect.xLeft == pReg2->Rect.xLeft)
574 if (pReg1->Rect.xRight == pReg2->Rect.xRight)
579 pReg1->Rect.yBottom = pReg2->Rect.yBottom;
588 /* no more to be done for for pReg1 */
592 if (pReg1->Rect.xRight > pReg2->Rect.xLeft)
594 /* no more to be done for for pReg1 */
601 if (pReg1->Rect.yBottom < pReg2->Rect.yTop)
603 /* no more to be done for for pReg1 */
624 static DECLCALLBACK(PRTLISTNODE) vboxVrListSubstNoJoinCb(PVBOXVR_LIST pList, PVBOXVR_REG pReg1, PCRTRECT pRect2,
629 PRTLISTNODE pPrev = pReg1->ListEntry.pPrev;
632 Assert(VBoxRectIsIntersect(&pReg1->Rect, pRect2));
634 /* NOTE: the pReg1 will be invalid after the vboxVrListRegIntersectSubstNoJoin call!!! */
635 int rc = vboxVrListRegIntersectSubstNoJoin(pList, pReg1, pRect2);
739 PVBOXVR_REG pReg1 = PVBOXVR_REG_FROM_ENTRY(pEntry1);
740 VBoxRectTranslate(&pReg1->Rect, x, y);
744 static DECLCALLBACK(PRTLISTNODE) vboxVrListIntersectNoJoinNonintersectedCb(PVBOXVR_LIST pList1, PVBOXVR_REG pReg1, void *pvContext)
748 PRTLISTNODE pNext = pReg1->ListEntry.pNext;
752 vboxVrListRegRemove(pList1, pReg1);
753 vboxVrRegTerm(pReg1);
762 static DECLCALLBACK(PRTLISTNODE) vboxVrListIntersectNoJoinIntersectedCb(PVBOXVR_LIST pList1, PVBOXVR_REG pReg1, PCRTRECT pRect2,
770 PRTLISTNODE pMemberEntry = pReg1->ListEntry.pNext;
772 Assert(VBoxRectIsIntersect(&pReg1->Rect, pRect2));
775 vboxVrListRegRemove(pList1, pReg1);
776 VBoxRectIntersect(&pReg1->Rect, pRect2);
777 Assert(!VBoxRectIsZero(&pReg1->Rect));
779 vboxVrListRegAddOrder(pList1, pMemberEntry, pReg1);
783 return &pReg1->ListEntry;
808 PVBOXVR_REG pReg1 = PVBOXVR_REG_FROM_ENTRY(pEntry1);
809 RTRECT RegRect1 = pReg1->Rect;
810 PRTLISTNODE pMemberEntry = pReg1->ListEntry.pNext;
820 if (pReg1)
826 /* zero up the pReg1 to mark it as intersected (see the code after this inner loop) */
827 pReg1 = NULL;
842 vboxVrListRegRemove(pList, pReg1);
843 VBoxRectIntersect(&pReg1->Rect, pRect2);
844 Assert(!VBoxRectIsZero(&pReg1->Rect));
846 vboxVrListRegAddOrder(pList, pMemberEntry, pReg1);
847 pReg1 = NULL;
865 if (pReg1)
868 vboxVrListRegRemove(pList, pReg1);
869 vboxVrRegTerm(pReg1);
1032 PVBOXVR_REG pReg1 = PVBOXVR_REG_FROM_ENTRY(pEntry1);
1034 if (VBoxRectCovers(&pReg1->Rect, &aRects[i]))
1144 PVBOXVR_REG pReg1 = PVBOXVR_REG_FROM_ENTRY(pEntry1);
1145 aRects[i] = pReg1->Rect;
1156 PVBOXVR_REG pReg1, pReg2;
1158 for (pReg1 = RTListNodeGetNext(&pList1->ListHead, VBOXVR_REG, ListEntry),
1161 !RTListNodeIsDummy(&pList1->ListHead, pReg1, VBOXVR_REG, ListEntry);
1163 pReg1 = RT_FROM_MEMBER(pReg1->ListEntry.pNext, VBOXVR_REG, ListEntry),
1167 cTmp = VBoxRectCmp(&pReg1->Rect, &pReg2->Rect);