Public Types | Public Member Functions | Friends

VGDevice Class Reference
[Virtual Graphic System]

Generic platform independant drawing device. More...

List of all members.

Public Types

enum  VRasterOpMode {
  kUnknown = 0, kOpCopy = 1, kOpAnd = 2, kOpXOr = 4,
  kOpInvert = 8, kOpOr = 16
}
 

Raster operation modes (color fill, bit copy, etc.)

More...
enum  VTextAlignMode {
  kAlignBase = 1, kAlignBottom = 2, kAlignTop = 4, kAlignCenter = 8,
  kAlignLeft = 16, kAlignRight = 32, kAlignBaseLeft = kAlignLeft | kAlignBase
}
 

Text alignment modes.

More...

Public Member Functions

virtual ~VGDevice ()
virtual bool IsValid () const =0
 Returns the ability of the current VGdevice to be drawn into.
virtual bool BeginDraw ()=0
virtual void EndDraw ()=0
virtual void InvalidateRect (float left, float top, float right, float bottom)=0
virtual void MoveTo (float x, float y)=0
 Moves the current position to the point specified by (x,y).
virtual void LineTo (float x, float y)=0
virtual void Line (float x1, float y1, float x2, float y2)=0
virtual void Frame (float left, float top, float right, float bottom)=0
virtual void Arc (float left, float top, float right, float bottom, float startX, float startY, float endX, float endY)=0
virtual void Triangle (float x1, float y1, float x2, float y2, float x3, float y3)=0
virtual void Polygon (const float *xCoords, const float *yCoords, int count)=0
virtual void Rectangle (float left, float top, float right, float bottom)=0
virtual void SetMusicFont (const VGFont *font)=0
virtual const VGFontGetMusicFont () const =0
 Returns the currently selected music VGFont.
virtual void SetTextFont (const VGFont *font)=0
virtual const VGFontGetTextFont () const =0
 Returns the currently selected text VGFont.
virtual void selectfont (int)
 Selects a font (only for SVG device).
virtual void SelectPen (const VGColor &inColor, float witdh)=0
virtual void SelectFillColor (const VGColor &c)=0
virtual void PushPen (const VGColor &inColor, float inWidth)=0
virtual void PopPen ()=0
virtual void PushFillColor (const VGColor &inColor)=0
virtual void PopFillColor ()=0
virtual void SetRasterOpMode (VRasterOpMode ROpMode)=0
virtual VRasterOpMode GetRasterOpMode () const =0
virtual bool CopyPixels (VGDevice *pSrcDC, float alpha=-1.0)=0
virtual bool CopyPixels (int xDest, int yDest, VGDevice *pSrcDC, int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, float alpha=-1.0)=0
virtual bool CopyPixels (int xDest, int yDest, int dstWidth, int dstHeight, VGDevice *pSrcDC, float alpha=-1.0)=0
virtual bool CopyPixels (int xDest, int yDest, int dstWidth, int dstHeight, VGDevice *pSrcDC, int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, float alpha=-1.0)=0
virtual void SetScale (float x, float y)=0
 Sets the scale factors of the current VGDevice to the input values.
virtual void SetOrigin (float x, float y)=0
 Specifies which VGDevice point (x,y) maps to the window origin (0,0).
virtual void OffsetOrigin (float x, float y)=0
 Offsets the current VGDevice's origin (see above).
virtual void LogicalToDevice (float *x, float *y) const =0
virtual void DeviceToLogical (float *x, float *y) const =0
virtual float GetXScale () const =0
virtual float GetYScale () const =0
virtual float GetXOrigin () const =0
virtual float GetYOrigin () const =0
virtual void NotifySize (int inWidth, int inHeight)=0
virtual int GetWidth () const =0
 Returns the width (set via NotifySize) of the current VGDevice.
virtual int GetHeight () const =0
 Returns the height (set via NotifySize) of the current VGDevice.
virtual void DrawMusicSymbol (float x, float y, unsigned int inSymbolID)=0
virtual void DrawString (float x, float y, const char *s, int inCharCount)=0
virtual void SetFontColor (const VGColor &inColor)=0
 Sets the text/music color for the current VGDevice.
virtual VGColor GetFontColor () const =0
 Returns the text/music color of the current VGDevice.
virtual void SetFontBackgroundColor (const VGColor &inColor)=0
 Sets the text/music background color for the current VGDevice.
virtual VGColor GetFontBackgroundColor () const =0
 Returns the text/music background color of the current VGDevice.
virtual void SetFontAlign (unsigned int inAlign)=0
virtual unsigned int GetFontAlign () const =0
virtual void SetDPITag (float inDPI)=0
 Sets the printing resolution of the current VGDevice.
