- Timestamp:
- May 6, 2009 1:19:33 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/VBoxVideo.h
r18135 r19431 287 287 #define VBVA_INFO_SCREEN 6 288 288 #define VBVA_ENABLE 7 289 #define VBVA_MOUSE_POINTER_SHAPE 8 289 290 290 291 /* VBVACONF32::u32Index */ … … 373 374 } VBVAENABLE; 374 375 376 typedef struct _VBVAMOUSEPOINTERSHAPE 377 { 378 /* The host result. */ 379 uint32_t u32Result; 380 381 /* VBOX_MOUSE_POINTER_* bit flags. */ 382 uint32_t fu32Flags; 383 384 /* X coordinate of the hot spot. */ 385 uint32_t u32HotX; 386 387 /* Y coordinate of the hot spot. */ 388 uint32_t u32HotY; 389 390 /* Width of the pointer in pixels. */ 391 uint32_t u32Width; 392 393 /* Height of the pointer in scanlines. */ 394 uint32_t u32Height; 395 396 /* Pointer data. 397 * 398 **** 399 * The data consists of 1 bpp AND mask followed by 32 bpp XOR (color) mask. 400 * 401 * For pointers without alpha channel the XOR mask pixels are 32 bit values: (lsb)BGR0(msb). 402 * For pointers with alpha channel the XOR mask consists of (lsb)BGRA(msb) 32 bit values. 403 * 404 * Guest driver must create the AND mask for pointers with alpha channel, so if host does not 405 * support alpha, the pointer could be displayed as a normal color pointer. The AND mask can 406 * be constructed from alpha values. For example alpha value >= 0xf0 means bit 0 in the AND mask. 407 * 408 * The AND mask is 1 bpp bitmap with byte aligned scanlines. Size of AND mask, 409 * therefore, is cbAnd = (width + 7) / 8 * height. The padding bits at the 410 * end of any scanline are undefined. 411 * 412 * The XOR mask follows the AND mask on the next 4 bytes aligned offset: 413 * uint8_t *pXor = pAnd + (cbAnd + 3) & ~3 414 * Bytes in the gap between the AND and the XOR mask are undefined. 415 * XOR mask scanlines have no gap between them and size of XOR mask is: 416 * cXor = width * 4 * height. 417 **** 418 * 419 * Preallocate 4 bytes for accessing actual data as p->au8Data. 420 */ 421 uint8_t au8Data[4]; 422 423 } VBVAMOUSEPOINTERSHAPE; 424 375 425 #pragma pack() 376 426
Note:
See TracChangeset
for help on using the changeset viewer.