Changeset 27640 in vbox for trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm
- Timestamp:
- Mar 23, 2010 3:36:18 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoWddm.cpp
r27629 r27640 2006 2006 { 2007 2007 PVIDEO_POINTER_ATTRIBUTES pPointerAttributes = &pPointerInfo->Attributes.data; 2008 /* pPointerAttributes ma ointains the visibility state, clear all except visibility */2009 pPointerAttributes->Enable &= 0xffff0000 |VBOX_MOUSE_POINTER_VISIBLE;2008 /* pPointerAttributes maintains the visibility state, clear all except visibility */ 2009 pPointerAttributes->Enable &= VBOX_MOUSE_POINTER_VISIBLE; 2010 2010 2011 2011 Assert(pSetPointerShape->Flags.Value == 1 || pSetPointerShape->Flags.Value == 2); … … 2046 2046 2047 2047 pPointerAttributes->Enable |= VBOX_MOUSE_POINTER_SHAPE; 2048 // 2049 // Initialize Pointer attributes and position 2050 // 2051 if (pPointerAttributes->Enable & VBOX_MOUSE_POINTER_VISIBLE) 2052 { 2053 /* New coordinates of pointer's hot spot */ 2054 pPointerAttributes->Column = (SHORT)(pPointerInfo->xPos) - (SHORT)(pSetPointerShape->YHot); 2055 pPointerAttributes->Row = (SHORT)(pPointerInfo->yPos) - (SHORT)(pSetPointerShape->YHot); 2056 } 2057 else 2058 { 2059 /* Pointer should be created invisible */ 2060 pPointerAttributes->Column = -1; 2061 pPointerAttributes->Row = -1; 2062 } 2063 2064 /* VBOX: We have to pass to miniport hot spot coordinates and alpha flag. 2065 * They will be encoded in the pPointerAttributes::Enable field. 2048 2049 /* 2050 * The hot spot coordinates and alpha flag will be encoded in the pPointerAttributes::Enable field. 2066 2051 * High word will contain hot spot info and low word - flags. 2067 2052 */ 2068 2069 2053 pPointerAttributes->Enable |= (pSetPointerShape->YHot & 0xFF) << 24; 2070 2054 pPointerAttributes->Enable |= (pSetPointerShape->XHot & 0xFF) << 16; … … 2079 2063 CONST DXGKARG_SETPOINTERPOSITION* pSetPointerPosition) 2080 2064 { 2081 dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));2065 // dfprintf(("==> "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter)); 2082 2066 2083 2067 vboxVDbgBreakFv(); … … 2099 2083 } 2100 2084 2101 pPointer Info->xPos= pSetPointerPosition->X;2102 pPointer Info->yPos= pSetPointerPosition->Y;2085 pPointerAttributes->Column = pSetPointerPosition->X; 2086 pPointerAttributes->Row = pSetPointerPosition->Y; 2103 2087 2104 2088 if (bNotifyVisibility && vboxQueryHostWantsAbsolute()) … … 2116 2100 } 2117 2101 2118 dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter));2102 // dfprintf(("<== "__FUNCTION__ ", hAdapter(0x%x)\n", hAdapter)); 2119 2103 2120 2104 return STATUS_SUCCESS; … … 2138 2122 PDEVICE_EXTENSION pDevExt = (PDEVICE_EXTENSION)hAdapter; 2139 2123 PVBOXWDDM_POINTER_INFO pPointerInfo = &pDevExt->aSources[pSetPointerShape->VidPnSourceId].PointerInfo; 2124 /* @todo: to avoid extra data copy and extra heap allocation, 2125 * need to maintain the pre-allocated HGSMI buffer and convert the data directly to it */ 2140 2126 if (vboxVddmPointerShapeToAttributes(pSetPointerShape, pPointerInfo)) 2141 2127 {
Note:
See TracChangeset
for help on using the changeset viewer.