Changeset 83142 in vbox for trunk/src/VBox/Additions
- Timestamp:
- Feb 24, 2020 7:24:26 PM (5 years ago)
- svn:sync-xref-src-repo-rev:
- 136260
- Location:
- trunk/src/VBox/Additions
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/common/VBoxGuest/VBoxGuest.cpp
r82968 r83142 2388 2388 case VMMDevReq_VideoAccelFlush: 2389 2389 case VMMDevReq_VideoSetVisibleRegion: 2390 case VMMDevReq_VideoUpdateMonitorPositions: 2390 2391 case VMMDevReq_GetDisplayChangeRequestEx: 2391 2392 case VMMDevReq_GetDisplayChangeRequestMulti: … … 4504 4505 return fOurIrq; 4505 4506 } 4506 -
trunk/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR0LibGenericRequest.cpp
r82968 r83142 96 96 || pReq->requestType == VMMDevReq_LogString 97 97 || pReq->requestType == VMMDevReq_SetPointerShape 98 || pReq->requestType == VMMDevReq_VideoSetVisibleRegion) 98 || pReq->requestType == VMMDevReq_VideoSetVisibleRegion 99 || pReq->requestType == VMMDevReq_VideoUpdateMonitorPositions) 99 100 { 100 101 if (RT_UNLIKELY(cbReq > VMMDEV_MAX_VMMDEVREQ_SIZE)) … … 181 182 VbglR0PhysHeapFree(pReq); 182 183 } 183 -
trunk/src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibSeamless.cpp
r82968 r83142 171 171 } 172 172 173 VBGLR3DECL(int) VbglR3SeamlessSendMonitorPositions(uint32_t cPositions, PRTPOINT pPositions) 174 { 175 VMMDevVideoUpdateMonitorPositions *pReq; 176 int rc; 177 178 AssertReturn(cPositions || cPositions == 0, VERR_INVALID_PARAMETER); 179 //AssertMsgReturn(cRects <= _1M, ("%u\n", cRects), VERR_OUT_OF_RANGE); 180 181 rc = vbglR3GRAlloc((VMMDevRequestHeader **)&pReq, 182 sizeof(VMMDevVideoUpdateMonitorPositions) 183 + cPositions * sizeof(RTPOINT) 184 - sizeof(RTPOINT), 185 VMMDevReq_VideoUpdateMonitorPositions); 186 if (RT_SUCCESS(rc)) 187 { 188 pReq->cPositions = cPositions; 189 if (cPositions) 190 memcpy(&pReq->aPositions, pPositions, cPositions * sizeof(RTPOINT)); 191 rc = vbglR3GRPerform(&pReq->header); 192 LogFunc(("Monitor position update request returned %Rrc, internal %Rrc.\n", 193 rc, pReq->header.rc)); 194 if (RT_SUCCESS(rc)) 195 rc = pReq->header.rc; 196 vbglR3GRFree(&pReq->header); 197 } 198 LogFunc(("Sending monitor positions (%u of them) to the host: %Rrc\n", cPositions, rc)); 199 return rc; 200 } -
trunk/src/VBox/Additions/x11/VBoxClient/display-svga-x11.cpp
r83140 r83142 142 142 } 143 143 144 static void sendMonitorPositions(RTPOINT *pPositions, size_t cPositions) 145 { 146 if (cPositions && !pPositions) 147 { 148 VBClLogError(("Monitor position update called with NULL pointer!\n")); 149 return; 150 } 151 VbglR3SeamlessSendMonitorPositions(cPositions, pPositions); 152 } 153 144 154 static void queryMonitorPositions() 145 155 { … … 181 191 mpMonitorPositions[iMonitorID].y = pMonitorInfo[i].y; 182 192 } 183 //if (iMonitorCount > 0)184 //mHostMonitorPositionSendCallback(mpMonitorPositions, x11Context.hOutputCount);193 if (iMonitorCount > 0) 194 mHostMonitorPositionSendCallback(mpMonitorPositions, x11Context.hOutputCount); 185 195 } 186 196 XRRFreeMonitors(pMonitorInfo);
Note:
See TracChangeset
for help on using the changeset viewer.