MiniDisplay/minidisplay.cpp
changeset 29 a42cc76a2d5a
parent 23 1f607fa8542f
child 30 c0f274a21d33
     1.1 --- a/MiniDisplay/minidisplay.cpp	Mon Jun 02 21:56:03 2014 +0200
     1.2 +++ b/MiniDisplay/minidisplay.cpp	Tue Jun 03 16:11:47 2014 +0200
     1.3 @@ -197,6 +197,49 @@
     1.4      iDisplay.BitBlit(bits,w,h,0,0);
     1.5  }
     1.6  
     1.7 +
     1.8 +/**
     1.9 + * @brief MiniDisplay::connectWindow
    1.10 + * @param aWindow
    1.11 + */
    1.12 +void MiniDisplay::connectWindow(QQuickWindow* aWindow, QJSValue aFunction)
    1.13 +{
    1.14 +    QObject::connect(aWindow, SIGNAL(afterAnimating()),
    1.15 +                     this,  SLOT(onAfterAnimating()));
    1.16 +
    1.17 +    iAfterAnimatingCallback = aFunction;
    1.18 +    iWindow = aWindow;
    1.19 +}
    1.20 +
    1.21 +/**
    1.22 + * @brief MiniDisplay::onAfterAnimating
    1.23 + */
    1.24 +void MiniDisplay::onAfterAnimating()
    1.25 +{
    1.26 +    static int frame=0;
    1.27 +    qDebug() << frame << "MiniDisplay::onAfterAnimating";
    1.28 +    /*
    1.29 +    if (iAfterAnimatingCallback.isCallable())
    1.30 +    {
    1.31 +        iAfterAnimatingCallback.call();
    1.32 +    }*/
    1.33 +
    1.34 +    renderWindow(iWindow);
    1.35 +    swapBuffers();
    1.36 +
    1.37 +    //Interrestingly rendering will suspend when we stop changing our text field content
    1.38 +    if (frame%8==0)
    1.39 +    {
    1.40 +        if (iAfterAnimatingCallback.isCallable())
    1.41 +        {
    1.42 +            iAfterAnimatingCallback.call(QJSValueList() << frame);
    1.43 +        }
    1.44 +    }
    1.45 +
    1.46 +    frame++;
    1.47 +}
    1.48 +
    1.49 +
    1.50  /**
    1.51   * @brief MiniDisplay::setPixel
    1.52   * @param x