DisplayImpl.h revision b80ab4eb3844fa4a810de4e66291059f09773eea
17ef1920962b3df57bf6d2704ced1586396d96f0vboxsync * VirtualBox COM class implementation
17ef1920962b3df57bf6d2704ced1586396d96f0vboxsync * Copyright (C) 2006 InnoTek Systemberatung GmbH
17ef1920962b3df57bf6d2704ced1586396d96f0vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
17ef1920962b3df57bf6d2704ced1586396d96f0vboxsync * available from http://www.virtualbox.org. This file is free software;
17ef1920962b3df57bf6d2704ced1586396d96f0vboxsync * you can redistribute it and/or modify it under the terms of the GNU
17ef1920962b3df57bf6d2704ced1586396d96f0vboxsync * General Public License as published by the Free Software Foundation,
17ef1920962b3df57bf6d2704ced1586396d96f0vboxsync * in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
17ef1920962b3df57bf6d2704ced1586396d96f0vboxsync * distribution. VirtualBox OSE is distributed in the hope that it will
17ef1920962b3df57bf6d2704ced1586396d96f0vboxsync * be useful, but WITHOUT ANY WARRANTY of any kind.
17ef1920962b3df57bf6d2704ced1586396d96f0vboxsync * If you received this file as part of a commercial VirtualBox
17ef1920962b3df57bf6d2704ced1586396d96f0vboxsync * distribution, then only the terms of your commercial VirtualBox
17ef1920962b3df57bf6d2704ced1586396d96f0vboxsync * license agreement apply instead of the previous paragraph.
17ef1920962b3df57bf6d2704ced1586396d96f0vboxsync public VirtualBoxSupportErrorInfoImpl <Display, IDisplay>,
c1b4529a269091edd0274bd98d35b75663fd66c0vboxsync // public initializer/uninitializer for internal purposes only
fe14fe6d46ce87a9b25cbdacb3a20b1f87bf34c7vboxsync // public methods only for internal purposes
fe14fe6d46ce87a9b25cbdacb3a20b1f87bf34c7vboxsync int handleDisplayResize (uint32_t bpp, void *pvVRAM, uint32_t cbLine, int w, int h);
fe14fe6d46ce87a9b25cbdacb3a20b1f87bf34c7vboxsync void handleDisplayUpdate (int x, int y, int cx, int cy);
fe14fe6d46ce87a9b25cbdacb3a20b1f87bf34c7vboxsync int VideoAccelEnable (bool fEnable, VBVAMEMORY *pVbvaMemory);
fe14fe6d46ce87a9b25cbdacb3a20b1f87bf34c7vboxsync void VideoAccelVRDP (bool fEnable, uint32_t fu32SupportedOrders);
fe14fe6d46ce87a9b25cbdacb3a20b1f87bf34c7vboxsync#endif /* VRDP_MC */
fe14fe6d46ce87a9b25cbdacb3a20b1f87bf34c7vboxsync#endif /* VBOX_VRDP */
fe14fe6d46ce87a9b25cbdacb3a20b1f87bf34c7vboxsync // IConsoleCallback methods
fe14fe6d46ce87a9b25cbdacb3a20b1f87bf34c7vboxsync STDMETHOD(OnMousePointerShapeChange)(BOOL visible, BOOL alpha, ULONG xHot, ULONG yHot,
fe14fe6d46ce87a9b25cbdacb3a20b1f87bf34c7vboxsync STDMETHOD(OnMouseCapabilityChange)(BOOL supportsAbsolute, BOOL needsHostCursor)
8867771015571c5542d39e393d7fe6304421a928vboxsync STDMETHOD(OnStateChange)(MachineState_T machineState);
8867771015571c5542d39e393d7fe6304421a928vboxsync STDMETHOD(OnKeyboardLedsChange)(BOOL fNumLock, BOOL fCapsLock, BOOL fScrollLock)
8867771015571c5542d39e393d7fe6304421a928vboxsync STDMETHOD(OnRuntimeError)(BOOL fatal, INPTR BSTR id, INPTR BSTR message)
f5edc444546b57af847ae33f2bd1e10442496e47vboxsync // IDisplay properties
9de47c4ec7b0fc9a384e4b815153de399da7b8devboxsync STDMETHOD(COMGETTER(ColorDepth)) (ULONG *colorDepth);
8867771015571c5542d39e393d7fe6304421a928vboxsync // IDisplay methods
fe14fe6d46ce87a9b25cbdacb3a20b1f87bf34c7vboxsync STDMETHOD(RegisterExternalFramebuffer)(IFramebuffer *frameBuf);
fe14fe6d46ce87a9b25cbdacb3a20b1f87bf34c7vboxsync STDMETHOD(SetVideoModeHint)(ULONG width, ULONG height, ULONG colorDepth);
fe14fe6d46ce87a9b25cbdacb3a20b1f87bf34c7vboxsync STDMETHOD(TakeScreenShot)(BYTE *address, ULONG width, ULONG height);
fe14fe6d46ce87a9b25cbdacb3a20b1f87bf34c7vboxsync STDMETHOD(DrawToScreen)(BYTE *address, ULONG x, ULONG y, ULONG width, ULONG height);
c1b4529a269091edd0274bd98d35b75663fd66c0vboxsync // for VirtualBoxSupportErrorInfoImpl
c1b4529a269091edd0274bd98d35b75663fd66c0vboxsync static const wchar_t *getComponentName() { return L"Display"; }
8867771015571c5542d39e393d7fe6304421a928vboxsync void updateDisplayData (bool aCheckParams = false);
8867771015571c5542d39e393d7fe6304421a928vboxsync static DECLCALLBACK(int) changeFramebuffer (Display *that, IFramebuffer *aFB,
9de47c4ec7b0fc9a384e4b815153de399da7b8devboxsync static DECLCALLBACK(void*) drvQueryInterface(PPDMIBASE pInterface, PDMINTERFACE enmInterface);
9de47c4ec7b0fc9a384e4b815153de399da7b8devboxsync static DECLCALLBACK(int) drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle);
9de47c4ec7b0fc9a384e4b815153de399da7b8devboxsync static DECLCALLBACK(void) drvDestruct(PPDMDRVINS pDrvIns);
4c464a0800535c29782d7ab5bcd7820bc7115cd7vboxsync static DECLCALLBACK(int) displayResizeCallback(PPDMIDISPLAYCONNECTOR pInterface, uint32_t bpp, void *pvVRAM, uint32_t cbLine, uint32_t cx, uint32_t cy);
9de47c4ec7b0fc9a384e4b815153de399da7b8devboxsync static DECLCALLBACK(void) displayUpdateCallback(PPDMIDISPLAYCONNECTOR pInterface,
9de47c4ec7b0fc9a384e4b815153de399da7b8devboxsync static DECLCALLBACK(void) displayRefreshCallback(PPDMIDISPLAYCONNECTOR pInterface);
9de47c4ec7b0fc9a384e4b815153de399da7b8devboxsync static DECLCALLBACK(void) displayResetCallback(PPDMIDISPLAYCONNECTOR pInterface);
8867771015571c5542d39e393d7fe6304421a928vboxsync static DECLCALLBACK(void) displayLFBModeChangeCallback(PPDMIDISPLAYCONNECTOR pInterface, bool fEnabled);
9de47c4ec7b0fc9a384e4b815153de399da7b8devboxsync /** Pointer to the associated display driver. */
fe14fe6d46ce87a9b25cbdacb3a20b1f87bf34c7vboxsync /** Pointer to the device instance for the VMM Device. */
fe14fe6d46ce87a9b25cbdacb3a20b1f87bf34c7vboxsync /** Set after the first attempt to find the VMM Device. */
c1b4529a269091edd0274bd98d35b75663fd66c0vboxsync /** bitmask of acceleration operations supported by current framebuffer */
c1b4529a269091edd0274bd98d35b75663fd66c0vboxsync /* arguments of the last handleDisplayResize() call */
c1b4529a269091edd0274bd98d35b75663fd66c0vboxsync bool vbvaFetchCmd (VBVACMDHDR **ppHdr, uint32_t *pcbCmd);
c1b4529a269091edd0274bd98d35b75663fd66c0vboxsync void vbvaReleaseCmd (VBVACMDHDR *pHdr, int32_t cbCmd);
fe14fe6d46ce87a9b25cbdacb3a20b1f87bf34c7vboxsync#endif // ____H_DISPLAYIMPL