Я пытаюсь выполнить несколько манипуляций с изображениями с использованием OpenGL ES 2.0 и отобразить вывод в подклассе QDeclarativeItem, который затем будет использоваться в моем QML GUI.Я прочитал ответы, найденные здесь: http://developer.qt.nokia.com/forums/viewthread/4109, и мне удалось нарисовать прямоугольник от красного до синего в моем графическом интерфейсе QML, переопределив метод paint () QDeclarativeItem:
void GLDeclarativeItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
painter->beginNativePainting();
glBegin(GL_QUADS);
glColor3ub(0,0,255);
glVertex2d(0, 0);
glVertex2d(0, height());
glColor3ub(255,0,0);
glVertex2d(width(), height());
glVertex2d(width(), 0);
glEnd();
painter->endNativePainting();
}
Однако я пытаюсь добиться того, чтобы нарисовать изображение, которое будет обрабатываться в моем собственном QGLWidget, в качестве содержимого описанного выше QDeclarativeItem (вместо содержимого, окрашенного в красный-синий).
Внутри моегоcustom QGLWidget Я использую:
void GLWidget::paintGL()
{
glClear(GL_COLOR_BUFFER_BIT);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
}
для рисования, который работал нормально.Тем не менее, я не могу найти преобразование между чертежом в моем GLWidget и моем GLDeclarativeItem.Все, что я пробовал до сих пор, просто дало мне прямоугольник без какого-либо содержания.Спасибо за вашу помощь!