[Interest] Anti-aliasing for QML Canvas on Windows?

Sean Harmer sean.harmer at kdab.com
Fri May 3 11:18:52 CEST 2013


On Friday 03 May 2013 04:39:59 Sletta Gunnar wrote:
> Antialiasing on an FBO requires FBO multisampling and framebuffer blit
> support. Do you have these extensions available?

It would be nice if we could alternatively use GL_ARB_texture_multisample 
(also core feature in OpenGL 3.2). /me makes a note to look at 
QOpenGLFramebufferObject for Qt 5.2.

Cheers,

Sean

> 
> Cheers,
> Gunnar
> 
> On 3. mai 2013, at 00:04, "Mark" <markg85 at gmail.com> wrote:
> > On Thu, May 2, 2013 at 11:47 PM, Mark <markg85 at gmail.com> wrote:
> >> On Tue, Mar 12, 2013 at 12:22 AM, Bache-Wiig Jens
> >> 
> >> <Jens.Bache-Wiig at digia.com> wrote:
> >>>> Hi,
> >>>> Sorry for delay, I had not seen your question
> >>>> To enable antialiasing in Qt Quick Canvas, you must set the property
> >>>> "antialiasing" to "true" and set the property "renderTarget" to
> >>>> "Canvas.Image" Guillaume
> >>> 
> >>> True. It might also be worth mentioning that we also plan to make this
> >>> the default setting on Canvas items in Qt 5.1.
> >>> 
> >>> Jens
> >>> 
> >>>> On Fri, Feb 15, 2013 at 7:49 PM, Mark <markg85 at gmail.com
> >>>> 
> >>>>> wrote:
> >>>> Hi,
> >>>> 
> >>>> I'm drawing some shapes on Windows 7 with QML Canvas, but the output
> >>>> 
> >>>> really seems aliased as in the anti-aliasing is off.
> >>>> 
> >>>> The code:
> >>>> 
> >>>> import QtQuick 2.0
> >>>> 
> >>>> Item {
> >>>> 
> >>>>     width: 400
> >>>>     
> >>>>     height: 400
> >>>>     
> >>>>     Canvas {
> >>>>     
> >>>>         id:canvas
> >>>>         
> >>>>         width:400
> >>>>         
> >>>>         height:400
> >>>>         
> >>>>         antialiasing: true
> >>>>         
> >>>>         property string strokeStyle:"green"
> >>>>         
> >>>>         property string fillStyle:"yellow"
> >>>>         
> >>>>         property int lineWidth:10
> >>>>         
> >>>>         property bool fill:true
> >>>>         
> >>>>         property bool stroke:true
> >>>>     
> >>>>     onPaint: {
> >>>>     
> >>>>           var ctx = canvas.getContext('2d');
> >>>>           
> >>>>           ctx.save();
> >>>>           
> >>>>           ctx.clearRect(0, 0, canvas.width, canvas.height);
> >>>>           
> >>>>           ctx.strokeStyle = canvas.strokeStyle;
> >>>>           
> >>>>           ctx.fillStyle = canvas.fillStyle;
> >>>>           
> >>>>           ctx.lineWidth = canvas.lineWidth;
> >>>>           
> >>>>           ctx.arc(75,75,50,0,Math.PI*2,true); // Outer circle
> >>>>           
> >>>>           if (canvas.fill)
> >>>>           
> >>>>              ctx.fill();
> >>>>           
> >>>>           if (canvas.stroke)
> >>>>           
> >>>>              ctx.stroke();
> >>>>           
> >>>>           ctx.restore();
> >>>>         
> >>>>         }
> >>>>     
> >>>>     }
> >>>> 
> >>>> }
> >>>> 
> >>>> I'm using Qt 5.0.1 mingw build x86 on Windows 7.
> >>>> 
> >>>> Cheers,
> >>>> 
> >>>> Mark
> >>>> 
> >>>> 
> >>>> Anyone?
> >>>> 
> >>>> _______________________________________________
> >>>> Interest mailing list
> >>>> Interest at qt-project.org
> >>>> http://lists.qt-project.org/mailman/listinfo/interest
> >>> 
> >>> _______________________________________________
> >>> Interest mailing list
> >>> Interest at qt-project.org
> >>> http://lists.qt-project.org/mailman/listinfo/interest
> >> 
> >> Hi,
> >> 
> >> A late followup on this one. I just tried out
> >> http://download.qt-project.org/snapshots/qt/5.1/5.1.0-beta1/backups/2013-> >> 05-02-11/qt-windows-opensource-5.1.0-beta1-mingw47-x86-offline-2013-05-02
> >> -11.exe and ran the example in:
> >> C:\Qt\Qt5.1.0\5.1.0-beta1\mingw47_32\examples\quick\canvas. I noticed
> >> (quite fast) that antialiasing is not enabled.
> >> 
> >> Another ANGLE issue?
> >> 
> >> My graphics card is an nvidia one with an intel cpu so i guess the
> >> hardware setup is roughly ideal.
> >> 
> >> Any reason why antialiasing is not on?
> >> 
> >> Cheers,
> >> Mark
> > 
> > Note: it does properly antialias when i set the renderTarget to
> > Canvas.Image but i suppose it should just work with
> > Canvas.FramebufferObject as well. I also tried the opengl package
> > http://download.qt-project.org/snapshots/qt/5.1/5.1.0-beta1/backups/2013-0
> > 5-02-11/qt-windows-opensource-5.1.0-beta1-msvc2012_opengl-x86_64-offline-2
> > 013-05-02-11.exe which works exactly the same as the mingw one. Don't know
> > if both ones are using angle or not but i tried nonetheless.
> > _______________________________________________
> > Interest mailing list
> > Interest at qt-project.org
> > http://lists.qt-project.org/mailman/listinfo/interest
> 
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
--
Dr Sean Harmer | sean.harmer at kdab.com | Senior Software Engineer
Klarälvdalens Datakonsult AB, a KDAB Group company
Tel. Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322)
KDAB - Qt Experts - Platform-independent software solutions



More information about the Interest mailing list