virtual float GetDPITag () const =0
 Returns the printing resolution of the current VGDevice.
virtual void * GetBitMapPixels ()=0
 Allows pixels operations and returns a pointer to the bitmap pixels.
virtual void ReleaseBitMapPixels ()=0
 Update bitmap pixels and ends pixels operations.
virtual const char * GetImageData (const char *&outDataPtr, int &outLength)=0
 Gives the current device data and returns the data associated mime type.
virtual void ReleaseImageData (const char *) const =0
 Release the pointer returned by GetImageData.
virtual VGSystemgetVGSystem () const =0
 temporary hack - must be removed asap
virtual void * GetNativeContext () const =0
 Exports all graphical data to an image file.
virtual void SelectPenColor (const VGColor &inColor)=0
 Creates a new VGPen object with the specified VGColor.
virtual void SelectPenWidth (float witdh)=0
 Creates a new VGPen object with the specified VGColor.
virtual void PushPenColor (const VGColor &inColor)=0
virtual void PopPenColor ()=0
virtual void PushPenWidth (float width)=0
virtual void PopPenWidth ()=0

Friends

class VGFont
class DecoratorDevice

Detailed Description

Generic platform independant drawing device.

VGDevice is a pure virtual class that declares the minimal set of methods required by the GGR (Guido Graphic Representation) objects to communicate their graphical operations. Implementations of VGDevice derived classes must then be provided by client applications.

VGDevice thus provides standard graphic functions (Lines, Arc, Rectangles, Polygons, Text), coordinate transformation (zoom / scaling), and symbolic music symbols handlers.

A VGDevice can be seen as the association of:

To allow using a VGDevice for double buffering mechanism, it also provides bit-block copy operations from one VGDevice to another.

Each VGDevice needs to be dynamicaly associated with external music and text VGFont objects, using the appropriate SetFont() method. Here we have to repeat that Guido, for higher abstraction, makes a clear distinction between text characters and music symbols, although music symbols are generally glyphs in a music font.


Member Enumeration Documentation

Raster operation modes (color fill, bit copy, etc.)

Enumerator:
kUnknown 
kOpCopy 
kOpAnd 
kOpXOr 
kOpInvert 
kOpOr 

Text alignment modes.

Enumerator:
kAlignBase 
kAlignBottom 
kAlignTop 
kAlignCenter 
kAlignLeft 
kAlignRight 
kAlignBaseLeft 

Constructor & Destructor Documentation

virtual ~VGDevice (  ) [inline, virtual]

Member Function Documentation

virtual bool IsValid (  ) const [pure virtual]

Returns the ability of the current VGdevice to be drawn into.

virtual bool BeginDraw (  ) [pure virtual]

Prepares the device's context before a set of drawing operations and saves the current one (like the previous SaveDC() method). This method should be used before every set of drawing operation.

virtual void EndDraw (  ) [pure virtual]

Restores the device's context after a set of drawing operations. and restore the previous one (like the previous RestoreDC() method). This method should be used after every set of drawing operation.

virtual void InvalidateRect ( float  left,
float  top,
float  right,
float  bottom 
) [pure virtual]

Invalidate a rectangle i.e. indicates the native graphic device that the corresponding rectangle needs to be refreshed.

virtual void MoveTo ( float  x,
float  y 
) [pure virtual]

Moves the current position to the point specified by (x,y).

virtual void LineTo ( float  x,
float  y 
) [pure virtual]

Draws a line from the current position up to, but not including, the point specified by (x,y).

virtual void Line ( float  x1,
float  y1,
float  x2,
float  y2 
) [pure virtual]

Draws a line from the position specified by (x1,y1) up to, but not including, the point specified by (x2,y2).

virtual void Frame ( float  left,
float  top,
float  right,
float  bottom 
) [pure virtual]

Draws a frame using the specified coordinates. The frame is outlined by using the current pen, but not filled.

virtual void Arc ( float  left,
float  top,
float  right,
float  bottom,
float  startX,
float  startY,
float  endX,
float  endY 
) [pure virtual]

Draws a counter-clockwise elliptical arc between the startX, startY, endX & endY coordinates and inside the [left, top, right, bottom] elliptical bounding box. The distance from these points to the middle of the ellipse is not important, only the angle is taken in account.

virtual void Triangle ( float  x1,
float  y1,
float  x2,
float  y2,
float  x3,
float  y3 
) [pure virtual]

Draws a triangle consisting of three points connected by straight lines. The triangle is NOT outlined but simply filled using the current fill color.

virtual void Polygon ( const float *  xCoords,
const float *  yCoords,
int  count 
) [pure virtual]

