{
QT_BEGIN_NAMESPACE
class QImageReader;
QT_END_NAMESPACE
}

QGuiApplicationPrivate_init_entry()
QGuiApplicationPrivate_init_exit()

QGuiApplicationPrivate_processWindowSystemEvent_entry(int type)
QGuiApplicationPrivate_processWindowSystemEvent_exit()

QFontDatabase_addApplicationFont(const QString &filename)
QFontDatabase_load(const QString &family, int pointSize)
QFontDatabase_loadEngine(const QString &family, int pointSize)
QFontDatabasePrivate_addAppFont(const QString &fileName)

QImageData_create_entry(const QSize &size, QImage::Format format)
QImageData_create_exit()
QImage_copy_entry(const QRect& r)
QImage_copy_exit()
QImage_scaled_entry(const QSize& s, Qt::AspectRatioMode aspectMode, Qt::TransformationMode mode)
QImage_scaled_exit()
QImage_scaledToWidth_entry(int w, Qt::TransformationMode mode)
QImage_scaledToWidth_exit()
QImage_scaledToHeight_entry(int h, Qt::TransformationMode mode)
QImage_scaledToHeight_exit()
QImage_rgbSwapped_helper_entry()
QImage_rgbSwapped_helper_exit()
QImage_transformed_entry(const QTransform &matrix, Qt::TransformationMode mode )
QImage_transformed_exit()

QPixmap_scaled_entry(const QSize& s, Qt::AspectRatioMode aspectMode, Qt::TransformationMode mode)
QPixmap_scaled_exit()
QPixmap_scaledToWidth_entry(int w, Qt::TransformationMode mode)
QPixmap_scaledToWidth_exit()
QPixmap_scaledToHeight_entry(int h, Qt::TransformationMode mode)
QPixmap_scaledToHeight_exit()

QImageReader_read_before_reading(QImageReader *reader, const QString &filename)
QImageReader_read_after_reading(QImageReader *reader, bool result)
