Всем здравствуйте!

Пишу небольшую программу на Qt с использованием Qml + C++. На форме есть модель (загружена через библиотеку qt3d). Возникла необходимость отобразить какое-какое изображение(несколько вложенных окружностей) на модели. Думаю, что решить проблему можно через OpenGL. Но вот тут то и возникли трудности, не могу правильно это сделать.

Что делал:

1) Создал класс наследник QGLWidget:

#ifndef DRAW_CIRCLS_H
#define DRAW_CIRCLS_H

#include <QGLWidget>
#include <QtOpenGL>

class draw_circls : public QGLWidget
{
    Q_OBJECT
public:
    explicit draw_circls(QWidget *parent = 0);
    void paintGL();
    void initializeGL();
signals:

public slots:

};

#endif // DRAW_CIRCLS_H


2) Переопределил функцию void paintGL() (нашел в интернете куб), а так же функцию void initializeGL():

#include "draw_circls.h"

draw_circls::draw_circls(QWidget *parent) :
    QGLWidget(parent)
{
}

void draw_circls::paintGL()
{
    glLoadIdentity();
     glTranslatef(1.5f,0.0f,-7.0f);          // Сдвинуть вправо и вглубь экрана
     glRotatef(1.0f,1.0f,1.0f,1.0f);        // Вращение куба по X, Y & Z
     glBegin(GL_QUADS);                      // Рисуем куб

     glColor3f(0.0f,1.0f,0.0f);              // Синий
     glVertex3f( 1.0f, 1.0f,-1.0f);          // Право верх квадрата (Верх)
     glVertex3f(-1.0f, 1.0f,-1.0f);          // Лево верх
     glVertex3f(-1.0f, 1.0f, 1.0f);          // Лево низ
     glVertex3f( 1.0f, 1.0f, 1.0f);          // Право низ
     glColor3f(1.0f,0.5f,0.0f);              // Оранжевый
     glVertex3f( 1.0f,-1.0f, 1.0f);          // Верх право квадрата (Низ)
     glVertex3f(-1.0f,-1.0f, 1.0f);          // Верх лево
     glVertex3f(-1.0f,-1.0f,-1.0f);          // Низ лево
     glVertex3f( 1.0f,-1.0f,-1.0f);          // Низ право
     glColor3f(1.0f,0.0f,0.0f);              // Красный
     glVertex3f( 1.0f, 1.0f, 1.0f);          // Верх право квадрата (Перед)
     glVertex3f(-1.0f, 1.0f, 1.0f);          // Верх лево
     glVertex3f(-1.0f,-1.0f, 1.0f);          // Низ лево
     glVertex3f( 1.0f,-1.0f, 1.0f);          // Низ право
     glColor3f(1.0f,1.0f,0.0f);              // Желтый
     glVertex3f( 1.0f,-1.0f,-1.0f);          // Верх право квадрата (Зад)
     glVertex3f(-1.0f,-1.0f,-1.0f);          // Верх лево
     glVertex3f(-1.0f, 1.0f,-1.0f);          // Низ лево
     glVertex3f( 1.0f, 1.0f,-1.0f);          // Низ право
     glColor3f(0.0f,0.0f,1.0f);              // Синий
     glVertex3f(-1.0f, 1.0f, 1.0f);          // Верх право квадрата (Лево)
     glVertex3f(-1.0f, 1.0f,-1.0f);          // Верх лево
     glVertex3f(-1.0f,-1.0f,-1.0f);          // Низ лево
     glVertex3f(-1.0f,-1.0f, 1.0f);          // Низ право
     glColor3f(1.0f,0.0f,1.0f);              // Фиолетовый
     glVertex3f( 1.0f, 1.0f,-1.0f);          // Верх право квадрата (Право)
     glVertex3f( 1.0f, 1.0f, 1.0f);          // Верх лево
     glVertex3f( 1.0f,-1.0f, 1.0f);          // Низ лево
     glVertex3f( 1.0f,-1.0f,-1.0f);          // Низ право
     glEnd();                                // Закончили квадраты
}

void draw_circls::initializeGL()
{
    qglClearColor(Qt::white);
    glEnable(GL_DEPTH_TEST);
    glShadeModel(GL_FLAT);
    glEnable(GL_CULL_FACE);
}


3) Зарегистрировал новый тип, подключил его к QML файлу:

#include "draw_circls.h" //добавляем хедер
........................
qmlRegisterType<draw_circls>("Draw", 1, 0, "Draw"); //регистрируем новый тип
........................
import Draw 1.0 //импортируем новый тип в qml файл
........................
Draw{id: blalba} //вызываем наш класс (по-идее должен появится куб, но его нету)



Буду очень благодарен, если кто-то сможет помочь!