DisplayImpl.h revision 6dea6d87ed79bc0994d314fed1c90431091e8820
59190ecd61435d19ba3515b876272aee7bd12298vboxsync * VirtualBox COM class implementation
59190ecd61435d19ba3515b876272aee7bd12298vboxsync * Copyright (C) 2006-2008 Sun Microsystems, Inc.
59190ecd61435d19ba3515b876272aee7bd12298vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
59190ecd61435d19ba3515b876272aee7bd12298vboxsync * available from http://www.virtualbox.org. This file is free software;
59190ecd61435d19ba3515b876272aee7bd12298vboxsync * you can redistribute it and/or modify it under the terms of the GNU
59190ecd61435d19ba3515b876272aee7bd12298vboxsync * General Public License (GPL) as published by the Free Software
59190ecd61435d19ba3515b876272aee7bd12298vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
59190ecd61435d19ba3515b876272aee7bd12298vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
59190ecd61435d19ba3515b876272aee7bd12298vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
59190ecd61435d19ba3515b876272aee7bd12298vboxsync * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
59190ecd61435d19ba3515b876272aee7bd12298vboxsync * Clara, CA 95054 USA or visit http://www.sun.com if you need
59190ecd61435d19ba3515b876272aee7bd12298vboxsync * additional information or have any questions.
59190ecd61435d19ba3515b876272aee7bd12298vboxsync /* The Framebuffer has default format and must be updates immediately. */
59190ecd61435d19ba3515b876272aee7bd12298vboxsync /* The rectangle that includes all dirty rectangles. */
} dirtyRect;
bool fPending;
void *pvVRAM;
#ifdef VBOX_WITH_HGSMI
bool fVBVAEnabled;
void FinalRelease();
// public initializer/uninitializer for internal purposes only
void uninit();
int handleDisplayResize (unsigned uScreenId, uint32_t bpp, void *pvVRAM, uint32_t cbLine, int w, int h);
#ifdef VBOX_WITH_VIDEOHWACCEL
void VideoAccelFlush (void);
bool VideoAccelAllowed (void);
#ifdef VBOX_WITH_VRDP
return S_OK;
return S_OK;
return S_OK;
return S_OK;
return S_OK;
return S_OK;
return S_OK;
return S_OK;
return S_OK;
return S_OK;
return S_OK;
return S_OK;
return S_OK;
return S_OK;
return S_OK;
if (canShow)
return S_OK;
if (winId)
*winId = 0;
return S_OK;
STDMETHOD(GetFramebuffer)(ULONG aScreenId, IFramebuffer **aFramebuffer, LONG *aXOrigin, LONG *aYOrigin);
unsigned uScreenId);
static DECLCALLBACK(int) displayResizeCallback(PPDMIDISPLAYCONNECTOR pInterface, uint32_t bpp, void *pvVRAM, uint32_t cbLine, uint32_t cx, uint32_t cy);
static DECLCALLBACK(void) displayLFBModeChangeCallback(PPDMIDISPLAYCONNECTOR pInterface, bool fEnabled);
static DECLCALLBACK(void) displayProcessAdapterDataCallback(PPDMIDISPLAYCONNECTOR pInterface, void *pvVRAM, uint32_t u32VRAMSize);
static DECLCALLBACK(void) displayProcessDisplayDataCallback(PPDMIDISPLAYCONNECTOR pInterface, void *pvVRAM, unsigned uScreenId);
#ifdef VBOX_WITH_VIDEOHWACCEL
static DECLCALLBACK(void) displayVHWACommandProcess(PPDMIDISPLAYCONNECTOR pInterface, PVBOXVHWACMD pCommand);
#ifdef VBOX_WITH_HGSMI
static DECLCALLBACK(void) displayVBVAUpdateBegin(PPDMIDISPLAYCONNECTOR pInterface, unsigned uScreenId);
static DECLCALLBACK(void) displayVBVAUpdateProcess(PPDMIDISPLAYCONNECTOR pInterface, unsigned uScreenId, const PVBVACMDHDR pCmd, size_t cbCmd);
static DECLCALLBACK(void) displayVBVAUpdateEnd(PPDMIDISPLAYCONNECTOR pInterface, unsigned uScreenId, uint32_t x, uint32_t y, uint32_t cx, uint32_t cy);
static DECLCALLBACK(int) displayVBVAResize(PPDMIDISPLAYCONNECTOR pInterface, const PVBVAINFOVIEW pView, const PVBVAINFOSCREEN pScreen, void *pvVRAM);
static DECLCALLBACK(int) displayVBVAMousePointerShape(PPDMIDISPLAYCONNECTOR pInterface, bool fVisible, bool fAlpha, uint32_t xHot, uint32_t yHot, uint32_t cx, uint32_t cy, const void *pvShape);
static DECLCALLBACK(int) displaySSMLoad(PSSMHANDLE pSSM, void *pvUser, uint32_t uVersion, uint32_t uPass);
bool mfVMMDevInited;
unsigned mcMonitors;
bool mFramebufferOpened;
void *mLastAddress;
int mLastWidth;
int mLastHeight;
bool mfVideoAccelEnabled;
bool mfVideoAccelVRDP;
bool mfMachineRunning;
void handleResizeCompletedEMT (void);