Lines Matching refs:pDev

22 static BOOL VBoxDispFillMonoShape(PVBOXDISPDEV pDev, SURFOBJ *psoMask)
28 PVIDEO_POINTER_ATTRIBUTES pAttrs = pDev->pointer.pAttrs;
37 pAttrs->Width = min(srcMaskW, pDev->pointer.caps.MaxWidth);
38 pAttrs->Height = min(srcMaskH, pDev->pointer.caps.MaxHeight);
70 static SURFOBJ *VBoxDispConvSurfTo32BPP(PVBOXDISPDEV pDev, SURFOBJ *psoScreen, SURFOBJ *psoSrc, XLATEOBJ *pxlo, HSURF *phDstSurf)
159 if (psoBitmap->iBitmapFormat==BMF_8BPP && pDev->pPalette)
168 pDst[(LONG)y*psoRes->lDelta+x*4+0] = pDev->pPalette[bSrc].peBlue;
169 pDst[(LONG)y*psoRes->lDelta+x*4+1] = pDev->pPalette[bSrc].peGreen;
170 pDst[(LONG)y*psoRes->lDelta+x*4+2] = pDev->pPalette[bSrc].peRed;
234 static BOOL VBoxDispFillColorShape(PVBOXDISPDEV pDev, SURFOBJ *psoScreen, SURFOBJ *psoMask, SURFOBJ *psoColor,
241 PVIDEO_POINTER_ATTRIBUTES pAttrs = pDev->pointer.pAttrs;
252 pAttrs->Width = min(srcMaskW, pDev->pointer.caps.MaxWidth);
253 pAttrs->Height = min(srcMaskH, pDev->pointer.caps.MaxHeight);
300 pso32bpp = VBoxDispConvSurfTo32BPP(pDev, psoScreen, psoColor, pxlo, &hSurf32bpp);
331 int VBoxDispInitPointerCaps(PVBOXDISPDEV pDev, DEVINFO *pDevInfo)
335 rc = VBoxDispMPGetPointerCaps(pDev->hDriver, &pDev->pointer.caps);
338 if (pDev->pointer.caps.Flags & VIDEO_MODE_ASYNC_POINTER)
349 int VBoxDispInitPointerAttrs(PVBOXDISPDEV pDev)
356 if (pDev->pointer.caps.Flags & VIDEO_MODE_COLOR_POINTER)
358 bytesPerLine = pDev->pointer.caps.MaxWidth*4;
362 bytesPerLine = (pDev->pointer.caps.MaxWidth + 7)/8;
366 pDev->pointer.cbAttrs = sizeof(VIDEO_POINTER_ATTRIBUTES) + 2*(pDev->pointer.caps.MaxHeight*bytesPerLine);
368 pDev->pointer.pAttrs = (PVIDEO_POINTER_ATTRIBUTES) EngAllocMem(0, pDev->pointer.cbAttrs, MEM_ALLOC_TAG);
369 if (!pDev->pointer.pAttrs)
371 WARN(("can't allocate %d bytes pDev->pPointerAttrs buffer", pDev->pointer.cbAttrs));
375 pDev->pointer.pAttrs->Flags = pDev->pointer.caps.Flags;
376 pDev->pointer.pAttrs->Width = pDev->pointer.caps.MaxWidth;
377 pDev->pointer.pAttrs->Height = pDev->pointer.caps.MaxHeight;
378 pDev->pointer.pAttrs->WidthInBytes = bytesPerLine;
379 pDev->pointer.pAttrs->Enable = 0;
380 pDev->pointer.pAttrs->Column = 0;
381 pDev->pointer.pAttrs->Row = 0;
392 PVBOXDISPDEV pDev = (PVBOXDISPDEV)pso->dhpdev;
398 x -= pDev->orgDisp.x;
399 y -= pDev->orgDisp.y;
403 rc = VBoxDispMPDisablePointer(pDev->hDriver);
410 pos.Column = (SHORT) (x - pDev->pointer.orgHotSpot.x);
411 pos.Row = (SHORT) (y - pDev->pointer.orgHotSpot.y);
413 rc = VBoxDispMPSetPointerPosition(pDev->hDriver, &pos);
425 PVBOXDISPDEV pDev = (PVBOXDISPDEV)pso->dhpdev;
431 if (!pDev->pointer.pAttrs)
433 WARN(("pDev->pointer.pAttrs == NULL"));
441 rc = VBoxDispMPDisablePointer(pDev->hDriver);
460 if (!(pDev->pointer.caps.Flags & VIDEO_MODE_MONO_POINTER)
461 || !VBoxDispFillMonoShape(pDev, psoMask))
463 rc = VBoxDispMPDisablePointer(pDev->hDriver);
467 pDev->pointer.pAttrs->Flags = VIDEO_MODE_MONO_POINTER;
471 if (!(pDev->pointer.caps.Flags & VIDEO_MODE_COLOR_POINTER)
472 || !VBoxDispFillColorShape(pDev, pso, psoMask, psoColor, pxlo, fl))
474 rc = VBoxDispMPDisablePointer(pDev->hDriver);
478 pDev->pointer.pAttrs->Flags = VIDEO_MODE_COLOR_POINTER;
483 * Note: pDev->pointer.pAttrs->Enable is also used to pass hotspot coordinates in it's high word
486 pDev->pointer.pAttrs->Column = (SHORT) (x - xHot);
487 pDev->pointer.pAttrs->Row = (SHORT) (y - yHot);
489 pDev->pointer.pAttrs->Enable = VBOX_MOUSE_POINTER_SHAPE;
490 pDev->pointer.pAttrs->Enable |= (yHot & 0xFF) << 24;
491 pDev->pointer.pAttrs->Enable |= (xHot & 0xFF) << 16;
495 pDev->pointer.pAttrs->Enable |= VBOX_MOUSE_POINTER_VISIBLE;
500 pDev->pointer.pAttrs->Enable |= VBOX_MOUSE_POINTER_ALPHA;
506 pDev->pointer.pAttrs->Flags |= VIDEO_MODE_ANIMATE_START;
510 pDev->pointer.pAttrs->Flags |= VIDEO_MODE_ANIMATE_UPDATE;
519 rc = VBoxDispMPSetPointerAttrs(pDev);
523 rc = VBoxDispMPDisablePointer(pDev->hDriver);
528 pDev->pointer.orgHotSpot.x = xHot;
529 pDev->pointer.orgHotSpot.y = yHot;