Logo Search packages:      
Sourcecode: virtualbox-ose version File versions

VBoxFrameBuffer Class Reference

#include <VBoxFrameBuffer.h>

List of all members.


Detailed Description

Common IFramebuffer implementation for all methods used by GUI to maintain the VM display video memory.

Note that although this class can be called from multiple threads (in particular, the GUI thread and EMT) it doesn't protect access to every data field using its mutex lock. This is because all synchronization between the GUI and the EMT thread is supposed to be done using the IFramebuffer::NotifyUpdate() and IFramebuffer::RequestResize() methods (in particular, the aFinished parameter of these methods is responsible for the synchronization). These methods are always called on EMT and therefore always follow one another but never in parallel.

Using this object's mutex lock (exposed also in IFramebuffer::Lock() and IFramebuffer::Unlock() implementations) usually makes sense only if some third-party thread (i.e. other than GUI or EMT) needs to make sure that *no* VM display update or resize event can occur while it is accessing IFramebuffer properties or the underlying display memory storage area.

See IFramebuffer documentation for more info.

Base class for all frame buffer implementations.

Definition at line 155 of file VBoxFrameBuffer.h.


Public Member Functions

virtual uchar * address ()=0
virtual uchar * address ()=0
virtual ulong bitsPerPixel ()=0
virtual ulong bitsPerPixel ()=0
virtual ulong bytesPerLine ()=0
virtual ulong bytesPerLine ()=0
STDMETHOD() CopyScreenBits (ULONG aXDst, ULONG aYDst, ULONG aXSrc, ULONG aYSrc, ULONG aWidth, ULONG aHeight, BOOL *aHandled)
STDMETHOD() CopyScreenBits (ULONG aXDst, ULONG aYDst, ULONG aXSrc, ULONG aYSrc, ULONG aWidth, ULONG aHeight, BOOL *aHandled)
STDMETHOD() GetVisibleRegion (BYTE *aRectangles, ULONG aCount, ULONG *aCountCopied)
STDMETHOD() GetVisibleRegion (BYTE *aRectangles, ULONG aCount, ULONG *aCountCopied)
ulong height ()
ulong height ()
void lock ()
STDMETHOD() Lock ()
void lock ()
STDMETHOD() Lock ()
virtual void moveEvent (QMoveEvent *)
virtual void moveEvent (QMoveEvent *)
STDMETHOD() OperationSupported (FramebufferAccelerationOperation_T aOperation, BOOL *aSupported)
STDMETHOD() OperationSupported (FramebufferAccelerationOperation_T aOperation, BOOL *aSupported)
virtual void paintEvent (QPaintEvent *pe)=0
virtual void paintEvent (QPaintEvent *pe)=0
virtual ulong pixelFormat ()
virtual ulong pixelFormat ()
STDMETHOD() RequestResize (ULONG aScreenId, ULONG aPixelFormat, BYTE *aVRAM, ULONG aBitsPerPixel, ULONG aBytesPerLine, ULONG aWidth, ULONG aHeight, BOOL *aFinished)
STDMETHOD() RequestResize (ULONG aScreenId, ULONG aPixelFormat, BYTE *aVRAM, ULONG aBitsPerPixel, ULONG aBytesPerLine, ULONG aWidth, ULONG aHeight, BOOL *aFinished)
virtual void resizeEvent (VBoxResizeEvent *re)
virtual void resizeEvent (VBoxResizeEvent *re)
STDMETHOD() SetVisibleRegion (BYTE *aRectangles, ULONG aCount)
STDMETHOD() SetVisibleRegion (BYTE *aRectangles, ULONG aCount)
STDMETHOD() SolidFill (ULONG aX, ULONG aY, ULONG aWidth, ULONG aHeight, ULONG aColor, BOOL *aHandled)
STDMETHOD() SolidFill (ULONG aX, ULONG aY, ULONG aWidth, ULONG aHeight, ULONG aColor, BOOL *aHandled)
 STDMETHOD (COMGETTER(WinId))(ULONG64 *winId)
 STDMETHOD (COMGETTER(Overlay))(IFramebufferOverlay **aOverlay)
 STDMETHOD (COMGETTER(HeightReduction))(ULONG *aHeightReduction)
 STDMETHOD (COMGETTER(UsesGuestVRAM))(BOOL *aUsesGuestVRAM)
 STDMETHOD (COMGETTER(PixelFormat))(ULONG *aPixelFormat)
 STDMETHOD (COMGETTER(BytesPerLine))(ULONG *aBytesPerLine)
 STDMETHOD (COMGETTER(BitsPerPixel))(ULONG *aBitsPerPixel)
 STDMETHOD (COMGETTER(Height))(ULONG *aHeight)
 STDMETHOD (COMGETTER(Width))(ULONG *aWidth)
NS_DECL_ISUPPORTS STDMETHOD (COMGETTER(Address))(BYTE **aAddress)
 STDMETHOD (COMGETTER(WinId))(ULONG64 *winId)
 STDMETHOD (COMGETTER(Overlay))(IFramebufferOverlay **aOverlay)
 STDMETHOD (COMGETTER(HeightReduction))(ULONG *aHeightReduction)
 STDMETHOD (COMGETTER(UsesGuestVRAM))(BOOL *aUsesGuestVRAM)
 STDMETHOD (COMGETTER(PixelFormat))(ULONG *aPixelFormat)
 STDMETHOD (COMGETTER(BytesPerLine))(ULONG *aBytesPerLine)
 STDMETHOD (COMGETTER(BitsPerPixel))(ULONG *aBitsPerPixel)
 STDMETHOD (COMGETTER(Height))(ULONG *aHeight)
 STDMETHOD (COMGETTER(Width))(ULONG *aWidth)
NS_DECL_ISUPPORTS STDMETHOD (COMGETTER(Address))(BYTE **aAddress)
void unlock ()
STDMETHOD() Unlock ()
void unlock ()
STDMETHOD() Unlock ()
virtual bool usesGuestVRAM ()
virtual bool usesGuestVRAM ()
 VBoxFrameBuffer (VBoxConsoleView *aView)
 VBoxFrameBuffer (VBoxConsoleView *aView)
STDMETHOD() VideoModeSupported (ULONG aWidth, ULONG aHeight, ULONG aBPP, BOOL *aSupported)
STDMETHOD() VideoModeSupported (ULONG aWidth, ULONG aHeight, ULONG aBPP, BOOL *aSupported)
ulong width ()
ulong width ()

Protected Attributes

int mHgt
QMutex * mMutex
VBoxConsoleViewmView
int mWdt

The documentation for this class was generated from the following files:

Generated by  Doxygen 1.6.0   Back to index