2 #include "ParaRegion.h" 3 #include "qtransform.h" 8 class CPaintEngineState;
17 struct SpriteFontEntity;
40 DirtyBrushOrigin = 0x0004,
42 DirtyBackground = 0x0010,
43 DirtyBackgroundMode = 0x0020,
44 DirtyTransform = 0x0040,
45 DirtyClipRegion = 0x0080,
46 DirtyClipPath = 0x0100,
48 DirtyCompositionMode = 0x0400,
49 DirtyClipEnabled = 0x0800,
50 DirtyOpacity = 0x1000,
55 enum PolygonDrawMode {
71 bool isActive()
const {
return active; }
72 void setActive(
bool newState) { active = newState; }
75 virtual bool end() = 0;
78 virtual void ApplyStateChanges();
82 virtual void drawRects(
const QRect *rects,
int rectCount);
83 virtual void drawRects(
const QRectF *rects,
int rectCount);
85 virtual void drawLines(
const QLine *lines,
int lineCount);
86 virtual void drawLines(
const QLineF *lines,
int lineCount);
87 virtual void drawLines(
const Vector3 *vertices,
int lineCount);
89 virtual void drawEllipse(
const QRectF &r);
90 virtual void drawEllipse(
const QRect &r);
92 virtual void drawTriangles(
const Vector3* vertices,
int nTriangleCount);
94 virtual void drawPath(
const CPainterPath &path);
96 virtual void drawPoints(
const QPointF *points,
int pointCount);
97 virtual void drawPoints(
const QPoint *points,
int pointCount);
99 virtual void drawPolygon(
const QPointF *points,
int pointCount, PolygonDrawMode mode);
100 virtual void drawPolygon(
const QPoint *points,
int pointCount, PolygonDrawMode mode);
103 virtual void drawTextItem(
const QPointF &p,
const CTextItem &textItem);
109 void setSystemClip(
const QRegion &baseClip);
112 void setSystemRect(
const QRect &rect);
113 QRect systemRect()
const;
116 virtual QPoint coordinateOffset()
const;
119 inline bool testDirty(DirtyFlags df);
120 inline void setDirty(DirtyFlags df);
121 inline void clearDirty(DirtyFlags df);
125 virtual bool IsScissorRectSupported()
const {
return false; };
126 virtual bool IsStencilSupported()
const {
return false; };
127 virtual void clip(
const QRect & rect, ClipOperation op = ReplaceClip);
141 virtual HRESULT DrawRect(
const RECT* rect,
Color color,
float depth){
return S_OK; };
145 virtual HRESULT drawText(
SpriteFontEntity* pFont,
const char* strText,
int nCount,
RECT* rect, DWORD dwTextFormat, DWORD textColor){
return S_OK; };
146 virtual HRESULT drawText(
SpriteFontEntity* pFont,
const char16_t* strText,
int nCount,
RECT* rect, DWORD dwTextFormat, DWORD textColor){
return S_OK; };
148 void setAutoDestruct(
bool autoDestr) { selfDestruct = autoDestr; }
149 bool autoDestruct()
const {
return selfDestruct; }
151 virtual void transformChanged(){};
152 virtual void penChanged(){};
153 virtual void brushChanged(){};
154 virtual void brushOriginChanged(){};
155 virtual void opacityChanged(){};
156 virtual void clipEnabledChanged(){};
157 virtual void transformModeChanged(){};
158 virtual void compositionModeChanged(){};
166 bool selfDestruct : 1;
167 bool hasSystemTransform : 1;
168 bool hasSystemViewport : 1;
181 CPaintEngine::DirtyFlags state()
const {
return (CPaintEngine::DirtyFlags)dirtyFlags; }
194 inline bool CPaintEngine::testDirty(DirtyFlags df) {
196 return ((state->dirtyFlags & df) != 0);
199 inline void CPaintEngine::setDirty(DirtyFlags df) {
201 state->dirtyFlags |= df;
204 inline void CPaintEngine::clearDirty(DirtyFlags df)
207 state->dirtyFlags &= ~static_cast<uint32>(df);
Which DXT Compression to Use? Obviously, there are some trade-offs between the different formats whic...
Definition: TextureEntity.h:29
virtual void SetUse3DTransform(bool bUse3DSpaceTransform)
by default, transforms are in 2d screen space.
Definition: PaintEngine.h:133
Definition: ParaPoint.h:203
different physics engine has different winding order.
Definition: EventBinding.h:32
virtual bool IsUse3DTransform()
return false by default.
Definition: PaintEngine.h:136
Definition: ManagedDef.h:18
Definition: ParaLine.h:151
Definition: ParaRect.h:517
when concerting QRect with QRectF and RECT, we ensure that their left, top and width, height are the same.
Definition: ParaRect.h:16
Standard 3-dimensional vector.
Definition: ParaVector3.h:16
Definition: PainterState.h:25
base class for a surface to paint to.
Definition: Painter.h:38
Definition: ParaPoint.h:5
uint32 dirtyFlags
type of CPaintEngine::DirtyFlags
Definition: PaintEngine.h:190
The CPaintEngine class provides an abstract definition of how CPainter draws to a given device on a g...
Definition: PaintEngine.h:34
Definition: ParaRegion.h:7
base class for a surface to paint to.
Definition: PaintDevice.h:10
painter state, such as selected pen, brush, etc.
Definition: PaintEngine.h:178
Definition: ParaColor.h:275
Unlike TextureEntity, ImageEntity is a device independent entity in memory.
Definition: ImageEntity.h:9
Definition: SpriteFontEntity.h:26