On 26 Feb 2014, at 18:26, Kurt Pattyn <[email protected]> wrote:

> Thanks for the reply.
> 
> On 25 Feb 2014, at 23:22, Gunnar Sletta <[email protected]> wrote:
> 
>> On 26 Feb 2014, at 00:42, Kurt Pattyn <[email protected]> wrote:
>> 
>>> We are currently looking into a way to render a 10-bit image in QML.
>> 
>> I'm going to assume we're talking about Qt Quick 2.0.
> Yes, indeed.
>> 
>> As in 10-bit grayscale or GL_UNSIGNED_INT_10_10_10_2?
> Yes, both grayscale and color 10-bit.
>> In any case, you can create a custom QSGTexture class which defines the 
>> format and contents of your texture and display that in the scene graph 
>> using a QSGSimpleTextureNode. If something more specific is needed, write 
>> your own material to do exactly what you want.
> Is it correct that we can subclass a QQuickItem and return a subclassed 
> QSGSimpleTextureNode object from the updatePaintNode() method?

Indeed. The default texture material assumes RGBA values, though, so at least 
for the grayscale texture, you probably want to write a custom material to pick 
only the 'r' gray value. 

https://qt-project.org/doc/qt-5.1/qtquick/scenegraph-simplematerial.html

shows how to use a custom material.

>> 
>>> Our first idea is to create an OpenGL context in C++ and use that in QML.
>> 
>> You cannot create the OpenGL context for QQuickWindow, but you can request 
>> the format it should take via QQuickWindow::setFormat().
>> 
>>> QML must be able to overlay text on this 10-bit OpenGL context.
>>> 
>>> What is the best approach for this? Is it possible at all?
>>> Can we expose a QGLWidget, or something similar?
>> 
>> QQuickWindow has an QOpenGLContext and does not use QGLWidget.
> So, as I understand this is what should be done:
> QSurfaceFormat surfaceFormat;
> surfaceFormat.setRenderableType(QSurfaceFormat::OpenGL);
> //set bitDepth on surfaceFormat
> QQuickView * view = new QQuickView();
> view->setFormat(surfaceFormat);
> 
> And then use a subclassed QQuickItem together with a subclassed 
> QSGSimpleTextureNode.
> 
> Is this correct?

I haven't tried >8-bit target frame buffers, but if they are exposed as normal 
GL configs, you would be doing something like:

QSurfaceFormat format;
format.setRedDepthBufferSize(10);
format.setGreenDepthBufferSize(10);
format.setBlueDepthBufferSize(10);
format.setDepthBufferSize(24);
format.setStencilBufferSize(8);

QQuickView view;
view.setFormat(format);
...
view.show();

cheers,
Gunnar

BTW, For general questions on how to USE Qt, [email protected] is more 
suited. The development list is for developing Qt itself.

> 
> Cheers,
> Kurt
>> 
>> 
>> cheers,
>> Gunnar
>> 
> 

_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to