VSTGUI  4.4
Graphical User Interface Framework not only for VST plugins
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Groups Pages
COffscreenContext Class Reference

A draw context using a bitmap as it's back buffer. More...

+ Inheritance diagram for COffscreenContext:

Public Member Functions

CBitmapgetBitmap () const
 
COffscreenContext Methods
void copyFrom (CDrawContext *pContext, CRect destRect, CPoint srcOffset=CPoint(0, 0))
 copy from offscreen to pContext More...
 
CCoord getWidth () const
 
CCoord getHeight () const
 
- Public Member Functions inherited from CDrawContext
virtual double getScaleFactor () const
 
virtual void beginDraw ()
 
virtual void endDraw ()
 
virtual bool isTypeOf (IdStringPtr s) const
 
virtual CBaseObjectnewCopy () const
 
virtual void setLineStyle (const CLineStyle &style)
 set the current line style More...
 
const CLineStylegetLineStyle () const
 get the current line style More...
 
virtual void setLineWidth (CCoord width)
 set the current line width More...
 
CCoord getLineWidth () const
 get the current line width More...
 
virtual void setDrawMode (CDrawMode mode)
 set the current draw mode, see CDrawMode More...
 
CDrawMode getDrawMode () const
 get the current draw mode, see CDrawMode More...
 
virtual void setClipRect (const CRect &clip)
 set the current clip More...
 
CRectgetClipRect (CRect &clip) const
 get the current clip More...
 
virtual void resetClipRect ()
 reset the clip to the default state More...
 
virtual void setFillColor (const CColor &color)
 set current fill color More...
 
CColor getFillColor () const
 get current fill color More...
 
virtual void setFrameColor (const CColor &color)
 set current stroke color More...
 
CColor getFrameColor () const
 get current stroke color More...
 
virtual void setFontColor (const CColor &color)
 set current font color More...
 
CColor getFontColor () const
 get current font color More...
 
virtual void setFont (const CFontRef font, const CCoord &size=0, const int32_t &style=-1)
 set current font More...
 
const CFontRef getFont () const
 get current font More...
 
CCoord getStringWidth (UTF8StringPtr pStr)
 get the width of an UTF-8 encoded string More...
 
void drawString (UTF8StringPtr string, const CRect &_rect, const CHoriTxtAlign hAlign=kCenterText, bool antialias=true)
 draw an UTF-8 encoded string More...
 
void drawString (UTF8StringPtr string, const CPoint &_point, bool antialias=true)
 draw an UTF-8 encoded string More...
 
CCoord getStringWidth (IPlatformString *pStr)
 get the width of a platform string More...
 
void drawString (IPlatformString *string, const CRect &_rect, const CHoriTxtAlign hAlign=kCenterText, bool antialias=true)
 draw a platform string More...
 
void drawString (IPlatformString *string, const CPoint &_point, bool antialias=true)
 draw a platform string More...
 
virtual void setGlobalAlpha (float newAlpha)
 sets the global alpha value[0..1] More...
 
float getGlobalAlpha () const
 get current global alpha value More...
 
virtual void saveGlobalState ()
 
virtual void restoreGlobalState ()
 
const CGraphicsTransformgetCurrentTransform () const
 
const CRectgetAbsoluteClipRect () const
 
void moveTo (const CPoint &point)
 
void lineTo (const CPoint &point)
 
void getLoc (CPoint &where) const
 
void drawLines (const CPoint *points, const int32_t &numberOfLines)
 
void drawPolygon (const CPoint *pPoints, int32_t numberOfPoints, const CDrawStyle drawStyle=kDrawStroked)
 
void drawLine (const CPoint &start, const CPoint &end)
 
virtual void drawLine (const LinePair &line)=0
 draw a line More...
 
virtual void drawLines (const LineList &lines)=0
 draw multiple lines at once More...
 
virtual void drawPolygon (const PointList &polygonPointList, const CDrawStyle drawStyle=kDrawStroked)=0
 draw a polygon More...
 
virtual void drawRect (const CRect &rect, const CDrawStyle drawStyle=kDrawStroked)=0
 draw a rect More...
 
virtual void drawArc (const CRect &rect, const float startAngle1, const float endAngle2, const CDrawStyle drawStyle=kDrawStroked)=0
 draw an arc, angles are in degree More...
 
virtual void drawEllipse (const CRect &rect, const CDrawStyle drawStyle=kDrawStroked)=0
 draw an ellipse More...
 
virtual void drawPoint (const CPoint &point, const CColor &color)=0
 draw a point More...
 
virtual void drawBitmap (CBitmap *bitmap, const CRect &dest, const CPoint &offset=CPoint(0, 0), float alpha=1.f)=0
 don't call directly, please use CBitmap::draw instead More...
 
