VirtualBox

Changeset 19431 in vbox for trunk


Ignore:
Timestamp:
May 6, 2009 1:19:33 PM (16 years ago)
Author:
vboxsync
Message:

HGSMI: windows graphics drivers.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/VBoxVideo.h

    r18135 r19431  
    287287#define VBVA_INFO_SCREEN  6
    288288#define VBVA_ENABLE       7
     289#define VBVA_MOUSE_POINTER_SHAPE 8
    289290
    290291/* VBVACONF32::u32Index */
     
    373374} VBVAENABLE;
    374375
     376typedef 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
    375425#pragma pack()
    376426
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