31 PixmapType, BitmapType
34 enum ClassId { RasterClass, DirectFBClass,
35 BlitterClass, Direct2DClass,
36 X11Class, CustomClass = 1024 };
38 QPlatformPixmap(PixelType pixelType,
int classId);
39 virtual ~QPlatformPixmap();
41 virtual QPlatformPixmap *createCompatiblePlatformPixmap()
const;
43 virtual void resize(
int width,
int height) = 0;
44 virtual void fromImage(
const QImage &image,
45 Qt::ImageConversionFlags flags) = 0;
46 virtual void fromImageInPlace(QImage &image,
47 Qt::ImageConversionFlags flags)
49 fromImage(image, flags);
52 virtual void fromImageReader(QImageReader *imageReader,
53 Qt::ImageConversionFlags flags);
55 virtual bool fromFile(
const QString &filename,
const char *format,
56 Qt::ImageConversionFlags flags);
57 virtual bool fromData(
const uchar *buffer, uint len,
const char *format,
58 Qt::ImageConversionFlags flags);
60 virtual void copy(
const QPlatformPixmap *data,
const QRect &rect);
61 virtual bool scroll(
int dx,
int dy,
const QRect &rect);
63 virtual int metric(QPaintDevice::PaintDeviceMetric metric)
const = 0;
64 virtual void fill(
const QColor &color) = 0;
66 virtual QBitmap mask()
const;
67 virtual void setMask(
const QBitmap &mask);
69 virtual bool hasAlphaChannel()
const = 0;
70 virtual QPixmap transformed(
const QTransform &matrix,
71 Qt::TransformationMode mode)
const;
73 virtual QImage toImage()
const = 0;
74 virtual QImage toImage(
const QRect &rect)
const;
75 virtual QPaintEngine* paintEngine()
const = 0;
77 inline int serialNumber()
const {
return ser_no; }
79 inline PixelType pixelType()
const {
return type; }
80 inline ClassId classId()
const {
return static_cast<ClassId>(id); }
82 virtual qreal devicePixelRatio()
const = 0;
83 virtual void setDevicePixelRatio(qreal scaleFactor) = 0;
85 virtual QImage* buffer();
87 inline int width()
const {
return w; }
88 inline int height()
const {
return h; }
89 inline int colorCount()
const {
return metric(QPaintDevice::PdmNumColors); }
90 inline int depth()
const {
return d; }
91 inline bool isNull()
const {
return is_null; }
92 inline qint64 cacheKey()
const {
95 classKey = -(classKey >> 10);
96 return ((((qint64) classKey) << 56)
97 | (((qint64) ser_no) << 32)
98 | ((qint64) detach_no));
101 static QPlatformPixmap *create(
int w,
int h, PixelType type);
105 void setSerialNumber(
int serNo);
106 void setDetachNumber(
int detNo);
113 friend class QPixmap;
114 friend class QX11PlatformPixmap;
115 friend class QImagePixmapCleanupHooks;
116 friend class QOpenGLTextureCache;
117 friend class QExplicitlySharedDataPointer<QPlatformPixmap>;