virtual void drawBitmapNinePartTiled (CBitmap *bitmap, const CRect &dest, const CNinePartTiledDescription &desc, float alpha=1.f)
 
virtual void fillRectWithBitmap (CBitmap *bitmap, const CRect &srcRect, const CRect &dstRect, float alpha)
 
virtual void clearRect (const CRect &rect)=0
 clears the rect (makes r = 0, g = 0, b = 0, a = 0) More...
 
virtual CGraphicsPathcreateGraphicsPath ()=0
 create a graphics path object, you need to forget it after usage More...
 
virtual CGraphicsPathcreateTextPath (const CFontRef font, UTF8StringPtr text)=0
 create a graphics path from a text More...
 
CGraphicsPathcreateRoundRectGraphicsPath (const CRect &size, CCoord radius)
 create a rect with round corners as graphics path, you need to forget it after usage More...
 
virtual void drawGraphicsPath (CGraphicsPath *path, PathDrawMode mode=kPathFilled, CGraphicsTransform *transformation=0)=0
 
virtual void fillLinearGradient (CGraphicsPath *path, const CGradient &gradient, const CPoint &startPoint, const CPoint &endPoint, bool evenOdd=false, CGraphicsTransform *transformation=0)=0
 
virtual void fillRadialGradient (CGraphicsPath *path, const CGradient &gradient, const CPoint &center, CCoord radius, const CPoint &originOffset=CPoint(0, 0), bool evenOdd=false, CGraphicsTransform *transformation=0)=0
 
- Public Member Functions inherited from CBaseObject
 CBaseObject ()
 
virtual ~CBaseObject ()
 
virtual void beforeDelete ()
 
virtual void forget ()
 decrease refcount and delete object if refcount == 0 More...
 
virtual void remember ()
 increase refcount More...
 
virtual int32_t getNbReference () const
 get refcount More...
 
virtual CMessageResult notify (CBaseObject *sender, IdStringPtr message)
 

Static Public Member Functions

static COffscreenContextcreate (CFrame *frame, CCoord width, CCoord height, double scaleFactor=1.)
 

Protected Member Functions

 COffscreenContext (CBitmap *bitmap)
 
 COffscreenContext (const CRect &surfaceRect)
 
 ~COffscreenContext ()
 
- Protected Member Functions inherited from CDrawContext
 CDrawContext (const CRect &surfaceRect)
 
 ~CDrawContext ()
 
virtual void init ()
 
void pushTransform (const CGraphicsTransform &transformation)
 
void popTransform ()
 
const CStringgetDrawString (UTF8StringPtr string)
 
void clearDrawString ()
 

Protected Attributes

CBitmapbitmap
 
- Protected Attributes inherited from CDrawContext
CStringdrawStringHelper
 
CRect surfaceRect
 
CDrawContextState currentState
 

Additional Inherited Members

- Public Types inherited from CDrawContext
typedef std::pair< CPoint, CPointLinePair
 
typedef std::vector< LinePairLineList
 
typedef std::vector< CPointPointList
 
enum  PathDrawMode { kPathFilled, kPathFilledEvenOdd, kPathStroked }
 

Detailed Description

A draw context using a bitmap as it's back buffer.

There are two usage scenarios :

Drawing into a bitmap and then push the contents into another draw context

COffscreenContext* offscreen = COffscreenContext::create (frame, 100, 100);
if (offscreen)
{
offscreen->beginDraw ();
// ...
// draw into offscreen
// ...
offscreen->endDraw ();
offscreen->copyFrom (otherContext, destRect);
offscreen->forget ();
}

Drawing static content into a bitmap and reuse the bitmap for drawing

if (cachedBitmap == 0)
{
COffscreenContext* offscreen = COffscreenContext::create (frame, 100, 100);
if (offscreen)
{
offscreen->beginDraw ();
// ...
// draw into offscreen
// ...
offscreen->endDraw ();
cachedBitmap = offscreen->getBitmap ();
if (cachedBitmap)
cachedBitmap->remember ();
offscreen->forget ();
}
}
if (cachedBitmap)
{
// ...
}

Constructor & Destructor Documentation

COffscreenContext ( CBitmap bitmap)
protected
COffscreenContext ( const CRect surfaceRect)
protected
~COffscreenContext ( )
protected

Member Function Documentation

void copyFrom ( CDrawContext pContext,
CRect  destRect,
CPoint  srcOffset = CPoint (0, 0) 
)

copy from offscreen to pContext

COffscreenContext * create ( CFrame frame,
CCoord  width,
CCoord  height,
double  scaleFactor = 1. 
)
static
CBitmap* getBitmap ( ) const
inline
CCoord getHeight ( ) const
CCoord getWidth ( ) const

Member Data Documentation

CBitmap* bitmap
protected

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