> On 05 Jun 2016, at 00:50, Artem Fedoskin <afedosk...@gmail.com> wrote:
> 
> As I understand there is no way to draw dashed line in Qt Quick Scene Graph 
> so I decided to create shader material to do this.
> I'm trying to apply this approach http://korkd.com/2012/02/15/dashed-lines/ 
> to this example 
> http://doc.qt.io/qt-5/qtquick-scenegraph-simplematerial-example.html. 
>       • How can I get ModelView matrix in my shader? I need to multiply 
> ModelView matrix by vertex to get its current position.

Hi Artem,

The model view matrix is part of the QSGMaterialShader::RenderState that is 
passed in to the QSGMaterialShader::updateState() function which you use to 
apply the state for you material.

>       • How in this example works 
> QSGGeometry::defaultAttributes_TexturedPoint2D? What values does it store?

The vertex shader in the code you link only uses a colorized 2D point, one vec4 
for the position and one vec4 for the color, so you want that kind of vertex 
structure. QSGGeometry::defaultAttributes_ColorizedPoint2D() implements that 
for 2D at least.

>       • How can I pass sourcePoint (the first point of a line) to my shader?

It is a uniform, so you write it during the QSGMaterialShader::updateState() 
function.

> If someone knows better way to draw dashed line I would be grateful to you 
> for telling me it.

An alternative approach would be to generate the line segments for the dashes 
and combining that with QSGGeometry::defaultAttributes_ColorizedPoint2D() and 
QSGVertexColorMaterial. It will be a bit more work to prepare and take up a bit 
more memory, but on the plus side, it will batch in the renderer, so it will 
probably be faster to draw if you have many instances of these dashed objects. 
The modelview/cos based implementation you link to will not support batching 
because each line needs a unique shader state, the model view matrix and 
perhaps also the source point.

cheers,
Gunnar

> 
> Regards, Artem
> 
> _______________________________________________
> Interest mailing list
> Interest@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest

_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to