My Project
|
The CPaintEngine class provides an abstract definition of how CPainter draws to a given device on a given platform. More...
#include <PaintEngine.h>
Public Member Functions | |
virtual CPainterState * | createState (CPainterState *orig) const |
virtual void | setState (CPainterState *s) |
CPainterState * | GetState () |
const CPainterState * | GetState () 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) |
CPaintDevice * | paintDevice () 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) |
CPainter * | painter () 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 | |
CPaintDevice * | pdev |
CPaintEngineState * | state |
bool | active: 1 |
bool | selfDestruct: 1 |
bool | hasSystemTransform: 1 |
bool | hasSystemViewport: 1 |
QRegion | m_systemClip |
QRect | m_systemRect |
QRegion | systemViewport |
QTransform | systemTransform |
CPaintDevice * | currentClipDevice |
Friends | |
class | CPainter |
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.
|
inlinevirtual |
return false by default.
Reimplemented in ParaEngine::CPaintEngineGPU.
|
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.