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

Sletta Gunnar Gunnar.Sletta at digia.com
Fri May 3 06:39:59 CEST 2013


Antialiasing on an FBO requires FBO multisampling and framebuffer blit support. Do you have these extensions available?

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-05-02-11/qt-windows-opensource-5.1.0-beta1-msvc2012_opengl-x86_64-offline-2013-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



More information about the Interest mailing list