VirtualBox

Changeset 22412 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Aug 24, 2009 1:02:40 PM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
51391
Message:

HGSMI/VBVA updates

Location:
trunk/include/VBox
Files:
2 edited

Legend:

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

    r22247 r22412  
    3333#include <iprt/cdefs.h>
    3434#include <iprt/types.h>
     35
     36#ifdef VBOX_WITH_HGSMI
     37#include <VBox/VMMDev.h>
     38#endif /* VBOX_WITH_HGSMI */
    3539
    3640/*
     
    521525
    522526
    523 #define VBOXVHWA_OFFSET64_VOID        (~0L)
     527#define VBOXVHWA_OFFSET64_VOID        (~0ULL)
    524528
    525529typedef struct _VBOXVHWA_VERSION
     
    831835} VBVACONF32;
    832836
    833 typedef struct _VBVAINFOVIEW
     837typedef struct VBVAINFOVIEW
    834838{
    835839    /* Index of the screen, assigned by the guest. */
     
    866870#define VBVA_SCREEN_F_ACTIVE 0x0001
    867871
    868 typedef struct _VBVAINFOSCREEN
     872typedef struct VBVAINFOSCREEN
    869873{
    870874    /* Which view contains the screen. */
     
    876880    /* Physical Y origin relative to the primary screen. */
    877881    int32_t i32OriginY;
     882
     883    /* Offset of visible framebuffer relative to the framebuffer start. */
     884    uint32_t u32StartOffset;
    878885
    879886    /* The scan line size in bytes. */
  • trunk/include/VBox/pdmifs.h

    r21226 r22412  
    422422
    423423typedef struct _VBOXVHWACMD *PVBOXVHWACMD; /**< @todo r=bird: _VBOXVHWACMD -> VBOXVHWACMD; avoid using 1 or 2 leading underscores. Also, a line what it is to make doxygen happy. */
     424#ifdef VBOX_WITH_HGSMI
     425typedef struct VBVACMDHDR *PVBVACMDHDR;
     426typedef struct VBVAINFOSCREEN *PVBVAINFOSCREEN;
     427typedef struct VBVAINFOVIEW *PVBVAINFOVIEW;
     428#endif /* VBOX_WITH_HGSMI */
    424429
    425430/** Pointer to a display connector interface. */
     
    531536     */
    532537    DECLR3CALLBACKMEMBER(void, pfnVHWACommandProcess, (PPDMIDISPLAYCONNECTOR pInterface, PVBOXVHWACMD pCmd));
     538
     539#ifdef VBOX_WITH_HGSMI
     540    /**
     541     * The specified screen enters VBVA mode.
     542     *
     543     * @param   pInterface          Pointer to this interface.
     544     * @param   uScreenId           The screen updates are for.
     545     * @thread  The emulation thread.
     546     */
     547    DECLR3CALLBACKMEMBER(int, pfnVBVAEnable,(PPDMIDISPLAYCONNECTOR pInterface, unsigned uScreenId));
     548
     549    /**
     550     * The specified screen leaves VBVA mode.
     551     *
     552     * @param   pInterface          Pointer to this interface.
     553     * @param   uScreenId           The screen updates are for.
     554     * @thread  The emulation thread.
     555     */
     556    DECLR3CALLBACKMEMBER(void, pfnVBVADisable,(PPDMIDISPLAYCONNECTOR pInterface, unsigned uScreenId));
     557
     558    /**
     559     * A sequence of pfnVBVAUpdateProcess calls begins.
     560     *
     561     * @param   pInterface          Pointer to this interface.
     562     * @param   uScreenId           The screen updates are for.
     563     * @thread  The emulation thread.
     564     */
     565    DECLR3CALLBACKMEMBER(void, pfnVBVAUpdateBegin,(PPDMIDISPLAYCONNECTOR pInterface, unsigned uScreenId));
     566
     567    /**
     568     * Process the guest VBVA command.
     569     *
     570     * @param   pInterface          Pointer to this interface.
     571     * @param   pCmd                Video HW Acceleration Command to be processed.
     572     * @thread  The emulation thread.
     573     */
     574    DECLR3CALLBACKMEMBER(void, pfnVBVAUpdateProcess,(PPDMIDISPLAYCONNECTOR pInterface, unsigned uScreenId, const PVBVACMDHDR pCmd, size_t cbCmd));
     575
     576    /**
     577     * A sequence of pfnVBVAUpdateProcess calls ends.
     578     *
     579     * @param   pInterface          Pointer to this interface.
     580     * @param   uScreenId           The screen updates are for.
     581     * @param   x                   The upper left corner x coordinate of the combined rectangle of all VBVA updates.
     582     * @param   y                   The upper left corner y coordinate of the rectangle.
     583     * @param   cx                  The width of the rectangle.
     584     * @param   cy                  The height of the rectangle.
     585     * @thread  The emulation thread.
     586     */
     587    DECLR3CALLBACKMEMBER(void, pfnVBVAUpdateEnd,(PPDMIDISPLAYCONNECTOR pInterface, unsigned uScreenId, uint32_t x, uint32_t y, uint32_t cx, uint32_t cy));
     588
     589    /**
     590     * Resize the display.
     591     * This is called when the resolution changes. This usually happens on
     592     * request from the guest os, but may also happen as the result of a reset.
     593     * If the callback returns VINF_VGA_RESIZE_IN_PROGRESS, the caller (VGA device)
     594     * must not access the connector and return.
     595     *
     596     * @todo Merge with pfnResize.
     597     *
     598     * @returns VINF_SUCCESS if the framebuffer resize was completed,
     599     *          VINF_VGA_RESIZE_IN_PROGRESS if resize takes time and not yet finished.
     600     * @param   pInterface          Pointer to this interface.
     601     * @param   pView               The description of VRAM block for this screen.
     602     * @param   pScreen             The data of screen being resized.
     603     * @param   pvVRAM              Address of the guest VRAM.
     604     * @thread  The emulation thread.
     605     */
     606    DECLR3CALLBACKMEMBER(int, pfnVBVAResize,(PPDMIDISPLAYCONNECTOR pInterface, const PVBVAINFOVIEW pView, const PVBVAINFOSCREEN pScreen, void *pvVRAM));
     607
     608    /**
     609     * Update the pointer shape.
     610     * This is called when the mouse pointer shape changes. The new shape
     611     * is passed as a caller allocated buffer that will be freed after returning
     612     *
     613     * @param   pInterface          Pointer to this interface.
     614     * @param   fVisible            Visibility indicator (if false, the other parameters are undefined).
     615     * @param   fAlpha              Flag whether alpha channel is being passed.
     616     * @param   xHot                Pointer hot spot x coordinate.
     617     * @param   yHot                Pointer hot spot y coordinate.
     618     * @param   x                   Pointer new x coordinate on screen.
     619     * @param   y                   Pointer new y coordinate on screen.
     620     * @param   cx                  Pointer width in pixels.
     621     * @param   cy                  Pointer height in pixels.
     622     * @param   cbScanline          Size of one scanline in bytes.
     623     * @param   pvShape             New shape buffer.
     624     * @thread  The emulation thread.
     625     */
     626    DECLR3CALLBACKMEMBER(int, pfnVBVAMousePointerShape,(PPDMIDISPLAYCONNECTOR pInterface, bool fVisible, bool fAlpha,
     627                                                        uint32_t xHot, uint32_t yHot,
     628                                                        uint32_t cx, uint32_t cy,
     629                                                        const void *pvShape));
     630#endif /* VBOX_WITH_HGSMI */
    533631
    534632    /** Read-only attributes.
Note: See TracChangeset for help on using the changeset viewer.

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