2011-10-14 6 views
6

Tengo un archivo QML que contiene un diseño de elementos QML y ahora quiero que uno de esos elementos sea un QGLWidget. es decir, quiero renderizar en un elemento QML específico.Representación OpenGL a un elemento QML

¿Alguien está enterado de cómo hacer esto?

Respuesta

3

La manera más simple supongo que proporciona a QML un nuevo componente personalizado implementado en C++. No pude encontrar nada listo.

Puede crear una subclase de QDeclarativeItem e implementar su código de OpenGL en la función de pintura después de usar la función QPainter::beginNative(). Después de eso, puede "exportar" su nuevo artículo personalizado a QML this way. Esto es bastante simple y debería funcionar, pero que tendrá que configurar el puerto de vista de que QDeclarativeView ser un QGLWidget, algo como esto:

QDeclarativeView view; 
// This is needed because OpenGL viewport doesn't support partial updates. 
view.setViewportUpdateMode(QGraphicsView::FullViewportUpdateMode); 
view.setViewport(new QGLWidget); 

o tendrá que utilizar el sistema de gráficos OpenGL para la totalidad solicitud. Otra forma es usar QML/3D.

This thread le dará otra información.

+0

El enlace a los documentos QML/3D ha cambiado, lo he actualizado. –

Cuestiones relacionadas