@@ -36,15 +36,24 @@ class ImagePainter
3636 QOpenGLFramebufferObjectFormat format;
3737 format.setAttachment (QOpenGLFramebufferObject::CombinedDepthStencil);
3838
39- // Begin painting
4039 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
4146 m_fbo->bind ();
4247 painter->beginFrame (m_fbo->width (), m_fbo->height ());
48+ glClearColor (0 .0f , 0 .0f , 0 .0f , 0 .0f );
49+ glClear (GL_COLOR_BUFFER_BIT);
4350
4451 // Paint
4552 QNanoImage image = QNanoImage::fromCache (painter, fileName);
4653 painter->drawImage (image, 0 , 0 );
4754 painter->endFrame ();
55+
56+ m_fbo->release ();
4857 }
4958
5059 ~ImagePainter () { m_fbo->release (); }
@@ -102,6 +111,21 @@ TEST_F(CpuTextureManagerTest, TextureDataAndHullPoints)
102111 ASSERT_EQ (hullPoints2, refHullPoints2);
103112 }
104113
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+
105129 // Cleanup
106130 context.doneCurrent ();
107131}
0 commit comments