org.virtualbox_7_0
Class IDisplay

java.lang.Object
  extended by org.virtualbox_7_0.IUnknown
      extended by org.virtualbox_7_0.IDisplay

public class IDisplay
extends IUnknown

The IDisplay interface represents the virtual machine's display. The object implementing this interface is contained in eachIConsole.getDisplay()attribute and represents the visual output of the virtual machine. The virtual display supports pluggable output targets represented by the IFramebuffer interface. Examples of the output target are a window on the host computer or an RDP session's display on a remote computer. Interface ID: {4680B2DE-8690-11E9-B83D-5719E53CF1DE}


Field Summary
 
Fields inherited from class org.virtualbox_7_0.IUnknown
obj, objMgr, port
 
Constructor Summary
IDisplay(java.lang.String wrapped, org.virtualbox_7_0.ObjectRefManager objMgr, org.virtualbox_7_0.jaxws.VboxPortType port)
           
 
Method Summary
 java.lang.String attachFramebuffer(java.lang.Long screenId, IFramebuffer framebuffer)
          Sets the graphics update target for a screen.
 IGuestScreenInfo createGuestScreenInfo(java.lang.Long display, GuestMonitorStatus status, java.lang.Boolean primary, java.lang.Boolean changeOrigin, java.lang.Integer originX, java.lang.Integer originY, java.lang.Long width, java.lang.Long height, java.lang.Long bitsPerPixel)
          Make a IGuestScreenInfo object with the provided parameters.
 void detachFramebuffer(java.lang.Long screenId, java.lang.String id)
          Removes the graphics updates target for a screen.
 void detachScreens(java.util.List<java.lang.Integer> screenIds)
          Unplugs monitors from the virtual graphics card.
 java.util.List<IGuestScreenInfo> getGuestScreenLayout()
          Layout of the guest screens.
 void getScreenResolution(java.lang.Long screenId, Holder<java.lang.Long> width, Holder<java.lang.Long> height, Holder<java.lang.Long> bitsPerPixel, Holder<java.lang.Integer> xOrigin, Holder<java.lang.Integer> yOrigin, Holder<GuestMonitorStatus> guestMonitorStatus)
          Queries certain attributes such as display width, height, color depth and the X and Y origin for a given guest screen.
 void getVideoModeHint(java.lang.Long display, Holder<java.lang.Boolean> enabled, Holder<java.lang.Boolean> changeOrigin, Holder<java.lang.Integer> originX, Holder<java.lang.Integer> originY, Holder<java.lang.Long> width, Holder<java.lang.Long> height, Holder<java.lang.Long> bitsPerPixel)
          Queries the monitor information for a given guest output.
 void invalidateAndUpdate()
          Does a full invalidation of the VM display and instructs the VM to update it.
 void invalidateAndUpdateScreen(java.lang.Long screenId)
          Redraw the specified VM screen.
 void notifyHiDPIOutputPolicyChange(java.lang.Boolean fUnscaledHiDPI)
          Notify OpenGL HGCM host service about HiDPI monitor scaling policy change.
 void notifyScaleFactorChange(java.lang.Long screenId, java.lang.Long u32ScaleFactorWMultiplied, java.lang.Long u32ScaleFactorHMultiplied)
          Notify OpenGL HGCM host service about graphics content scaling factor change.
 IFramebuffer queryFramebuffer(java.lang.Long screenId)
          Queries the graphics updates targets for a screen.
static IDisplay queryInterface(IUnknown obj)
           
 void setScreenLayout(ScreenLayoutMode screenLayoutMode, java.util.List<IGuestScreenInfo> guestScreenInfo)
          Set video modes for the guest screens.
 void setSeamlessMode(java.lang.Boolean enabled)
          Enables or disables seamless guest display rendering (seamless desktop integration) mode.
 void setVideoModeHint(java.lang.Long display, java.lang.Boolean enabled, java.lang.Boolean changeOrigin, java.lang.Integer originX, java.lang.Integer originY, java.lang.Long width, java.lang.Long height, java.lang.Long bitsPerPixel, java.lang.Boolean notify)
          Changes the monitor information reported by a given output of the guest graphics device.
 byte[] takeScreenShotToArray(java.lang.Long screenId, java.lang.Long width, java.lang.Long height, BitmapFormat bitmapFormat)
          Takes a guest screen shot of the requested size and format and returns it as an array of bytes.
 void viewportChanged(java.lang.Long screenId, java.lang.Long x, java.lang.Long y, java.lang.Long width, java.lang.Long height)
          Signals that framebuffer window viewport has changed.
 
