diff -r 9903a5edeb56 -r 737f8bb110be MiniDisplay/minidisplay.cpp --- a/MiniDisplay/minidisplay.cpp Wed May 28 21:31:03 2014 +0200 +++ b/MiniDisplay/minidisplay.cpp Thu May 29 14:27:08 2014 +0200 @@ -5,7 +5,7 @@ const int KMaxReadAttempt=100; MiniDisplay::MiniDisplay(QQuickItem *parent): - QQuickItem(parent),iReadAttempt(0),iBrightness(0) + QQuickItem(parent),iReadAttempt(0),iBrightness(iDisplay.MaxBrightness()) { // By default, QQuickItem does not draw anything. If you subclass // QQuickItem to create a visual item, you will need to uncomment the @@ -137,9 +137,47 @@ painter.drawText(0,metrics.ascent(),strDemo); } //Save image as PNG for validation - image.save("font.png"); + //image.save("font.png"); // - //int sizeInBytes=image.byteCount(); + renderImage(&image); +} + +/** + * @brief MiniDisplay::renderWindow + */ +void MiniDisplay::renderOwnWindow() +{ + QImage image=window()->grabWindow(); + //image.save("window.png"); + renderImage(&image); +} + +/** + * @brief MiniDisplay::render + * @param aWindow + */ +void MiniDisplay::renderWindow(QQuickWindow* aWindow) +{ + QImage image=aWindow->grabWindow(); + //image.save("window.png"); + renderImage(&image); +} + +/** + * @brief MiniDisplay::render + * @param aImage + */ +void MiniDisplay::renderImage(QImage* aImage) +{ + if (!iDisplay.IsOpen()) + { + return; + } + + //Convert our image into a bit array + int w=aImage->width(); + int h=aImage->height(); + int pixelCount=w*h; BitArray bits(pixelCount); @@ -147,7 +185,7 @@ { for (int j=0;jpixel(i,j); if (color!=0xffffffff) { bits.SetBit(i*h+j); @@ -155,26 +193,32 @@ } } - if (iDisplay.IsOpen()) - { - iDisplay.Clear(); - iDisplay.BitBlit(bits,w,h,0,0); - iDisplay.SwapBuffers(); - } - // + //Just blit it then + iDisplay.BitBlit(bits,w,h,0,0); } - +/** + * @brief MiniDisplay::vendor + * @return + */ QString MiniDisplay::vendor() { return QString::fromWCharArray(iDisplay.Vendor()); } +/** + * @brief MiniDisplay::product + * @return + */ QString MiniDisplay::product() { return QString::fromWCharArray(iDisplay.Product()); } +/** + * @brief MiniDisplay::serialNumber + * @return + */ QString MiniDisplay::serialNumber() { return QString::fromWCharArray(iDisplay.SerialNumber());