Draws a polygon consisting of count vertices connected by straight lines. The polygon is NOT outlined but simply filled using the current fill color.

virtual void Rectangle ( float  left,
float  top,
float  right,
float  bottom 
) [pure virtual]

Draws a rectangle. The rectangle is NOT outlined but simply filled using the current fill color.

virtual void SetMusicFont ( const VGFont font ) [pure virtual]

Selects the specified music VGFont into the current VGDevice. Warning ! this method doesn't return the previously selected font anymore. Use GetMusicFont() instead.

virtual const VGFont* GetMusicFont (  ) const [pure virtual]

Returns the currently selected music VGFont.

virtual void SetTextFont ( const VGFont font ) [pure virtual]

Selects the specified text VGFont into the current VGDevice. Warning ! this method doesn't return the previously selected font anymore. Use GetMusicFont() instead.

virtual const VGFont* GetTextFont (  ) const [pure virtual]

Returns the currently selected text VGFont.

virtual void selectfont ( int   ) [inline, virtual]

Selects a font (only for SVG device).

virtual void SelectPen ( const VGColor inColor,
float  witdh 
) [pure virtual]

Creates a new VGPen object with the specified VGColor and width and selects it into the current VGDevice.

virtual void SelectFillColor ( const VGColor c ) [pure virtual]

Creates a new solid brush (to paint the interiors of filled shapes) with the specified VGColor and selects it into the current VGDevice. This method was previously called SelectBrush().

virtual void PushPen ( const VGColor inColor,
float  inWidth 
) [pure virtual]

Saves the current VGPen and selects the new one using the specified VGColor and width into the current VGDevice.

virtual void PopPen (  ) [pure virtual]

Restores the previous VGPen object from the stack into the current VGDevice.

virtual void PushFillColor ( const VGColor inColor ) [pure virtual]

Saves the current color brush and selects the new one using the specified VGColor into the current VGDevice. This method was previously called PushBrush().

virtual void PopFillColor (  ) [pure virtual]

Restores the previous color brush from the stack into the current VGDevice. This method was previously called PopBrush().

virtual void SetRasterOpMode ( VRasterOpMode  ROpMode ) [pure virtual]

Sets the current foreground mix mode. We use the foreground mix mode to combine pens and interiors of filled objects with the colors already on the device. The foreground mix mode defines how colors from the brush or pen and the colors in the existing image are to be combined. See enum VRasterOpMode above.

virtual VRasterOpMode GetRasterOpMode (  ) const [pure virtual]

Retrieves the foreground mix mode of the specified device. The mix mode specifies how the pen or interior color and the color already on the device are combined to yield a new color.

virtual bool CopyPixels ( VGDevice pSrcDC,
float  alpha = -1.0 
) [pure virtual]

Copies the entire content (pixmap) of the pSrcDC source VGDevice to the current device. The raster operation mode should be specified using SetRasterOpMode(). Default alpha (-1.0) means copying bits using their own transparency values, if any; if no alpha channel value is available, opaque copy (alpha = 1.0) is performed.

virtual bool CopyPixels ( int  xDest,
int  yDest,
VGDevice pSrcDC,
int  xSrc,
int  ySrc,
int  nSrcWidth,
int  nSrcHeight,
float  alpha = -1.0 
) [pure virtual]

Makes the exact copy of the content (pixmap) of the specified rectangle from the pSrcDC source VGDevice to the specified destination of the current device. The raster operation mode should be specified using SetRasterOpMode(). Default alpha (-1.0) means copying bits using their own transparency values, if any; if no alpha channel value is available, opaque copy (alpha = 1.0) is performed.

virtual bool CopyPixels ( int  xDest,
int  yDest,
int  dstWidth,
int  dstHeight,
VGDevice pSrcDC,
float  alpha = -1.0 
) [pure virtual]

Copies a pixmap from a source rectangle into a destination rectangle, stretching or compressing the pixmap to fit the dimensions of the destination rectangle, if necessary. The method stretches or compresses the pixmap using the raster mode currently set in the destination VGdevice. Default alpha (-1.0) means copying bits using their own transparency values, if any; if no alpha channel value is available, opaque copy (alpha = 1.0) is performed.

virtual bool CopyPixels ( int  xDest,
int  yDest,
int  dstWidth,
int  dstHeight,
VGDevice pSrcDC,
int  xSrc,
int  ySrc,
int  nSrcWidth,
int  nSrcHeight,
float  alpha = -1.0 
) [pure virtual]

