VirtualBox

Changeset 72352 in vbox for trunk/include


Ignore:
Timestamp:
May 26, 2018 12:37:50 PM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
122809
Message:

Main, VMMDev: implemented IDisplay::SetScreenLayout, VMMDev multimonitor resize request and VBoxManage controlvm setscreenlayout. bugref:8393

Location:
trunk/include/VBox
Files:
3 edited

Legend:

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

    r71364 r72352  
    2828
    2929#include <VBox/types.h>
    30 #include <VBox/VMMDevCoreTypes.h>
     30#include <VBox/VMMDev.h>
    3131#include <VBox/VBoxGuestCoreTypes.h>
    3232
     
    565565VBGLR3DECL(int)     VbglR3GetDisplayChangeRequest(uint32_t *pcx, uint32_t *pcy, uint32_t *pcBits, uint32_t *piDisplay,
    566566                                                  uint32_t *pdx, uint32_t *pdy, bool *pfEnabled, bool *pfChangeOrigin, bool fAck);
     567VBGLR3DECL(int)     VbglR3GetDisplayChangeRequestMulti(uint32_t cDisplaysIn, uint32_t *pcDisplaysOut,
     568                                                       VMMDevDisplayDef *paDisplays, bool fAck);
    567569VBGLR3DECL(bool)    VbglR3HostLikesVideoMode(uint32_t cx, uint32_t cy, uint32_t cBits);
    568570VBGLR3DECL(int)     VbglR3VideoModeGetHighestSavedScreen(unsigned *pcScreen);
  • trunk/include/VBox/VMMDev.h

    r70873 r72352  
    147147    VMMDevReq_VideoModeSupported2        = 57, /**< @since version 3.2.0 */
    148148    VMMDevReq_GetDisplayChangeRequestEx  = 80, /**< @since version 4.2.4 */
     149    VMMDevReq_GetDisplayChangeRequestMulti = 81,
    149150#ifdef VBOX_WITH_HGCM
    150151    VMMDevReq_HGCMConnect                = 60,
     
    11601161
    11611162
     1163/** Flags for VMMDevDisplayDef::fDisplayFlags */
     1164#define VMMDEV_DISPLAY_PRIMARY  UINT32_C(0x00000001) /**< Primary display. */
     1165#define VMMDEV_DISPLAY_DISABLED UINT32_C(0x00000002) /**< Display is disabled. */
     1166#define VMMDEV_DISPLAY_ORIGIN   UINT32_C(0x00000004) /**< Change position of the diplay. */
     1167#define VMMDEV_DISPLAY_CX       UINT32_C(0x00000008) /**< Change the horizontal resolution of the display. */
     1168#define VMMDEV_DISPLAY_CY       UINT32_C(0x00000010) /**< Change the vertical resolution of the display. */
     1169#define VMMDEV_DISPLAY_BPP      UINT32_C(0x00000020) /**< Change the color depth of the display. */
     1170
     1171/** Definition of one monitor. Used by VMMDevReq_GetDisplayChangeRequestMulti. */
     1172typedef struct VMMDevDisplayDef
     1173{
     1174    uint32_t fDisplayFlags;             /**< VMMDEV_DISPLAY_* flags. */
     1175    uint32_t idDisplay;                 /**< The display number. */
     1176    int32_t  xOrigin;                   /**< New OriginX of the guest screen. */
     1177    int32_t  yOrigin;                   /**< New OriginY of the guest screen.  */
     1178    uint32_t cx;                        /**< Horizontal pixel resolution. */
     1179    uint32_t cy;                        /**< Vertical pixel resolution. */
     1180    uint32_t cBitsPerPixel;             /**< Bits per pixel. */
     1181} VMMDevDisplayDef;
     1182AssertCompileSize(VMMDevDisplayDef, 28);
     1183
     1184/** Multimonitor display change request structure. Used by VMMDevReq_GetDisplayChangeRequestMulti. */
     1185typedef struct VMMDevDisplayChangeRequestMulti
     1186{
     1187    VMMDevRequestHeader header;         /**< Header. */
     1188    uint32_t eventAck;                  /**< Setting this to VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST indicates
     1189                                         * that the request is a response to that event.
     1190                                         * (Don't confuse this with VMMDevReq_AcknowledgeEvents.) */
     1191    uint32_t cDisplays;                 /**< Number of monitors. In: how many the guest expects.
     1192                                         *                      Out: how many the host provided. */
     1193    VMMDevDisplayDef aDisplays[1];      /**< Layout of monitors. */
     1194} VMMDevDisplayChangeRequestMulti;
     1195AssertCompileSize(VMMDevDisplayChangeRequestMulti, 24+8+28);
     1196
     1197
    11621198/**
    11631199 * Video mode supported request structure.
     
    16941730        case VMMDevReq_GetDisplayChangeRequestEx:
    16951731            return sizeof(VMMDevDisplayChangeRequestEx);
     1732        case VMMDevReq_GetDisplayChangeRequestMulti:
     1733            return RT_UOFFSETOF(VMMDevDisplayChangeRequestMulti, aDisplays);
    16961734        case VMMDevReq_VideoModeSupported:
    16971735            return sizeof(VMMDevVideoModeSupportedRequest);
  • trunk/include/VBox/vmm/pdmifs.h

    r71626 r72352  
    15801580#define PDMIACPICONNECTOR_IID                   "5f14bf8d-1edf-4e3a-a1e1-cca9fd08e359"
    15811581
     1582struct VMMDevDisplayDef;
    15821583
    15831584/** Pointer to a VMMDevice port interface. */
     
    16361637     * @returns VBox status code
    16371638     * @param   pInterface      Pointer to the interface structure containing the called function pointer.
    1638      * @param   cx              Horizontal pixel resolution (0 = do not change).
    1639      * @param   cy              Vertical pixel resolution (0 = do not change).
    1640      * @param   cBits           Bits per pixel (0 = do not change).
    1641      * @param   idxDisplay      The display index.
    1642      * @param   xOrigin         The X coordinate of the lower left
    1643      *                          corner of the secondary display with
    1644      *                          ID = idxDisplay
    1645      * @param   yOrigin         The Y coordinate of the lower left
    1646      *                          corner of the secondary display with
    1647      *                          ID = idxDisplay
    1648      * @param   fEnabled        Whether the display is enabled or not. (Guessing
    1649      *                          again.)
    1650      * @param   fChangeOrigin   Whether the display origin point changed. (Guess)
    1651      */
    1652     DECLR3CALLBACKMEMBER(int, pfnRequestDisplayChange,(PPDMIVMMDEVPORT pInterface, uint32_t cx,
    1653                          uint32_t cy, uint32_t cBits, uint32_t idxDisplay,
    1654                          int32_t xOrigin, int32_t yOrigin, bool fEnabled, bool fChangeOrigin));
     1639     * @param   cDisplays       Number of displays. Can be either 1 or the number of VM virtual monitors.
     1640     * @param   paDisplays      Definitions of guest screens to be applied. See VMMDev.h
     1641     * @param   fForce          Whether to deliver the request to the guest even if the guest has
     1642     *                          the requested resolution already.
     1643     */
     1644    DECLR3CALLBACKMEMBER(int, pfnRequestDisplayChange,(PPDMIVMMDEVPORT pInterface, uint32_t cDisplays,
     1645                                                       struct VMMDevDisplayDef const *paDisplays, bool fForce));
    16551646
    16561647    /**
     
    17501741} PDMIVMMDEVPORT;
    17511742/** PDMIVMMDEVPORT interface ID. */
    1752 #define PDMIVMMDEVPORT_IID                      "d7e52035-3b6c-422e-9215-2a75646a945d"
     1743#define PDMIVMMDEVPORT_IID                      "2ccc19a5-742a-4af0-a7d3-31ea67ff50e9"
    17531744
    17541745
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