Methods inherited from class org.virtualbox_7_0.IUnknown
getObjMgr, getRemoteWSPort, getWrapped, releaseRemote
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

IDisplay

public IDisplay(java.lang.String wrapped,
                org.virtualbox_7_0.ObjectRefManager objMgr,
                org.virtualbox_7_0.jaxws.VboxPortType port)
Method Detail

getGuestScreenLayout

public java.util.List<IGuestScreenInfo> getGuestScreenLayout()
Layout of the guest screens.

Returns:
List<org.virtualbox_7_0.IGuestScreenInfo>

queryInterface

public static IDisplay queryInterface(IUnknown obj)

getScreenResolution

public void getScreenResolution(java.lang.Long screenId,
                                Holder<java.lang.Long> width,
                                Holder<java.lang.Long> height,
                                Holder<java.lang.Long> bitsPerPixel,
                                Holder<java.lang.Integer> xOrigin,
                                Holder<java.lang.Integer> yOrigin,
                                Holder<GuestMonitorStatus> guestMonitorStatus)
Queries certain attributes such as display width, height, color depth and the X and Y origin for a given guest screen. The parameters xOrigin and yOrigin return the X and Y coordinates of the framebuffer's origin. All return parameters are optional.


attachFramebuffer

public java.lang.String attachFramebuffer(java.lang.Long screenId,
                                          IFramebuffer framebuffer)
Sets the graphics update target for a screen.


detachFramebuffer

public void detachFramebuffer(java.lang.Long screenId,
                              java.lang.String id)
Removes the graphics updates target for a screen.


queryFramebuffer

public IFramebuffer queryFramebuffer(java.lang.Long screenId)
Queries the graphics updates targets for a screen.


setVideoModeHint

public void setVideoModeHint(java.lang.Long display,
                             java.lang.Boolean enabled,
                             java.lang.Boolean changeOrigin,
                             java.lang.Integer originX,
                             java.lang.Integer originY,
                             java.lang.Long width,
                             java.lang.Long height,
                             java.lang.Long bitsPerPixel,
                             java.lang.Boolean notify)
Changes the monitor information reported by a given output of the guest graphics device. This information can be read by the guest if suitable drivers and driver tools are available, including but not limited to those in the Guest Additions. The guest will receive monitor hotplug notification when the monitor information is changed, and the information itself will be available to the guest until the next change. The information should not be resent if the guest does not resize in response. The guest might have chosen to ignore the change, or the resize might happen later when a suitable driver is started. Specifying 0 for either width, height or bitsPerPixel parameters means that the corresponding values should be taken from the current video mode (i.e. left unchanged). TODO Rename this to setMonitorInfo for 7.0.

Expected result codes:
E_INVALIDARG - The display value is higher then the number of outputs.

Parameters:
display - The number of the guest output to change.
enabled - True if a monitor is connected, False otherwise.
changeOrigin - True, if the position of the guest screen is specified, False otherwise.
originX - The X origin of the guest screen.
originY - The Y origin of the guest screen.
width - The width of the guest screen.
height - The height of the guest screen.
bitsPerPixel - The number of bits per pixel of the guest screen.
notify - Whether the guest should be notified of the change. Normally this is wished, but it might not be when re-setting monitor information from the last session (no hotplug happened, as it is still the same virtual monitor). Might also be useful if several monitors are to be changed at once, but this would not reflect physical hardware well, and we also have setScreenLayout for that.

getVideoModeHint

public void getVideoModeHint(java.lang.Long display,
                             Holder<java.lang.Boolean> enabled,
                             Holder<java.lang.Boolean> changeOrigin,
                             Holder<java.lang.Integer> originX,
                             Holder<java.lang.Integer> originY,
                             Holder<java.lang.Long> width,
                             Holder<java.lang.Long> height,
                             Holder<java.lang.Long> bitsPerPixel)