Copies a pixmap from a source rectangle into a destination rectangle, stretching or compressing the pixmap to fit the dimensions of the destination rectangle, if necessary. The method stretches or compresses the pixmap using the raster mode currently set in the destination VGdevice. Default alpha (-1.0) means copying bits using their own transparency values, if any; if no alpha channel value is available, opaque copy (alpha = 1.0) is performed.

virtual void SetScale ( float  x,
float  y 
) [pure virtual]

Sets the scale factors of the current VGDevice to the input values.

virtual void SetOrigin ( float  x,
float  y 
) [pure virtual]

Specifies which VGDevice point (x,y) maps to the window origin (0,0).

virtual void OffsetOrigin ( float  x,
float  y 
) [pure virtual]

Offsets the current VGDevice's origin (see above).

virtual void LogicalToDevice ( float *  x,
float *  y 
) const [pure virtual]

Computes input coordinates to get their values in the current VGDevice coordinate system.

virtual void DeviceToLogical ( float *  x,
float *  y 
) const [pure virtual]

Computes input VGDevice coordinates to get their values outside its VGDevice coordinate system.

virtual float GetXScale (  ) const [pure virtual]

GetXScale, GetYScale, GetXOrigin, GetYOrigin : get VGDevice's scaling/coordinate atributes.

virtual float GetYScale (  ) const [pure virtual]
virtual float GetXOrigin (  ) const [pure virtual]
virtual float GetYOrigin (  ) const [pure virtual]
virtual void NotifySize ( int  inWidth,
int  inHeight 
) [pure virtual]

Sets the size of the current VGDevice. Use this method to update the derived device's attributes and actual size.

virtual int GetWidth (  ) const [pure virtual]

Returns the width (set via NotifySize) of the current VGDevice.

virtual int GetHeight (  ) const [pure virtual]

Returns the height (set via NotifySize) of the current VGDevice.

virtual void DrawMusicSymbol ( float  x,
float  y,
unsigned int  inSymbolID 
) [pure virtual]

Writes the music symbol specified by the input inSymbolID at the specified location, using the currently selected music font, background color, and text color.

virtual void DrawString ( float  x,
float  y,
const char *  s,
int  inCharCount 
) [pure virtual]

Writes the specified inCharCount number of text characters at the specified location, using the currently selected text font, background color, and text color.

virtual void SetFontColor ( const VGColor inColor ) [pure virtual]

Sets the text/music color for the current VGDevice.

virtual VGColor GetFontColor (  ) const [pure virtual]

Returns the text/music color of the current VGDevice.

virtual void SetFontBackgroundColor ( const VGColor inColor ) [pure virtual]

Sets the text/music background color for the current VGDevice.

virtual VGColor GetFontBackgroundColor (  ) const [pure virtual]

Returns the text/music background color of the current VGDevice.

virtual void SetFontAlign ( unsigned int  inAlign ) [pure virtual]

Sets the text/music alignment mode of the current VGDevice. See enum VTextAlignMode above.

virtual unsigned int GetFontAlign (  ) const [pure virtual]

Returns the text/music alignment mode of the current VGDevice. See enum VTextAlignMode above.

virtual void SetDPITag ( float  inDPI ) [pure virtual]

Sets the printing resolution of the current VGDevice.

virtual float GetDPITag (  ) const [pure virtual]

Returns the printing resolution of the current VGDevice.

virtual void* GetBitMapPixels (  ) [pure virtual]

Allows pixels operations and returns a pointer to the bitmap pixels.

virtual void ReleaseBitMapPixels (  ) [pure virtual]

Update bitmap pixels and ends pixels operations.

virtual const char* GetImageData ( const char *&  outDataPtr,
int &  outLength 
) [pure virtual]

Gives the current device data and returns the data associated mime type.

virtual void ReleaseImageData ( const char *   ) const [pure virtual]

Release the pointer returned by GetImageData.

virtual VGSystem* getVGSystem (  ) const [pure virtual]

temporary hack - must be removed asap

virtual void* GetNativeContext (  ) const [pure virtual]

Exports all graphical data to an image file.

Returns the platform-specific device context object.

Referenced by VGFont::GetContext().

virtual void SelectPenColor ( const VGColor inColor ) [pure virtual]

Creates a new VGPen object with the specified VGColor.

virtual void SelectPenWidth ( float  witdh ) [pure virtual]

Creates a new VGPen object with the specified VGColor.

virtual void PushPenColor ( const VGColor inColor ) [pure virtual]
virtual void PopPenColor (  ) [pure virtual]
virtual void PushPenWidth ( float  width ) [pure virtual]
virtual void PopPenWidth (  ) [pure virtual]

Friends And Related Function Documentation

friend class VGFont [friend]
friend class DecoratorDevice [friend]