Ситуация такая:
Есть виджет с нацепленным OpenGL контекстом сторонней библиотеки.
Его парент, это фрейм - занимающийся обработкой пользовательских запросов.
Задача: пользователь должен мышкой нарисовать прямоугольник на виджете, для дальнейшай обработки, например - перекрасить все что попало под выделение.
Перерисовывать OpenGl сцены на каждое двидение мышки - это перебор
))
Раньше (Qt-3)делалось следующее:
QPainter aPainter( myOpenGLViewPort);
aPainter.setRasterOp(Qt::XorROP);
aPainter.setPen(Qt::white);
QRect aRect = QRect(myStartX, myStartY, myCurrW, myCurrH);
if ( !myRect.isEmpty() )
aPainter.drawRect( myRect );
aPainter.drawRect(aRect);
myRect = aRect;
Теперь setRasterOp отменили, вместо него compositionMode(), причем операции наложения доступны только на QImage (который, кстати, теперь QPaintDevice)
Да и чтобы врубить паинтер в любом месте ещё и доп атрибут нужен
Qt::WA_PaintOutsidePaintEvent.
Вобщем, как спортироваться, не представляю....
Дампить временно OpenGL в картинку и рендерить не наш метод
))
Нужно чтобы всё красиво:)
Кто-нибудь решал подобную задачку?
Заранее спасибо