DisplayImpl.h revision ed0d9ad011741656c6a8456b97b036e1aa815da2
/* $Id$ */
/** @file
* VBox frontends: Basic Frontend (BFE):
* Declaration of Display class
*/
/*
* Copyright (C) 2006-2007 Oracle Corporation
*
* This file is part of VirtualBox Open Source Edition (OSE), as
* available from http://www.virtualbox.org. This file is free software;
* General Public License (GPL) as published by the Free Software
* Foundation, in version 2 as it comes in the "COPYING" file of the
* VirtualBox OSE distribution. VirtualBox OSE is distributed in the
* hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
*/
#ifndef ____H_DISPLAYIMPL
#define ____H_DISPLAYIMPL
#include <iprt/semaphore.h>
#include "Framebuffer.h"
struct VBVACMDHDR;
{
Display();
~Display();
// public methods only for internal purposes
int handleDisplayResize (int w, int h);
void VideoAccelFlush (void);
bool VideoAccelAllowed (void);
void updatePointerShape(bool fVisible, bool fAlpha, uint32_t xHot, uint32_t yHot, uint32_t width, uint32_t height, void *pShape);
STDMETHODIMP GetScreenResolution(ULONG aScreenId, ULONG *aWidth, ULONG *aHeight, ULONG *aBitsPerPixel);
void resetFramebuffer();
void setRunning(void) { mfMachineRunning = true; };
void updateDisplayData();
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);
/** Pointer to the associated display driver. */
struct DRVMAINDISPLAY *mpDrv;
bool mFramebufferOpened;
struct VBVAMEMORY *mpVbvaMemory;
bool mfVideoAccelEnabled;
struct VBVAMEMORY *mpPendingVbvaMemory;
bool mfMachineRunning;
void handleResizeCompletedEMT (void);
volatile uint32_t mu32ResizeStatus;
enum {
};
};
#endif // !____H_DISPLAYIMPL