My Project
Public Types | Public Member Functions | Protected Attributes | Friends | List of all members
ParaEngine::CPaintEngine Class Referenceabstract

The CPaintEngine class provides an abstract definition of how CPainter draws to a given device on a given platform. More...

#include <PaintEngine.h>

Inheritance diagram for ParaEngine::CPaintEngine:
ParaEngine::CPaintEngineGPU ParaEngine::CPaintEngineRaster

Public Types

enum  DirtyFlags {
  DirtyPen = 0x0001, DirtyBrush = 0x0002, DirtyBrushOrigin = 0x0004, DirtyFont = 0x0008,
  DirtyBackground = 0x0010, DirtyBackgroundMode = 0x0020, DirtyTransform = 0x0040, DirtyClipRegion = 0x0080,
  DirtyClipPath = 0x0100, DirtyHints = 0x0200, DirtyCompositionMode = 0x0400, DirtyClipEnabled = 0x0800,
  DirtyOpacity = 0x1000, AllDirty = 0xffff
}
 
enum  PolygonDrawMode { OddEvenMode, WindingMode, ConvexMode, PolylineMode }
 

Public Member Functions

virtual CPainterStatecreateState (CPainterState *orig) const
 
virtual void setState (CPainterState *s)
 
CPainterStateGetState ()
 
const CPainterStateGetState () const
 
bool isActive () const
 
void setActive (bool newState)
 
virtual bool begin (CPaintDevice *pdev)=0
 
virtual bool end ()=0
 
virtual void Flush ()
 
virtual void ApplyStateChanges ()
 
virtual void updateState (const CPaintEngineState &state)=0
 
virtual void drawRects (const QRect *rects, int rectCount)
 
virtual void drawRects (const QRectF *rects, int rectCount)
 
virtual void drawLines (const QLine *lines, int lineCount)
 
virtual void drawLines (const QLineF *lines, int lineCount)
 
virtual void drawLines (const Vector3 *vertices, int lineCount)
 
virtual void drawEllipse (const QRectF &r)
 
virtual void drawEllipse (const QRect &r)
 
virtual void drawTriangles (const Vector3 *vertices, int nTriangleCount)
 
virtual void drawPath (const CPainterPath &path)
 
virtual void drawPoints (const QPointF *points, int pointCount)
 
virtual void drawPoints (const QPoint *points, int pointCount)
 
virtual void drawPolygon (const QPointF *points, int pointCount, PolygonDrawMode mode)
 
virtual void drawPolygon (const QPoint *points, int pointCount, PolygonDrawMode mode)
 
virtual void drawPixmap (const QRectF &r, const TextureEntity &pm, const QRectF &sr)=0
 
virtual void drawTextItem (const QPointF &p, const CTextItem &textItem)
 
virtual void drawImage (const QRectF &r, const ImageEntity &pm, const QRectF &sr)
 
void setPaintDevice (CPaintDevice *device)
 
CPaintDevicepaintDevice () const
 
void setSystemClip (const QRegion &baseClip)
 
QRegion systemClip () const
 
void setSystemRect (const QRect &rect)
 
QRect systemRect () const
 
virtual QPoint coordinateOffset () const
 
bool testDirty (DirtyFlags df)
 
void setDirty (DirtyFlags df)
 
void clearDirty (DirtyFlags df)
 
CPainterpainter () const
 
virtual bool IsScissorRectSupported () const
 
virtual bool IsStencilSupported () const
 
virtual void clip (const QRect &rect, ClipOperation op=ReplaceClip)
 
virtual void SetUse3DTransform (bool bUse3DSpaceTransform)
 by default, transforms are in 2d screen space. More...
 
virtual bool IsUse3DTransform ()
 return false by default. More...
 
virtual HRESULT DrawRect (const RECT *rect, Color color, float depth)
 
virtual HRESULT DrawQuad (TextureEntity *pTexture, const RECT *pSrcRect, const Vector3 *vCenter, const Vector3 *pPosition, Color c)
 
virtual HRESULT drawText (SpriteFontEntity *pFont, const char *strText, int nCount, RECT *rect, DWORD dwTextFormat, DWORD textColor)
 
virtual HRESULT drawText (SpriteFontEntity *pFont, const char16_t *strText, int nCount, RECT *rect, DWORD dwTextFormat, DWORD textColor)
 

Protected Attributes

CPaintDevicepdev
 
CPaintEngineStatestate
 
bool active: 1
 
bool selfDestruct: 1
 
bool hasSystemTransform: 1
 
bool hasSystemViewport: 1
 
QRegion m_systemClip
 
QRect m_systemRect
 
QRegion systemViewport
 
QTransform systemTransform
 
CPaintDevicecurrentClipDevice
 

Friends

class CPainter
 

Detailed Description

The CPaintEngine class provides an abstract definition of how CPainter draws to a given device on a given platform.

If one wants to use CPainter to draw to a different backend, one must subclass CPaintEngine and reimplement all its virtual functions. The CPaintEngine implementation is then made available by subclassing QPaintDevice and reimplementing the virtual function CPaintDevice::paintEngine().

QPaintEngine is created and owned by the QPaintDevice that created it.

Note
: CPaintEngine is hidden from end users. The end user only needs to use CPainter to draw on a paint device.

Member Function Documentation

§ IsUse3DTransform()

virtual bool ParaEngine::CPaintEngine::IsUse3DTransform ( )
inlinevirtual

return false by default.

Reimplemented in ParaEngine::CPaintEngineGPU.

§ SetUse3DTransform()

virtual void ParaEngine::CPaintEngine::SetUse3DTransform ( bool  bUse3DSpaceTransform)
inlinevirtual

by default, transforms are in 2d screen space.

However, we can also specify using 3d transform, such as when rendering GUI onto 3D scenes

Reimplemented in ParaEngine::CPaintEngineGPU.


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