@@ -129,3 +129,44 @@ TEST_F(CpuTextureManagerTest, TextureDataAndHullPoints)
129129 // Cleanup
130130 context.doneCurrent ();
131131}
132+
133+ TEST_F (CpuTextureManagerTest, TextureContainsPoint)
134+ {
135+ // Create OpenGL context
136+ QOpenGLContext context;
137+ QOffscreenSurface surface;
138+ createContextAndSurface (&context, &surface);
139+
140+ // Paint
141+ QNanoPainter painter;
142+ ImagePainter imgPainter (&painter, " image.png" );
143+
144+ // Read texture data
145+ Texture texture (imgPainter.fbo ()->texture (), imgPainter.fbo ()->size ());
146+
147+ // Test
148+ CpuTextureManager manager;
149+ ASSERT_FALSE (manager.textureContainsPoint (texture, { 0 , 0 }));
150+ ASSERT_FALSE (manager.textureContainsPoint (texture, { 1 , 0 }));
151+ ASSERT_FALSE (manager.textureContainsPoint (texture, { 2 , 0 }));
152+ ASSERT_FALSE (manager.textureContainsPoint (texture, { 3 , 0 }));
153+
154+ ASSERT_FALSE (manager.textureContainsPoint (texture, { 0 , 1 }));
155+ ASSERT_TRUE (manager.textureContainsPoint (texture, { 1 , 1 }));
156+ ASSERT_TRUE (manager.textureContainsPoint (texture, { 1.4 , 1.25 }));
157+ ASSERT_TRUE (manager.textureContainsPoint (texture, { 2 , 1 }));
158+ ASSERT_TRUE (manager.textureContainsPoint (texture, { 3 , 1 }));
159+
160+ ASSERT_TRUE (manager.textureContainsPoint (texture, { 1 , 2 }));
161+ ASSERT_FALSE (manager.textureContainsPoint (texture, { 2 , 2 }));
162+ ASSERT_TRUE (manager.textureContainsPoint (texture, { 3 , 2 }));
163+ ASSERT_TRUE (manager.textureContainsPoint (texture, { 3.5 , 2.1 }));
164+
165+ ASSERT_TRUE (manager.textureContainsPoint (texture, { 1 , 3 }));
166+ ASSERT_TRUE (manager.textureContainsPoint (texture, { 2 , 3 }));
167+ ASSERT_TRUE (manager.textureContainsPoint (texture, { 3 , 3 }));
168+ ASSERT_TRUE (manager.textureContainsPoint (texture, { 3.3 , 3.5 }));
169+
170+ // Cleanup
171+ context.doneCurrent ();
172+ }
0 commit comments