Warning, file /graphics/krita/sdk/tests/empty_nodes_test.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 __EMPTY_NODES_TEST_H 0008 #define __EMPTY_NODES_TEST_H 0009 0010 #include "kis_types.h" 0011 0012 #include "KoColorSpace.h" 0013 #include "KoColor.h" 0014 0015 #include "kis_image.h" 0016 #include "kis_painter.h" 0017 #include "kis_paint_layer.h" 0018 #include "kis_clone_layer.h" 0019 #include "kis_group_layer.h" 0020 #include "kis_transparency_mask.h" 0021 #include "kis_selection_mask.h" 0022 #include "kis_random_source.h" 0023 #include "kis_undo_stores.h" 0024 0025 namespace TestUtil 0026 { 0027 0028 class EmptyNodesTest 0029 { 0030 protected: 0031 void initPaintDevice(KisNodeSP node, int seed) { 0032 Q_ASSERT(node->paintDevice()); 0033 KisRandomSource source(seed); 0034 QColor color(source.generate(10,255), source.generate(10,255), source.generate(10, 255)); 0035 QRect rc(source.generate(128,255), 0036 source.generate(128,255), 0037 source.generate(128,255), 0038 source.generate(128,255)); 0039 0040 KisPaintDeviceSP dev = node->paintDevice()->createCompositionSourceDevice(); 0041 dev->fill(rc, KoColor(color, dev->colorSpace())); 0042 0043 KisPainter gc(node->paintDevice()); 0044 gc.bitBlt(rc.topLeft(), dev, rc); 0045 } 0046 0047 0048 void initBase() { 0049 m_image = new KisImage(new KisSurrogateUndoStore(), 512, 512, KoColorSpaceRegistry::instance()->rgb8(), "test"); 0050 m_layer1 = new KisPaintLayer(m_image, "layer1", OPACITY_OPAQUE_U8); 0051 m_layer2 = new KisGroupLayer(m_image, "layer2", OPACITY_OPAQUE_U8); 0052 m_layer3 = new KisCloneLayer(m_layer1, m_image, "layer3", OPACITY_OPAQUE_U8); 0053 m_layer4 = new KisGroupLayer(m_image, "layer4", OPACITY_OPAQUE_U8); 0054 m_mask1 = new KisTransparencyMask(m_image, "mask1"); 0055 m_sel1 = new KisSelectionMask(m_image, "sel1"); 0056 m_sel2 = new KisSelectionMask(m_image, "sel2"); 0057 m_sel3 = new KisSelectionMask(m_image, "sel3"); 0058 } 0059 0060 void cleanupBase() { 0061 m_layer1 = 0; 0062 m_layer2 = 0; 0063 m_layer3 = 0; 0064 m_layer4 = 0; 0065 m_mask1 = 0; 0066 m_sel1 = 0; 0067 m_sel2 = 0; 0068 m_sel3 = 0; 0069 m_image = 0; 0070 } 0071 0072 /** 0073 * root 0074 * sel1 0075 * layer1 0076 * layer2 0077 * sel2 0078 * layer3 0079 * mask1 0080 * sel3 0081 * layer4 0082 */ 0083 0084 void constructImage() { 0085 m_image->addNode(m_layer1); 0086 m_image->addNode(m_layer2); 0087 m_image->addNode(m_layer3); 0088 m_image->addNode(m_layer4); 0089 m_image->addNode(m_mask1, m_layer3); 0090 m_mask1->initSelection(m_layer3); 0091 initPaintDevice(m_layer1, 10); 0092 initPaintDevice(m_mask1, 500); 0093 m_image->initialRefreshGraph(); 0094 } 0095 0096 void addSelectionMasks() { 0097 m_image->addNode(m_sel1, m_image->root(), (int)0); 0098 m_image->addNode(m_sel2, m_image->root(), (int)2); 0099 m_image->addNode(m_sel3, m_layer3); 0100 m_sel1->initSelection(m_layer3); 0101 m_sel2->initSelection(m_layer3); 0102 m_sel3->initSelection(m_layer3); 0103 initPaintDevice(m_sel1, 100); 0104 initPaintDevice(m_sel2, 200); 0105 const quint8 defPixel(quint8(750)); 0106 m_sel3->paintDevice()->setDefaultPixel(KoColor(&defPixel, m_sel3->paintDevice()->colorSpace())); 0107 } 0108 0109 protected: 0110 KisImageSP m_image; 0111 KisLayerSP m_layer1; 0112 KisLayerSP m_layer2; 0113 KisLayerSP m_layer3; 0114 KisLayerSP m_layer4; 0115 KisMaskSP m_mask1; 0116 KisMaskSP m_sel1; 0117 KisMaskSP m_sel2; 0118 KisMaskSP m_sel3; 0119 }; 0120 0121 } 0122 0123 #endif /* __EMPTY_NODES_TEST_H */