32 PixmapType, BitmapType
35 enum ClassId { RasterClass, DirectFBClass,
36 BlitterClass, Direct2DClass,
39 QPlatformPixmap(PixelType pixelType,
int classId);
40 virtual ~QPlatformPixmap();
42 virtual QPlatformPixmap *createCompatiblePlatformPixmap()
const;
44 virtual void resize(
int width,
int height) = 0;
45 virtual void fromImage(
const QImage &image,
46 Qt::ImageConversionFlags flags) = 0;
47 virtual void fromImageInPlace(QImage &image,
48 Qt::ImageConversionFlags flags)
50 fromImage(image, flags);
53 virtual void fromImageReader(QImageReader *imageReader,
54 Qt::ImageConversionFlags flags);
56 virtual bool fromFile(
const QString &filename,
const char *format,
57 Qt::ImageConversionFlags flags);
58 virtual bool fromData(
const uchar *buffer, uint len,
const char *format,
59 Qt::ImageConversionFlags flags);
61 virtual void copy(
const QPlatformPixmap *data,
const QRect &rect);
62 virtual bool scroll(
int dx,
int dy,
const QRect &rect);
64 virtual int metric(QPaintDevice::PaintDeviceMetric metric)
const = 0;
65 virtual void fill(
const QColor &color) = 0;
67 virtual QBitmap mask()
const;
68 virtual void setMask(
const QBitmap &mask);
70 virtual bool hasAlphaChannel()
const = 0;
71 virtual QPixmap transformed(
const QTransform &matrix,
72 Qt::TransformationMode mode)
const;
74 virtual QImage toImage()
const = 0;
75 virtual QImage toImage(
const QRect &rect)
const;
76 virtual QPaintEngine* paintEngine()
const = 0;
78 inline int serialNumber()
const {
return ser_no; }
80 inline PixelType pixelType()
const {
return type; }
81 inline ClassId classId()
const {
return static_cast<ClassId>(id); }
83 virtual qreal devicePixelRatio()
const = 0;
84 virtual void setDevicePixelRatio(qreal scaleFactor) = 0;
86 virtual QImage* buffer();
88 inline int width()
const {
return w; }
89 inline int height()
const {
return h; }
90 inline int colorCount()
const {
return metric(QPaintDevice::PdmNumColors); }
91 inline int depth()
const {
return d; }
92 inline bool isNull()
const {
return is_null; }
93 inline qint64 cacheKey()
const {
96 classKey = -(classKey >> 10);
97 return ((((qint64) classKey) << 56)
98 | (((qint64) ser_no) << 32)
99 | ((qint64) detach_no));
102 static QPlatformPixmap *create(
int w,
int h, PixelType type);
106 void setSerialNumber(
int serNo);
107 void setDetachNumber(
int detNo);
114 friend class QPixmap;
115 friend class QImagePixmapCleanupHooks;