VirtualBox

Ignore:
Timestamp:
Mar 23, 2010 1:45:28 PM (15 years ago)
Author:
vboxsync
Message:

wddm: pointer integration working for color pointers

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoWddm.cpp

    r27606 r27629  
    20872087    PVBOXWDDM_POINTER_INFO pPointerInfo = &pDevExt->aSources[pSetPointerPosition->VidPnSourceId].PointerInfo;
    20882088    PVIDEO_POINTER_ATTRIBUTES pPointerAttributes = &pPointerInfo->Attributes.data;
     2089    BOOLEAN bNotifyVisibility;
    20892090    if (pSetPointerPosition->Flags.Visible)
     2091    {
     2092        bNotifyVisibility = !(pPointerAttributes->Enable & VBOX_MOUSE_POINTER_VISIBLE);
    20902093        pPointerAttributes->Enable |= VBOX_MOUSE_POINTER_VISIBLE;
     2094    }
    20912095    else
     2096    {
     2097        bNotifyVisibility = !!(pPointerAttributes->Enable & VBOX_MOUSE_POINTER_VISIBLE);
    20922098        pPointerAttributes->Enable &= ~VBOX_MOUSE_POINTER_VISIBLE;
     2099    }
    20932100
    20942101    pPointerInfo->xPos = pSetPointerPosition->X;
    20952102    pPointerInfo->yPos = pSetPointerPosition->Y;
     2103
     2104    if (bNotifyVisibility && vboxQueryHostWantsAbsolute())
     2105    {
     2106        // tell the host to use the guest's pointer
     2107        VIDEO_POINTER_ATTRIBUTES PointerAttributes;
     2108
     2109        /* Visible and No Shape means Show the pointer.
     2110         * It is enough to init only this field.
     2111         */
     2112        PointerAttributes.Enable = pSetPointerPosition->Flags.Visible ? VBOX_MOUSE_POINTER_VISIBLE : 0;
     2113
     2114        BOOLEAN bResult = vboxUpdatePointerShape(pDevExt, &PointerAttributes, sizeof (PointerAttributes));
     2115        Assert(bResult);
     2116    }
    20962117
    20972118    dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));
     
    21222143                Status = STATUS_SUCCESS;
    21232144            else
     2145            {
     2146                AssertBreakpoint();
    21242147                drprintf((__FUNCTION__": vboxUpdatePointerShape failed\n"));
     2148            }
    21252149        }
    21262150    }
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette