void Ut_MGLE2Renderer::testDrawing()
{
#ifdef M_USE_OPENGL
    QGLWidget glw;
    glw.resize(67,67);
    glw.makeCurrent();
    MGLES2Renderer::activate(&glw);
    MGLES2Renderer* r = MGLES2Renderer::instance();

    QPixmap pm(32,32);
    pm.fill(Qt::red);

    //draw with default shader
    r->setViewportSize(glw.size());
    r->begin(NULL);
    r->bindTexture(pm);
    r->draw(QRect(1,1,32,32));
    r->draw(34,1);
    r->draw(1,34,32,32);
    r->setInvertTexture(true);
    r->draw(QRect(34,34,32,32), QRect(4,4,24,24));
    r->end();
        
    //draw with custom shader
    r->begin(NULL, r->getShaderProgram(qApp->applicationDirPath() + "/shader1.frag", qApp->applicationDirPath() + "/shader1.vert"));
    r->bindTexture(pm);
    r->draw(17,17,33,33);
    r->end();
    
    //compare resulted image with reference image    
    QImage image1 = glw.grabFrameBuffer();
    //image1.save("glw1.png", "PNG");
    QImage image2(qApp->applicationDirPath() + "/glw1.png", "PNG");
    QVERIFY(image1 == image2);

    //draw patches
    glw.resize(64,64);
    QList<QRect> targets;
    targets.append(QRect(0,0,32,32));
    targets.append(QRect(32,0,32,32));
    targets.append(QRect(0,32,32,32));
    targets.append(QRect(32,32,32,32));
    QList<QRect> sources;
    sources.append(QRect(17,17,16,16));
    sources.append(QRect(32,17,16,16));
    sources.append(QRect(17,32,16,16));
    sources.append(QRect(32,32,16,16));
    pm.convertFromImage(image2);
    r->begin(NULL);
    r->bindTexture(pm);
    r->draw(targets, sources);
    r->end();

    //compare resulted image with reference image    
    image1 = glw.grabFrameBuffer();
    //image1.save("glw2.png", "PNG");
    image2.load(qApp->applicationDirPath() + "/glw2.png", "PNG");
    QVERIFY(image1 == image2);
#endif
}