@@ -36,15 +36,24 @@ class ImagePainter
36
36
QOpenGLFramebufferObjectFormat format;
37
37
format.setAttachment (QOpenGLFramebufferObject::CombinedDepthStencil);
38
38
39
- // Begin painting
40
39
m_fbo = std::make_unique<QOpenGLFramebufferObject>(4 , 6 , format);
40
+ paint (painter, fileName);
41
+ }
42
+
43
+ void paint (QNanoPainter *painter, const QString &fileName)
44
+ {
45
+ // Begin painting
41
46
m_fbo->bind ();
42
47
painter->beginFrame (m_fbo->width (), m_fbo->height ());
48
+ glClearColor (0 .0f , 0 .0f , 0 .0f , 0 .0f );
49
+ glClear (GL_COLOR_BUFFER_BIT);
43
50
44
51
// Paint
45
52
QNanoImage image = QNanoImage::fromCache (painter, fileName);
46
53
painter->drawImage (image, 0 , 0 );
47
54
painter->endFrame ();
55
+
56
+ m_fbo->release ();
48
57
}
49
58
50
59
~ImagePainter () { m_fbo->release (); }
@@ -102,6 +111,21 @@ TEST_F(CpuTextureManagerTest, TextureDataAndHullPoints)
102
111
ASSERT_EQ (hullPoints2, refHullPoints2);
103
112
}
104
113
114
+ // Test removeTexture()
115
+ imgPainter1.paint (&painter, " image.jpg" );
116
+ Texture texture (imgPainter1.fbo ()->texture (), imgPainter1.fbo ()->size ());
117
+ GLubyte *data = manager.getTextureData (texture);
118
+ ASSERT_EQ (memcmp (data, refData1, 96 ), 0 );
119
+ const auto &hullPoints1 = manager.getTextureConvexHullPoints (texture);
120
+ ASSERT_EQ (hullPoints1, refHullPoints1);
121
+
122
+ imgPainter1.fbo ()->toImage ().save (" /home/adazem009/test.png" );
123
+ manager.removeTexture (texture);
124
+ data = manager.getTextureData (texture);
125
+ ASSERT_EQ (memcmp (data, refData2, 96 ), 0 );
126
+ const auto &hullPoints2 = manager.getTextureConvexHullPoints (texture);
127
+ ASSERT_EQ (hullPoints2, refHullPoints2);
128
+
105
129
// Cleanup
106
130
context.doneCurrent ();
107
131
}
0 commit comments