src/gui/image/qpixmapdata_p.h
changeset 33 3e2da88830cd
parent 18 2f34d5167611
equal deleted inserted replaced
30:5dc02b23752f 33:3e2da88830cd
    56 #include <QtGui/qpixmap.h>
    56 #include <QtGui/qpixmap.h>
    57 #include <QtCore/qatomic.h>
    57 #include <QtCore/qatomic.h>
    58 
    58 
    59 QT_BEGIN_NAMESPACE
    59 QT_BEGIN_NAMESPACE
    60 
    60 
       
    61 class QImageReader;
       
    62 
    61 class Q_GUI_EXPORT QPixmapData
    63 class Q_GUI_EXPORT QPixmapData
    62 {
    64 {
    63 public:
    65 public:
    64     enum PixelType {
    66     enum PixelType {
    65         // WARNING: Do not change the first two
    67         // WARNING: Do not change the first two
    71         FbsBitmap,
    73         FbsBitmap,
    72         SgImage
    74         SgImage
    73     };
    75     };
    74 #endif
    76 #endif
    75     enum ClassId { RasterClass, X11Class, MacClass, DirectFBClass,
    77     enum ClassId { RasterClass, X11Class, MacClass, DirectFBClass,
    76                    OpenGLClass, OpenVGClass, CustomClass = 1024 };
    78                    OpenGLClass, OpenVGClass, RuntimeClass, CustomClass = 1024 };
    77 
    79 
    78     QPixmapData(PixelType pixelType, int classId);
    80     QPixmapData(PixelType pixelType, int classId);
    79     virtual ~QPixmapData();
    81     virtual ~QPixmapData();
    80 
    82 
    81     virtual QPixmapData *createCompatiblePixmapData() const;
    83     virtual QPixmapData *createCompatiblePixmapData() const;
    82 
    84 
    83     virtual void resize(int width, int height) = 0;
    85     virtual void resize(int width, int height) = 0;
    84     virtual void fromImage(const QImage &image,
    86     virtual void fromImage(const QImage &image,
    85                            Qt::ImageConversionFlags flags) = 0;
    87                            Qt::ImageConversionFlags flags) = 0;
       
    88     virtual void fromImageReader(QImageReader *imageReader,
       
    89                                  Qt::ImageConversionFlags flags);
    86 
    90 
    87     virtual bool fromFile(const QString &filename, const char *format,
    91     virtual bool fromFile(const QString &filename, const char *format,
    88                           Qt::ImageConversionFlags flags);
    92                           Qt::ImageConversionFlags flags);
    89     virtual bool fromData(const uchar *buffer, uint len, const char *format,
    93     virtual bool fromData(const uchar *buffer, uint len, const char *format,
    90                           Qt::ImageConversionFlags flags);
    94                           Qt::ImageConversionFlags flags);
   100     virtual QPixmap transformed(const QTransform &matrix,
   104     virtual QPixmap transformed(const QTransform &matrix,
   101                                 Qt::TransformationMode mode) const;
   105                                 Qt::TransformationMode mode) const;
   102     virtual void setAlphaChannel(const QPixmap &alphaChannel);
   106     virtual void setAlphaChannel(const QPixmap &alphaChannel);
   103     virtual QPixmap alphaChannel() const;
   107     virtual QPixmap alphaChannel() const;
   104     virtual QImage toImage() const = 0;
   108     virtual QImage toImage() const = 0;
       
   109     virtual QImage toImage(const QRect &rect) const;
   105     virtual QPaintEngine* paintEngine() const = 0;
   110     virtual QPaintEngine* paintEngine() const = 0;
   106 
   111 
   107     inline int serialNumber() const { return ser_no; }
   112     inline int serialNumber() const { return ser_no; }
   108 
   113 
   109     inline PixelType pixelType() const { return type; }
   114     inline PixelType pixelType() const { return type; }
   131     virtual void fromNativeType(void* pixmap, NativeType type);
   136     virtual void fromNativeType(void* pixmap, NativeType type);
   132 #endif
   137 #endif
   133 
   138 
   134     static QPixmapData *create(int w, int h, PixelType type);
   139     static QPixmapData *create(int w, int h, PixelType type);
   135 
   140 
       
   141     virtual QPixmapData *runtimeData() const { return 0; }
       
   142 
   136 protected:
   143 protected:
       
   144 
   137     void setSerialNumber(int serNo);
   145     void setSerialNumber(int serNo);
   138     int w;
   146     int w;
   139     int h;
   147     int h;
   140     int d;
   148     int d;
   141     bool is_null;
   149     bool is_null;