mirror of
https://invent.kde.org/frameworks/kimageformats.git
synced 2025-05-28 00:30:23 -04:00
Fixes the following warning: ``` /home/daniel/kimageformats/src/imageformats/dds.cpp: In function ‘qfloat16 readFloat16(QDataStream&)’: /home/daniel/kimageformats/src/imageformats/dds.cpp:1037:11: warning: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘class qfloat16’ from an array of ‘quint16’ {aka ‘short unsigned int’} [-Wclass-memaccess] 1037 | memcpy(&f16, &rawData, sizeof(rawData)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/qt6/QtCore/qmetatype.h:14, from /usr/include/qt6/QtCore/qobject.h:18, from /usr/include/qt6/QtCore/qiodevice.h:10, from /usr/include/qt6/QtGui/qimageiohandler.h:9, from /usr/include/qt6/QtGui/QImageIOPlugin:1, from /home/daniel/kimageformats/src/imageformats/dds_p.h:13, from /home/daniel/kimageformats/src/imageformats/dds.cpp:12: /usr/include/qt6/QtCore/qfloat16.h:46:7: note: ‘class qfloat16’ declared here 46 | class qfloat16 | ^~~~~~~~ ``` Should also fixes the following failed tests under PowerPC (32-bits): ``` INFO : rgba16dx10.dds: converting rgba16dx10.dds from RGBA16FPx4 to ARGB32 FAIL : rgba16dx10.dds: differs from rgba16dx10.png expected data written to rgba16dx10.dds-expected.data actual data written to rgba16dx10.dds-actual.data ``` ``` INFO : rgba_f16.dds: converting rgba_f16.dds from RGBA16FPx4 to ARGB32 FAIL : rgba_f16.dds: differs from rgba_f16.png expected data written to rgba_f16.dds-expected.data actual data written to rgba_f16.dds-actual.data ```
112 lines
3.0 KiB
C++
112 lines
3.0 KiB
C++
/*
|
|
SPDX-FileCopyrightText: 2024 Mirco Miranda <mircomir@outlook.com>
|
|
|
|
SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
|
|
*/
|
|
|
|
#ifndef TEMPLATEIMAGE_H
|
|
#define TEMPLATEIMAGE_H
|
|
|
|
#include <QFileInfo>
|
|
#include <QImage>
|
|
|
|
/*!
|
|
* \brief The TemplateImage class
|
|
* Given an image name, it decides the template image to compare it with.
|
|
*/
|
|
class TemplateImage
|
|
{
|
|
public:
|
|
enum TestFlag {
|
|
None = 0x0,
|
|
SkipTest = 0x1,
|
|
DisableAutotransform = 0x2
|
|
};
|
|
Q_DECLARE_FLAGS(TestFlags, TestFlag)
|
|
|
|
/*!
|
|
* \brief TemplateImage
|
|
* \param fi The image to test.
|
|
*/
|
|
TemplateImage(const QFileInfo& fi);
|
|
|
|
/*!
|
|
* \brief TemplateImage
|
|
* Default copy constructor.
|
|
*/
|
|
TemplateImage(const TemplateImage& other) = default;
|
|
/*!
|
|
* \brief operator =
|
|
* Default copy operator
|
|
*/
|
|
TemplateImage& operator=(const TemplateImage& other) = default;
|
|
|
|
/*!
|
|
* \brief isTemplate
|
|
* \return True if the image is a template, false otherwise.
|
|
* \sa suffixes
|
|
*/
|
|
bool isTemplate() const;
|
|
|
|
/*!
|
|
* \brief isLicense
|
|
* \return True if the file suffix is .license
|
|
*/
|
|
bool isLicense() const;
|
|
|
|
/*!
|
|
* \brief compareImage
|
|
* \param flags Flags for modifying test behavior (e.g. image format not supported by current Qt version).
|
|
* \return The template image to use for the comparison.
|
|
*/
|
|
QFileInfo compareImage(TestFlags &flags, QString& comment) const;
|
|
|
|
/*!
|
|
* \brief checkOptionaInfo
|
|
* Verify the optional information (resolution, metadata, etc.) of the
|
|
* image with that in the template if present.
|
|
* \param image The image to check optional information on.
|
|
* \param error The error message when returns false.
|
|
* \return True on success, otherwise false.
|
|
*/
|
|
bool checkOptionaInfo(const QImage& image, QString& error) const;
|
|
|
|
/*!
|
|
* \brief fuzziness
|
|
* The fuzziness value that ensures the test works correctly. Normally
|
|
* set for lossy codecs and images that require floating point
|
|
* conversions.
|
|
* Floating point conversions may give slightly different results from
|
|
* one architecture to another (Intel, PowerPC, Arm, etc...).
|
|
* \return The default fuzziness value for the image. Zero means no fuzziness.
|
|
*/
|
|
quint8 fuzziness() const;
|
|
|
|
/*!
|
|
* \brief suffixes
|
|
* \return The list of suffixes considered templates.
|
|
*/
|
|
static QStringList suffixes();
|
|
|
|
private:
|
|
/*!
|
|
* \brief legacyImage
|
|
* \return The template image calculated from the source image name.
|
|
*/
|
|
QFileInfo legacyImage() const;
|
|
|
|
/*!
|
|
* \brief jsonImage
|
|
* \param flags Flags for modifying test behavior.
|
|
* \return The template image read from the corresponding JSON.
|
|
*/
|
|
QFileInfo jsonImage(TestFlags &flags, QString& comment) const;
|
|
|
|
private:
|
|
QFileInfo m_fi;
|
|
};
|
|
|
|
Q_DECLARE_OPERATORS_FOR_FLAGS(TemplateImage::TestFlags)
|
|
|
|
#endif // TEMPLATEIMAGE_H
|