Changeset 6518 in vbox
- Timestamp:
- Jan 28, 2008 4:39:32 AM (17 years ago)
- svn:sync-xref-src-repo-rev:
- 27535
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/VBoxGuest.h
r6510 r6518 1422 1422 VBGLR3DECL(int) VbglR3VideoAccelEnable(bool fEnable); 1423 1423 VBGLR3DECL(int) VbglR3VideoAccelFlush(void); 1424 VBGLR3DECL(int) VbglR3SetPointerShape(uint32_t fFlags, uint32_t xHot, uint32_t yHot, uint32_t cx, uint32_t cy, const void *pvImg, size_t cb Req);1424 VBGLR3DECL(int) VbglR3SetPointerShape(uint32_t fFlags, uint32_t xHot, uint32_t yHot, uint32_t cx, uint32_t cy, const void *pvImg, size_t cbImg); 1425 1425 /** @} */ 1426 1426 -
trunk/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibVideo.cpp
r6510 r6518 68 68 * @param cy Pointer height. 69 69 * @param pvImg Pointer to the image data (can be NULL). 70 * @param cb Req The complete size of the request.70 * @param cbImg Size of the image data pointed to by pvImg. 71 71 */ 72 VBGLR3DECL(int) VbglR3SetPointerShape(uint32_t fFlags, uint32_t xHot, uint32_t yHot, uint32_t cx, uint32_t cy, const void *pvImg, size_t cb Req)72 VBGLR3DECL(int) VbglR3SetPointerShape(uint32_t fFlags, uint32_t xHot, uint32_t yHot, uint32_t cx, uint32_t cy, const void *pvImg, size_t cbImg) 73 73 { 74 74 VMMDevReqMousePointer *pReq; 75 int rc = vbglR3GRAlloc((VMMDevRequestHeader **)&pReq, cbReq, VMMDevReq_SetPointerShape);75 int rc = vbglR3GRAlloc((VMMDevRequestHeader **)&pReq, RT_OFFSETOF(VMMDevReqMousePointer, pointerData) + cbImg, VMMDevReq_SetPointerShape); 76 76 if (RT_SUCCESS(rc)) 77 77 { … … 82 82 pReq->height = cy; 83 83 if (pvImg) 84 memcpy(pReq->pointerData, pvImg, cb Req - sizeof(VMMDevReqMousePointer) + sizeof(pReq->pointerData));84 memcpy(pReq->pointerData, pvImg, cbImg); 85 85 86 86 rc = vbglR3GRPerform(&pReq->header); -
trunk/src/VBox/Additions/x11/xgraphics/vboxutils-new.c
r6510 r6518 345 345 pVBox->reqp = p; 346 346 pVBox->pCurs = NULL; 347 pVBox->use _hw_cursor = vbox_host_can_hwcursor(pScrn, pVBox);348 pVBox-> set_pointer_shape_size = size;349 pVBox->pointer _offscreen = FALSE;347 pVBox->useHwCursor = vbox_host_can_hwcursor(pScrn, pVBox); 348 pVBox->pointerHeaderSize = size; 349 pVBox->pointerOffscreen = FALSE; 350 350 pVBox->useVbva = vboxInitVbva(scrnIndex, pScreen, pVBox); 351 351 return TRUE; … … 366 366 rc = VbglR3SetPointerShape(0, pVBox->reqp->xHot, pVBox->reqp->yHot, pVBox->reqp->width, 367 367 pVBox->reqp->height, pVBox->reqp->pointerData, 368 pVBox-> reqp->header.size);368 pVBox->pointerSize); 369 369 if (RT_FAILURE(rc)) 370 370 xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Could not hide the virtual mouse pointer.\n"); … … 378 378 rc = VbglR3SetPointerShape(VBOX_MOUSE_POINTER_VISIBLE, pVBox->reqp->xHot, pVBox->reqp->yHot, 379 379 pVBox->reqp->width, pVBox->reqp->height, pVBox->reqp->pointerData, 380 pVBox-> reqp->header.size);380 pVBox->pointerSize); 381 381 if (RT_FAILURE(rc)) 382 382 xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Could not unhide the virtual mouse pointer.\n"); … … 397 397 398 398 rc = VbglR3SetPointerShape(reqp->fFlags, reqp->xHot, reqp->yHot, reqp->width, reqp->height, 399 reqp->pointerData, reqp->header.size);399 reqp->pointerData, pVBox->pointerSize); 400 400 if (RT_FAILURE(rc)) 401 401 xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Unable to set the virtual mouse pointer image.\n"); … … 426 426 || (y < 0 || y > pScrn->pScreen->height)) 427 427 { 428 if (!pVBox->pointer _offscreen)429 { 430 pVBox->pointer _offscreen = TRUE;428 if (!pVBox->pointerOffscreen) 429 { 430 pVBox->pointerOffscreen = TRUE; 431 431 vbox_vmm_hide_cursor(pScrn, pVBox); 432 432 } … … 434 434 else 435 435 { 436 if (pVBox->pointer _offscreen)437 { 438 pVBox->pointer _offscreen = FALSE;436 if (pVBox->pointerOffscreen) 437 { 438 pVBox->pointerOffscreen = FALSE; 439 439 vbox_vmm_show_cursor(pScrn, pVBox); 440 440 } … … 478 478 ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; 479 479 VBOXPtr pVBox = pScrn->driverPrivate; 480 return pVBox->use _hw_cursor;480 return pVBox->useHwCursor; 481 481 } 482 482 … … 517 517 size_mask = ((dst_pitch * h) + 3) & (size_t) ~3; 518 518 size_rgba = w * h * 4; 519 size = size_mask + size_rgba + pVBox->set_pointer_shape_size; 519 pVBox->pointerSize = size_mask + size_rgba; 520 size = pVBox->pointerSize + pVBox->pointerHeaderSize; 520 521 521 522 p = c = xcalloc (1, size); … … 657 658 bitsp->xhot, bitsp->yhot, w, h); 658 659 659 size = w * h * 4 + pVBox->set_pointer_shape_size + mask_size; 660 pVBox->pointerSize = w * h * 4 + mask_size; 661 size = pVBox->pointerSize + pVBox->pointerHeaderSize; 660 662 p = xcalloc(1, size); 661 663 if (!p) … … 708 710 709 711 VbglR3SetPointerShape(VBOX_MOUSE_POINTER_SHAPE | VBOX_MOUSE_POINTER_ALPHA, bitsp->xhot, bitsp->yhot, w, h, 710 pm, reqp->header.size);712 pm, pVBox->pointerSize); 711 713 xfree(p); 712 714 } … … 721 723 Bool rc; 722 724 723 if (pVBox->use _hw_cursor)725 if (pVBox->useHwCursor) 724 726 { 725 727 xf86DrvMsg(pScrn->scrnIndex, X_INFO, -
trunk/src/VBox/Additions/x11/xgraphics/vboxvideo.h
r6505 r6518 156 156 IOADDRESS ioBase; 157 157 #endif /* XORG_7X defined */ 158 #ifndef RT_OS_SOLARIS159 int vbox_fd;160 #endif161 158 VMMDevReqMousePointer *reqp; 162 159 xf86CursorInfoPtr pCurs; 163 Bool use_hw_cursor; 164 size_t set_pointer_shape_size; 165 Bool pointer_offscreen; 160 Bool useHwCursor; 161 size_t pointerHeaderSize; 162 size_t pointerSize; 163 Bool pointerOffscreen; 166 164 Bool useVbva; 167 #ifndef RT_OS_SOLARIS168 VMMDevVideoAccelFlush *reqf;169 VMMDevVideoAccelEnable *reqe;170 #endif171 165 VMMDevMemory *pVMMDevMemory; 172 166 VBVAMEMORY *pVbvaMemory; … … 174 168 175 169 #ifndef XORG_7X 176 typedef struct _ModeInfoData { 170 typedef struct _ModeInfoData 171 { 177 172 int mode; 178 173 VbeModeInfoBlock *data; … … 185 180 void vbox_close (ScrnInfoPtr pScrn, VBOXPtr pVBOX); 186 181 187 extern Bool 188 vboxEnableVbva(ScrnInfoPtr pScrn); 182 extern Bool vboxEnableVbva(ScrnInfoPtr pScrn); 189 183 190 extern Bool 191 vboxDisableVbva(ScrnInfoPtr pScrn); 184 extern Bool vboxDisableVbva(ScrnInfoPtr pScrn); 192 185 193 extern Bool 194 vboxGetDisplayChangeRequest(ScrnInfoPtr pScrn, uint32_t *pcx, uint32_t *pcy, 186 extern Bool vboxGetDisplayChangeRequest(ScrnInfoPtr pScrn, uint32_t *pcx, uint32_t *pcy, 195 187 uint32_t *pcBits, uint32_t fEventAck, uint32_t iDisplay); 196 188
Note:
See TracChangeset
for help on using the changeset viewer.