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