Warning, file /graphics/krita/sdk/tests/stroke_testing_utils.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 * SPDX-FileCopyrightText: 2011 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef __STROKE_TESTING_UTILS_H 0008 #define __STROKE_TESTING_UTILS_H 0009 0010 #include <QString> 0011 #include <KoCanvasResourceProvider.h> 0012 #include "kis_node.h" 0013 #include "kis_types.h" 0014 #include "kis_stroke_strategy.h" 0015 #include "kis_resources_snapshot.h" 0016 0017 0018 class KisUndoStore; 0019 0020 0021 namespace utils { 0022 0023 KisImageSP createImage(KisUndoStore *undoStore, const QSize &imageSize); 0024 KoCanvasResourceProvider* createResourceManager(KisImageWSP image, 0025 KisNodeSP node = 0, 0026 const QString &presetFileName = "autobrush_300px.kpp"); 0027 0028 class StrokeTester 0029 { 0030 public: 0031 StrokeTester(const QString &name, const QSize &imageSize, const QString &presetFileName = "autobrush_300px.kpp"); 0032 virtual ~StrokeTester(); 0033 0034 void testSimpleStroke(); 0035 void test(); 0036 void benchmark(); 0037 void testSimpleStrokeNoVerification(); 0038 0039 void setNumIterations(int value); 0040 void setBaseFuzziness(int value); 0041 0042 int lastStrokeTime() const; 0043 0044 protected: 0045 KisStrokeId strokeId() { 0046 return m_strokeId; 0047 } 0048 0049 virtual void modifyResourceManager(KoCanvasResourceProvider *manager, 0050 KisImageWSP image, int iteration); 0051 0052 virtual void initImage(KisImageWSP image, KisNodeSP activeNode, int iteration); 0053 0054 // overload 0055 virtual void modifyResourceManager(KoCanvasResourceProvider *manager, 0056 KisImageWSP image); 0057 0058 // overload 0059 virtual void initImage(KisImageWSP image, KisNodeSP activeNode); 0060 virtual void beforeCheckingResult(KisImageWSP image, KisNodeSP activeNode); 0061 0062 virtual KisStrokeStrategy* createStroke(KisResourcesSnapshotSP resources, 0063 KisImageWSP image) = 0; 0064 0065 virtual void addPaintingJobs(KisImageWSP image, 0066 KisResourcesSnapshotSP resources, 0067 int iteration); 0068 0069 // overload 0070 virtual void addPaintingJobs(KisImageWSP image, 0071 KisResourcesSnapshotSP resources); 0072 0073 private: 0074 void testOneStroke(bool cancelled, bool indirectPainting, 0075 bool externalLayer, bool testUpdates = false); 0076 0077 QImage doStroke(bool cancelled, 0078 bool externalLayer, bool testUpdates = false, 0079 bool needQImage = true); 0080 0081 QString formatTestName(const QString &baseName, bool cancelled, 0082 bool indirectPainting, bool externalLayer); 0083 QString referenceFile(const QString &testName); 0084 QString dumpReferenceFile(const QString &testName); 0085 QString resultFile(const QString &testName); 0086 0087 private: 0088 KisStrokeId m_strokeId; 0089 QString m_name; 0090 QSize m_imageSize; 0091 QString m_presetFilename; 0092 int m_numIterations; 0093 int m_baseFuzziness; 0094 int m_strokeTime = 0; 0095 }; 0096 } 0097 0098 #endif /* __STROKE_TESTING_UTILS_H */