54 virtual void Begin(QPaintDevice* ) { }
55 virtual void End() { }
57 virtual void SetClipRect(QRect clipRect);
58 virtual void SetClipRegion(
const QRegion &clipRegion);
59 virtual void Clear(QPaintDevice *device,
const QRegion ®ion);
63 void DrawImage(
int x,
int y,
MythImage *im,
int alpha);
64 void DrawImage(QPoint topLeft,
MythImage *im,
int alph);
70 virtual void DrawText(QRect r,
const QString &msg,
int flags,
73 virtual void DrawTextLayout(QRect canvasRect,
78 virtual void DrawRect(QRect area,
const QBrush &fillBrush,
79 const QPen &linePen,
int alpha);
80 virtual void DrawRoundRect(QRect area,
int cornerRadius,
81 const QBrush &fillBrush,
const QPen &linePen,
83 virtual void DrawEllipse(QRect area,
const QBrush &fillBrush,
84 const QPen &linePen,
int alpha);
87 [[maybe_unused]] QPointF center = QPointF()) {};
98 m_showBorders = showBorders;
99 m_showNames = showNames;
105 void SetMaximumCacheSizes(
int hardware,
int software);
108 static void DrawTextPriv(
MythImage *im,
const QString &msg,
int flags,
110 static void DrawRectPriv(
MythImage *im, QRect area,
int radius,
int ellipse,
111 const QBrush &fillBrush,
const QPen &linePen);
113 MythImage *GetImageFromString(
const QString &msg,
int flags, QRect r,
118 QRect &canvas, QRect &
dest);
119 MythImage *GetImageFromRect(QRect area,
int radius,
int ellipse,
120 const QBrush &fillBrush,
121 const QPen &linePen);
126 void ExpireImages(int64_t max = 0);
130 virtual void Teardown(
void);
134 float m_frameTime { 0 };
136 int m_hardwareCacheSize { 0 };
137 int m_maxHardwareCacheSize { 0 };
140 int64_t m_softwareCacheSize {0};
141 int64_t m_maxSoftwareCacheSize {48LL * 1024 * 1024};
149 bool m_showBorders {
false};
150 bool m_showNames {
false};
~MythPainter() override=default
MythPainter destructor.
virtual void PushTransformation(const UIEffects &zoom, QPointF center=QPointF())
virtual void DrawProcedural(QRect, int, const ProcSource &, const ProcSource &, const QString &)
virtual bool SupportsClipping(void)=0
virtual void DeleteFormatImagePriv(MythImage *im)=0
virtual MythImage * GetFormatImagePriv(void)=0
Creates a reference counted image, call DecrRef() to delete.
QMap< QString, MythImage * > m_stringToImageMap
void SetDebugMode(bool showBorders, bool showNames)
virtual void DrawImage(QRect dest, MythImage *im, QRect src, int alpha)=0
bool ShowBorders(void) const
QSet< MythImage * > m_allocatedImages
virtual QString GetName(void)=0
bool ShowTypeNames(void) const
std::list< QString > m_stringExpireList
virtual void Begin(QPaintDevice *)
virtual bool SupportsAlpha(void)=0
virtual void PopTransformation(void)
virtual void FreeResources(void)
virtual bool SupportsAnimation(void)=0
QVector< QTextLayout::FormatRange > FormatVector
std::shared_ptr< QByteArray > ProcSource
QVector< QTextLayout * > LayoutVector
const std::array< const std::string, 8 > formats