Changeset View
Changeset View
Standalone View
Standalone View
autotests/client/test_wayland_surface.cpp
Show First 20 Lines • Show All 255 Lines • ▼ Show 20 Line(s) | 241 | { | |||
---|---|---|---|---|---|
256 | s->damage(QRect(0, 0, 100, 100)); | 256 | s->damage(QRect(0, 0, 100, 100)); | ||
257 | s->commit(KWayland::Client::Surface::CommitFlag::None); | 257 | s->commit(KWayland::Client::Surface::CommitFlag::None); | ||
258 | wl_display_flush(m_connection->display()); | 258 | wl_display_flush(m_connection->display()); | ||
259 | QCoreApplication::processEvents(); | 259 | QCoreApplication::processEvents(); | ||
260 | QCoreApplication::processEvents(); | 260 | QCoreApplication::processEvents(); | ||
261 | QVERIFY(damageSpy.isEmpty()); | 261 | QVERIFY(damageSpy.isEmpty()); | ||
262 | QVERIFY(!serverSurface->isMapped()); | 262 | QVERIFY(!serverSurface->isMapped()); | ||
263 | 263 | | |||
264 | QImage img(QSize(10, 10), QImage::Format_ARGB32); | 264 | QImage img(QSize(10, 10), QImage::Format_ARGB32_Premultiplied); | ||
265 | img.fill(Qt::black); | 265 | img.fill(Qt::black); | ||
266 | auto b = m_shm->createBuffer(img); | 266 | auto b = m_shm->createBuffer(img); | ||
267 | s->attachBuffer(b); | 267 | s->attachBuffer(b); | ||
268 | s->damage(QRect(0, 0, 10, 10)); | 268 | s->damage(QRect(0, 0, 10, 10)); | ||
269 | s->commit(KWayland::Client::Surface::CommitFlag::None); | 269 | s->commit(KWayland::Client::Surface::CommitFlag::None); | ||
270 | QVERIFY(damageSpy.wait()); | 270 | QVERIFY(damageSpy.wait()); | ||
271 | QCOMPARE(serverSurface->damage(), QRegion(0, 0, 10, 10)); | 271 | QCOMPARE(serverSurface->damage(), QRegion(0, 0, 10, 10)); | ||
272 | QCOMPARE(damageSpy.first().first().value<QRegion>(), QRegion(0, 0, 10, 10)); | 272 | QCOMPARE(damageSpy.first().first().value<QRegion>(), QRegion(0, 0, 10, 10)); | ||
273 | QVERIFY(serverSurface->isMapped()); | 273 | QVERIFY(serverSurface->isMapped()); | ||
274 | 274 | | |||
275 | // damage multiple times | 275 | // damage multiple times | ||
276 | QRegion testRegion(5, 8, 3, 6); | 276 | QRegion testRegion(5, 8, 3, 6); | ||
277 | testRegion = testRegion.united(QRect(10, 20, 30, 15)); | 277 | testRegion = testRegion.united(QRect(10, 20, 30, 15)); | ||
278 | img = QImage(QSize(40, 35), QImage::Format_ARGB32); | 278 | img = QImage(QSize(40, 35), QImage::Format_ARGB32_Premultiplied); | ||
279 | img.fill(Qt::black); | 279 | img.fill(Qt::black); | ||
280 | b = m_shm->createBuffer(img); | 280 | b = m_shm->createBuffer(img); | ||
281 | s->attachBuffer(b); | 281 | s->attachBuffer(b); | ||
282 | s->damage(testRegion); | 282 | s->damage(testRegion); | ||
283 | damageSpy.clear(); | 283 | damageSpy.clear(); | ||
284 | s->commit(KWayland::Client::Surface::CommitFlag::None); | 284 | s->commit(KWayland::Client::Surface::CommitFlag::None); | ||
285 | QVERIFY(damageSpy.wait()); | 285 | QVERIFY(damageSpy.wait()); | ||
286 | QCOMPARE(serverSurface->damage(), testRegion); | 286 | QCOMPARE(serverSurface->damage(), testRegion); | ||
Show All 10 Lines | 292 | { | |||
297 | KWayland::Server::SurfaceInterface *serverSurface = serverSurfaceCreated.first().first().value<KWayland::Server::SurfaceInterface*>(); | 297 | KWayland::Server::SurfaceInterface *serverSurface = serverSurfaceCreated.first().first().value<KWayland::Server::SurfaceInterface*>(); | ||
298 | QVERIFY(serverSurface); | 298 | QVERIFY(serverSurface); | ||
299 | 299 | | |||
300 | QSignalSpy damageSpy(serverSurface, SIGNAL(damaged(QRegion))); | 300 | QSignalSpy damageSpy(serverSurface, SIGNAL(damaged(QRegion))); | ||
301 | QVERIFY(damageSpy.isValid()); | 301 | QVERIFY(damageSpy.isValid()); | ||
302 | 302 | | |||
303 | QSignalSpy frameRenderedSpy(s, SIGNAL(frameRendered())); | 303 | QSignalSpy frameRenderedSpy(s, SIGNAL(frameRendered())); | ||
304 | QVERIFY(frameRenderedSpy.isValid()); | 304 | QVERIFY(frameRenderedSpy.isValid()); | ||
305 | QImage img(QSize(10, 10), QImage::Format_ARGB32); | 305 | QImage img(QSize(10, 10), QImage::Format_ARGB32_Premultiplied); | ||
306 | img.fill(Qt::black); | 306 | img.fill(Qt::black); | ||
307 | auto b = m_shm->createBuffer(img); | 307 | auto b = m_shm->createBuffer(img); | ||
308 | s->attachBuffer(b); | 308 | s->attachBuffer(b); | ||
309 | s->damage(QRect(0, 0, 10, 10)); | 309 | s->damage(QRect(0, 0, 10, 10)); | ||
310 | s->commit(); | 310 | s->commit(); | ||
311 | QVERIFY(damageSpy.wait()); | 311 | QVERIFY(damageSpy.wait()); | ||
312 | serverSurface->frameRendered(10); | 312 | serverSurface->frameRendered(10); | ||
313 | QVERIFY(frameRenderedSpy.isEmpty()); | 313 | QVERIFY(frameRenderedSpy.isEmpty()); | ||
314 | QVERIFY(frameRenderedSpy.wait()); | 314 | QVERIFY(frameRenderedSpy.wait()); | ||
315 | QVERIFY(!frameRenderedSpy.isEmpty()); | 315 | QVERIFY(!frameRenderedSpy.isEmpty()); | ||
316 | } | 316 | } | ||
317 | 317 | | |||
318 | void TestWaylandSurface::testAttachBuffer() | 318 | void TestWaylandSurface::testAttachBuffer() | ||
319 | { | 319 | { | ||
320 | // create the surface | 320 | // create the surface | ||
321 | QSignalSpy serverSurfaceCreated(m_compositorInterface, SIGNAL(surfaceCreated(KWayland::Server::SurfaceInterface*))); | 321 | QSignalSpy serverSurfaceCreated(m_compositorInterface, SIGNAL(surfaceCreated(KWayland::Server::SurfaceInterface*))); | ||
322 | QVERIFY(serverSurfaceCreated.isValid()); | 322 | QVERIFY(serverSurfaceCreated.isValid()); | ||
323 | KWayland::Client::Surface *s = m_compositor->createSurface(); | 323 | KWayland::Client::Surface *s = m_compositor->createSurface(); | ||
324 | QVERIFY(serverSurfaceCreated.wait()); | 324 | QVERIFY(serverSurfaceCreated.wait()); | ||
325 | KWayland::Server::SurfaceInterface *serverSurface = serverSurfaceCreated.first().first().value<KWayland::Server::SurfaceInterface*>(); | 325 | KWayland::Server::SurfaceInterface *serverSurface = serverSurfaceCreated.first().first().value<KWayland::Server::SurfaceInterface*>(); | ||
326 | QVERIFY(serverSurface); | 326 | QVERIFY(serverSurface); | ||
327 | 327 | | |||
328 | // create two images | 328 | // create three images | ||
329 | QImage black(24, 24, QImage::Format_RGB32); | 329 | QImage black(24, 24, QImage::Format_RGB32); | ||
330 | black.fill(Qt::black); | 330 | black.fill(Qt::black); | ||
331 | QImage red(24, 24, QImage::Format_ARGB32); | 331 | QImage red(24, 24, QImage::Format_ARGB32); //Note - deliberately not premultiplied | ||
332 | red.fill(QColor(255, 0, 0, 128)); | 332 | red.fill(QColor(255, 0, 0, 128)); | ||
333 | QImage blue(24, 24, QImage::Format_ARGB32_Premultiplied); | 333 | QImage blue(24, 24, QImage::Format_ARGB32_Premultiplied); | ||
334 | blue.fill(QColor(0, 0, 255, 128)); | 334 | blue.fill(QColor(0, 0, 255, 128)); | ||
335 | 335 | | |||
336 | wl_buffer *blackBuffer = *(m_shm->createBuffer(black).data()); | 336 | wl_buffer *blackBuffer = *(m_shm->createBuffer(black).data()); | ||
337 | auto redBuffer = m_shm->createBuffer(red); | 337 | auto redBuffer = m_shm->createBuffer(red); | ||
338 | auto blueBuffer = m_shm->createBuffer(blue).toStrongRef(); | 338 | auto blueBuffer = m_shm->createBuffer(blue).toStrongRef(); | ||
339 | 339 | | |||
Show All 26 Lines | |||||
366 | s->damage(QRect(0, 0, 24, 24)); | 366 | s->damage(QRect(0, 0, 24, 24)); | ||
367 | s->commit(KWayland::Client::Surface::CommitFlag::None); | 367 | s->commit(KWayland::Client::Surface::CommitFlag::None); | ||
368 | damageSpy.clear(); | 368 | damageSpy.clear(); | ||
369 | QVERIFY(damageSpy.wait()); | 369 | QVERIFY(damageSpy.wait()); | ||
370 | QVERIFY(unmappedSpy.isEmpty()); | 370 | QVERIFY(unmappedSpy.isEmpty()); | ||
371 | KWayland::Server::BufferInterface *buffer2 = serverSurface->buffer(); | 371 | KWayland::Server::BufferInterface *buffer2 = serverSurface->buffer(); | ||
372 | buffer2->ref(); | 372 | buffer2->ref(); | ||
373 | QVERIFY(buffer2->shmBuffer()); | 373 | QVERIFY(buffer2->shmBuffer()); | ||
374 | QCOMPARE(buffer2->data(), red); | 374 | QCOMPARE(buffer2->data().format(), QImage::Format_ARGB32_Premultiplied); | ||
375 | QCOMPARE(buffer2->data().format(), QImage::Format_ARGB32); | 375 | QCOMPARE(buffer2->data().width(), 24); | ||
376 | QCOMPARE(buffer2->data().height(), 24); | ||||
377 | for (int i = 0; i < 24; ++i) { | ||||
378 | for (int j = 0; j < 24; ++j) { | ||||
379 | // it's premultiplied in the format | ||||
380 | QCOMPARE(buffer2->data().pixel(i, j), qRgba(128, 0, 0, 128)); | ||||
381 | } | ||||
382 | } | ||||
376 | buffer2->unref(); | 383 | buffer2->unref(); | ||
377 | QVERIFY(buffer2->isReferenced()); | 384 | QVERIFY(buffer2->isReferenced()); | ||
378 | QVERIFY(!redBuffer.data()->isReleased()); | 385 | QVERIFY(!redBuffer.data()->isReleased()); | ||
379 | 386 | | |||
380 | // render another frame | 387 | // render another frame | ||
381 | blueBuffer->setUsed(true); | 388 | blueBuffer->setUsed(true); | ||
382 | QVERIFY(blueBuffer->isUsed()); | 389 | QVERIFY(blueBuffer->isUsed()); | ||
383 | s->attachBuffer(blueBuffer.data()); | 390 | s->attachBuffer(blueBuffer.data()); | ||
Show All 11 Lines | |||||
395 | if (!redBuffer.data()->isReleased()) { | 402 | if (!redBuffer.data()->isReleased()) { | ||
396 | QCoreApplication::processEvents(QEventLoop::WaitForMoreEvents); | 403 | QCoreApplication::processEvents(QEventLoop::WaitForMoreEvents); | ||
397 | } | 404 | } | ||
398 | QVERIFY(redBuffer.data()->isReleased()); | 405 | QVERIFY(redBuffer.data()->isReleased()); | ||
399 | 406 | | |||
400 | KWayland::Server::BufferInterface *buffer3 = serverSurface->buffer(); | 407 | KWayland::Server::BufferInterface *buffer3 = serverSurface->buffer(); | ||
401 | buffer3->ref(); | 408 | buffer3->ref(); | ||
402 | QVERIFY(buffer3->shmBuffer()); | 409 | QVERIFY(buffer3->shmBuffer()); | ||
403 | QCOMPARE(buffer3->data().format(), QImage::Format_ARGB32); | 410 | QCOMPARE(buffer3->data().format(), QImage::Format_ARGB32_Premultiplied); | ||
404 | QCOMPARE(buffer3->data().width(), 24); | 411 | QCOMPARE(buffer3->data().width(), 24); | ||
405 | QCOMPARE(buffer3->data().height(), 24); | 412 | QCOMPARE(buffer3->data().height(), 24); | ||
406 | for (int i = 0; i < 24; ++i) { | 413 | for (int i = 0; i < 24; ++i) { | ||
407 | for (int j = 0; j < 24; ++j) { | 414 | for (int j = 0; j < 24; ++j) { | ||
408 | // it's premultiplied in the format | 415 | // it's premultiplied in the format | ||
409 | QCOMPARE(buffer3->data().pixel(i, j), qRgba(0, 0, 128, 128)); | 416 | QCOMPARE(buffer3->data().pixel(i, j), qRgba(0, 0, 128, 128)); | ||
410 | } | 417 | } | ||
411 | } | 418 | } | ||
▲ Show 20 Lines • Show All 65 Lines • ▼ Show 20 Line(s) | 458 | { | |||
477 | QVERIFY(serverSurfaceCreated.wait()); | 484 | QVERIFY(serverSurfaceCreated.wait()); | ||
478 | SurfaceInterface *serverSurface2 = serverSurfaceCreated.last().first().value<KWayland::Server::SurfaceInterface*>(); | 485 | SurfaceInterface *serverSurface2 = serverSurfaceCreated.last().first().value<KWayland::Server::SurfaceInterface*>(); | ||
479 | QVERIFY(serverSurface2); | 486 | QVERIFY(serverSurface2); | ||
480 | QVERIFY(serverSurface1->resource() != serverSurface2->resource()); | 487 | QVERIFY(serverSurface1->resource() != serverSurface2->resource()); | ||
481 | 488 | | |||
482 | // create two images | 489 | // create two images | ||
483 | QImage black(24, 24, QImage::Format_RGB32); | 490 | QImage black(24, 24, QImage::Format_RGB32); | ||
484 | black.fill(Qt::black); | 491 | black.fill(Qt::black); | ||
485 | QImage red(24, 24, QImage::Format_ARGB32); | 492 | QImage red(24, 24, QImage::Format_ARGB32_Premultiplied); | ||
486 | red.fill(QColor(255, 0, 0, 128)); | 493 | red.fill(QColor(255, 0, 0, 128)); | ||
487 | 494 | | |||
488 | auto blackBuffer = pool1.createBuffer(black); | 495 | auto blackBuffer = pool1.createBuffer(black); | ||
489 | auto redBuffer = pool2.createBuffer(red); | 496 | auto redBuffer = pool2.createBuffer(red); | ||
490 | 497 | | |||
491 | s1->attachBuffer(blackBuffer); | 498 | s1->attachBuffer(blackBuffer); | ||
492 | s1->damage(QRect(0, 0, 24, 24)); | 499 | s1->damage(QRect(0, 0, 24, 24)); | ||
493 | s1->commit(Surface::CommitFlag::None); | 500 | s1->commit(Surface::CommitFlag::None); | ||
▲ Show 20 Lines • Show All 208 Lines • ▼ Show 20 Line(s) | 665 | { | |||
702 | QVERIFY(scaleChangedSpy.wait()); | 709 | QVERIFY(scaleChangedSpy.wait()); | ||
703 | QCOMPARE(scaleChangedSpy.count(), 2); | 710 | QCOMPARE(scaleChangedSpy.count(), 2); | ||
704 | QCOMPARE(scaleChangedSpy.first().first().toInt(), 2); | 711 | QCOMPARE(scaleChangedSpy.first().first().toInt(), 2); | ||
705 | QCOMPARE(scaleChangedSpy.last().first().toInt(), 4); | 712 | QCOMPARE(scaleChangedSpy.last().first().toInt(), 4); | ||
706 | QCOMPARE(serverSurface->scale(), 4); | 713 | QCOMPARE(serverSurface->scale(), 4); | ||
707 | scaleChangedSpy.clear(); | 714 | scaleChangedSpy.clear(); | ||
708 | 715 | | |||
709 | //attach a buffer of 100x100, our scale is 4, so this should be a size of 25x25 | 716 | //attach a buffer of 100x100, our scale is 4, so this should be a size of 25x25 | ||
710 | QImage red(100, 100, QImage::Format_ARGB32); | 717 | QImage red(100, 100, QImage::Format_ARGB32_Premultiplied); | ||
711 | red.fill(QColor(255, 0, 0, 128)); | 718 | red.fill(QColor(255, 0, 0, 128)); | ||
712 | auto redBuffer = m_shm->createBuffer(red); | 719 | auto redBuffer = m_shm->createBuffer(red); | ||
713 | s->attachBuffer(redBuffer.data()); | 720 | s->attachBuffer(redBuffer.data()); | ||
714 | s->damage(QRect(0,0, 25,25)); | 721 | s->damage(QRect(0,0, 25,25)); | ||
715 | s->commit(Surface::CommitFlag::None); | 722 | s->commit(Surface::CommitFlag::None); | ||
716 | QVERIFY(sizeChangedSpy.wait()); | 723 | QVERIFY(sizeChangedSpy.wait()); | ||
717 | QCOMPARE(sizeChangedSpy.count(), 1); | 724 | QCOMPARE(sizeChangedSpy.count(), 1); | ||
718 | QCOMPARE(serverSurface->size(), QSize(25,25)); | 725 | QCOMPARE(serverSurface->size(), QSize(25,25)); | ||
719 | sizeChangedSpy.clear(); | 726 | sizeChangedSpy.clear(); | ||
720 | scaleChangedSpy.clear(); | 727 | scaleChangedSpy.clear(); | ||
721 | 728 | | |||
722 | //set the scale to 1, buffer is still 100x100 so size should change to 100x100 | 729 | //set the scale to 1, buffer is still 100x100 so size should change to 100x100 | ||
723 | s->setScale(1); | 730 | s->setScale(1); | ||
724 | s->commit(Surface::CommitFlag::None); | 731 | s->commit(Surface::CommitFlag::None); | ||
725 | QVERIFY(sizeChangedSpy.wait()); | 732 | QVERIFY(sizeChangedSpy.wait()); | ||
726 | QCOMPARE(sizeChangedSpy.count(), 1); | 733 | QCOMPARE(sizeChangedSpy.count(), 1); | ||
727 | QCOMPARE(scaleChangedSpy.count(), 1); | 734 | QCOMPARE(scaleChangedSpy.count(), 1); | ||
728 | QCOMPARE(serverSurface->scale(), 1); | 735 | QCOMPARE(serverSurface->scale(), 1); | ||
729 | QCOMPARE(serverSurface->size(), QSize(100,100)); | 736 | QCOMPARE(serverSurface->size(), QSize(100,100)); | ||
730 | sizeChangedSpy.clear(); | 737 | sizeChangedSpy.clear(); | ||
731 | scaleChangedSpy.clear(); | 738 | scaleChangedSpy.clear(); | ||
732 | 739 | | |||
733 | //set scale and size in one commit, buffer is 50x50 at scale 2 so size should be 25x25 | 740 | //set scale and size in one commit, buffer is 50x50 at scale 2 so size should be 25x25 | ||
734 | QImage blue(50, 50, QImage::Format_ARGB32); | 741 | QImage blue(50, 50, QImage::Format_ARGB32_Premultiplied); | ||
735 | red.fill(QColor(255, 0, 0, 128)); | 742 | red.fill(QColor(255, 0, 0, 128)); | ||
736 | auto blueBuffer = m_shm->createBuffer(blue); | 743 | auto blueBuffer = m_shm->createBuffer(blue); | ||
737 | s->attachBuffer(blueBuffer.data()); | 744 | s->attachBuffer(blueBuffer.data()); | ||
738 | s->setScale(2); | 745 | s->setScale(2); | ||
739 | s->commit(Surface::CommitFlag::None); | 746 | s->commit(Surface::CommitFlag::None); | ||
740 | QVERIFY(sizeChangedSpy.wait()); | 747 | QVERIFY(sizeChangedSpy.wait()); | ||
741 | QCOMPARE(sizeChangedSpy.count(), 1); | 748 | QCOMPARE(sizeChangedSpy.count(), 1); | ||
742 | QCOMPARE(scaleChangedSpy.count(), 1); | 749 | QCOMPARE(scaleChangedSpy.count(), 1); | ||
▲ Show 20 Lines • Show All 159 Lines • ▼ Show 20 Line(s) | 903 | { | |||
902 | QVERIFY(serverSurfaceCreated.isValid()); | 909 | QVERIFY(serverSurfaceCreated.isValid()); | ||
903 | QScopedPointer<Surface> s(m_compositor->createSurface()); | 910 | QScopedPointer<Surface> s(m_compositor->createSurface()); | ||
904 | QVERIFY(serverSurfaceCreated.wait()); | 911 | QVERIFY(serverSurfaceCreated.wait()); | ||
905 | SurfaceInterface *serverSurface = serverSurfaceCreated.first().first().value<KWayland::Server::SurfaceInterface*>(); | 912 | SurfaceInterface *serverSurface = serverSurfaceCreated.first().first().value<KWayland::Server::SurfaceInterface*>(); | ||
906 | 913 | | |||
907 | // let's damage this surface | 914 | // let's damage this surface | ||
908 | QSignalSpy damagedSpy(serverSurface, &SurfaceInterface::damaged); | 915 | QSignalSpy damagedSpy(serverSurface, &SurfaceInterface::damaged); | ||
909 | QVERIFY(damagedSpy.isValid()); | 916 | QVERIFY(damagedSpy.isValid()); | ||
910 | QImage image(QSize(100, 100), QImage::Format_ARGB32); | 917 | QImage image(QSize(100, 100), QImage::Format_ARGB32_Premultiplied); | ||
911 | image.fill(Qt::red); | 918 | image.fill(Qt::red); | ||
912 | s->attachBuffer(m_shm->createBuffer(image)); | 919 | s->attachBuffer(m_shm->createBuffer(image)); | ||
913 | s->damage(QRect(0, 0, 100, 100)); | 920 | s->damage(QRect(0, 0, 100, 100)); | ||
914 | s->commit(Surface::CommitFlag::None); | 921 | s->commit(Surface::CommitFlag::None); | ||
915 | QVERIFY(damagedSpy.wait()); | 922 | QVERIFY(damagedSpy.wait()); | ||
916 | QVERIFY(serverSurface->buffer()); | 923 | QVERIFY(serverSurface->buffer()); | ||
917 | 924 | | |||
918 | // attach another buffer | 925 | // attach another buffer | ||
Show All 24 Lines | 943 | { | |||
943 | QVERIFY(s->isValid()); | 950 | QVERIFY(s->isValid()); | ||
944 | QSignalSpy surfaceCreatedSpy(m_compositorInterface, &CompositorInterface::surfaceCreated); | 951 | QSignalSpy surfaceCreatedSpy(m_compositorInterface, &CompositorInterface::surfaceCreated); | ||
945 | QVERIFY(surfaceCreatedSpy.isValid()); | 952 | QVERIFY(surfaceCreatedSpy.isValid()); | ||
946 | QVERIFY(surfaceCreatedSpy.wait()); | 953 | QVERIFY(surfaceCreatedSpy.wait()); | ||
947 | auto serverSurface = surfaceCreatedSpy.first().first().value<SurfaceInterface*>(); | 954 | auto serverSurface = surfaceCreatedSpy.first().first().value<SurfaceInterface*>(); | ||
948 | QVERIFY(serverSurface); | 955 | QVERIFY(serverSurface); | ||
949 | 956 | | |||
950 | // now render to it | 957 | // now render to it | ||
951 | QImage img(QSize(10, 10), QImage::Format_ARGB32); | 958 | QImage img(QSize(10, 10), QImage::Format_ARGB32_Premultiplied); | ||
952 | img.fill(Qt::black); | 959 | img.fill(Qt::black); | ||
953 | auto b = m_shm->createBuffer(img); | 960 | auto b = m_shm->createBuffer(img); | ||
954 | s->attachBuffer(b); | 961 | s->attachBuffer(b); | ||
955 | s->damage(QRect(0, 0, 10, 10)); | 962 | s->damage(QRect(0, 0, 10, 10)); | ||
956 | // add some frame callbacks | 963 | // add some frame callbacks | ||
957 | for (int i = 0; i < 1000; i++) { | 964 | for (int i = 0; i < 1000; i++) { | ||
958 | wl_surface_frame(*s); | 965 | wl_surface_frame(*s); | ||
959 | } | 966 | } | ||
▲ Show 20 Lines • Show All 129 Lines • Show Last 20 Lines |