Queries the monitor information for a given guest output. See setVideoModeHint. If no monitor information has been set yet by a front-end the preferred mode values returned will be zero. TODO Rename this to getMonitorInfo for 7.0.

Expected result codes:
E_INVALIDARG - The display value is higher than the number of outputs.

Parameters:
display - The number of the guest output to query.
enabled - True if a monitor is connected, False otherwise.
changeOrigin - True, if the position of the guest screen was specified, False otherwise.
originX - The X origin of the guest screen.
originY - The Y origin of the guest screen.
width - The width of the monitor preferred mode.
height - The height of the monitor preferred mode.
bitsPerPixel - The number of bits per pixel of the monitor preferred mode.

setSeamlessMode

public void setSeamlessMode(java.lang.Boolean enabled)
Enables or disables seamless guest display rendering (seamless desktop integration) mode. NOTE: Calling this method has no effect ifIGuest.getFacilityStatus(org.virtualbox_7_0.AdditionsFacilityType,Holder)with facility Seamless does not return Active.


takeScreenShotToArray

public byte[] takeScreenShotToArray(java.lang.Long screenId,
                                    java.lang.Long width,
                                    java.lang.Long height,
                                    BitmapFormat bitmapFormat)
Takes a guest screen shot of the requested size and format and returns it as an array of bytes.

Parameters:
screenId - The guest monitor to take screenshot from.
width - Desired image width.
height - Desired image height.
bitmapFormat - The requested format.
Returns:
Array with resulting screen data.

invalidateAndUpdate

public void invalidateAndUpdate()
Does a full invalidation of the VM display and instructs the VM to update it.

Expected result codes:
VBOX_E_IPRT_ERROR - Could not invalidate and update screen.


invalidateAndUpdateScreen

public void invalidateAndUpdateScreen(java.lang.Long screenId)
Redraw the specified VM screen.

Parameters:
screenId - The guest screen to redraw.

viewportChanged

public void viewportChanged(java.lang.Long screenId,
                            java.lang.Long x,
                            java.lang.Long y,
                            java.lang.Long width,
                            java.lang.Long height)
Signals that framebuffer window viewport has changed.

Expected result codes:
E_INVALIDARG - The specified viewport data is invalid.

Parameters:
screenId - Monitor to take the screenshot from.
x - Framebuffer x offset.
y - Framebuffer y offset.
width - Viewport width.
height - Viewport height.

notifyScaleFactorChange

public void notifyScaleFactorChange(java.lang.Long screenId,
                                    java.lang.Long u32ScaleFactorWMultiplied,
                                    java.lang.Long u32ScaleFactorHMultiplied)
Notify OpenGL HGCM host service about graphics content scaling factor change.


notifyHiDPIOutputPolicyChange

public void notifyHiDPIOutputPolicyChange(java.lang.Boolean fUnscaledHiDPI)
Notify OpenGL HGCM host service about HiDPI monitor scaling policy change.


setScreenLayout

public void setScreenLayout(ScreenLayoutMode screenLayoutMode,
                            java.util.List<IGuestScreenInfo> guestScreenInfo)
Set video modes for the guest screens.


detachScreens

public void detachScreens(java.util.List<java.lang.Integer> screenIds)
Unplugs monitors from the virtual graphics card.


createGuestScreenInfo

public IGuestScreenInfo createGuestScreenInfo(java.lang.Long display,
                                              GuestMonitorStatus status,
                                              java.lang.Boolean primary,
                                              java.lang.Boolean changeOrigin,
                                              java.lang.Integer originX,
                                              java.lang.Integer originY,
                                              java.lang.Long width,
                                              java.lang.Long height,
                                              java.lang.Long bitsPerPixel)
Make a IGuestScreenInfo object with the provided parameters.

Parameters:
display - The number of the guest display.
status - True, if this guest screen is enabled, False otherwise.
primary - Whether this guest monitor must be primary.
changeOrigin - True, if the origin of the guest screen should be changed, False otherwise.
originX - The X origin of the guest screen.
originY - The Y origin of the guest screen.
width - The width of the guest screen.
height - The height of the guest screen.
bitsPerPixel - The number of bits per pixel of the guest screen.
Returns:
The created object.