Eskil Abrahamsen Blomfeldt <[EMAIL PROTECTED]> wrote:
 
> Dimitri Frederickx wrote:
>> The reason that I want to use OpenGL for rendering is SVG. I have some large 
>> animated SVG files I want to show in high definition. When I don't use 
OpenGL, 
>> my animations are not fluent. From time to time the animation stops for a 
>> few 
>> milli seconds, and then going further but dropping some intermediate 
rendering. 
>>   
> 
> That sounds like garbage collection kicking in to me, but in that case I 
> suppose the effect should be the same regardless of the viewport widget.
> 
> Have you tried removing all allocations in the inner loop, though?
> 

While my SVG is playing, I don't do any other other logic. All other treads are 
idle, no objects are created of deleted. I've installed a profiler and no 
garbage is collected during my SVG animations.

>> Can someone help me?
>>
>> Problems with OpenGL:
>>
>> 1. By using OpenGL, the quality of my graphics items is drastically reduced. 
>> When I resize my pixmaps, I'm using SmoothTransform. Without OpenGL my 
pictures 
>> look really nice and smooth, but with OpenGL I see little blocks around my 
>> pictures, no smooth lines, etc. How can I increase the quality of my items?
>>   
> 
> I'm not completely clear on what is happening here. Are you using 
> QGraphicsPixmapItems? If you are, you should set SmoothTransform on the 
> items:
> 
>     
> 
myPixmapItem.setTransformationMode(Qt.TransformationMode.SmoothTransformation);
> 

Yes, I'm using QGraphicsPixmapItem to display my images. What I did was:
1. Creating a pixmap
2. Scaling that pixmap to the size I wanted (because I've read scaling the 
QGraphicsPixmapItem reduces the quality). After this no other transformations 
happen anymore to my image.

This doing this gives good quality when NOT using OpenGL.

I tried your suggestion of also setting the transformation mode on the 
QGraphicsPixmapItems, and this solved my problem with OpenGL. This now also 
gives good quality. So that problem is already solved for me.





> If you are however using your own QGraphicsItem subclass with an 
> overridden paint() method in which you call drawPixmap() on a painter, 
> then you should either set SmoothPixmapTransform render hint on the 
> painter before drawing, or on the entire graphics view if you want this 
> as a global setting:
> 
>     myGraphicsView.setRenderHint(QPainter.RenderHint.SmoothPixmapTransform);
> 
> This should, however, give the same results for OpenGL as for software 
> rendering. I have made an attempt at reproducing your problem on 
> Windows, but I don't see any major differences between a scene rendered 
> with OpenGL and one rendered without here.
> 
> A few questions to try to track down the problem:
> 
> 1. Have you tested this on any other platform than Windows?
> 
> 2. Do you see any artifacts when running the 40 000 chips demo and 
> turning on OpenGL rendering? Some differences between software and 
> hardware rendering is to be expected, especially for font rendering, and 
> this might be affected by the graphics drivers or the graphics hardware 
> you are running. We don't know of any issues we would consider 
> "unusable", though.
> 
> 3. Which graphics hard ware are you using?
> 
> 4. Could you possibly send us screenshots of the problems you are 
> seeing, and also a code example if you have one? Since I haven't been 
> able to reproduce this, it's hard to picture how bad it is.
> 
>> 2. I have made a marquee (scrolling text) with the use of QGraphicsTextItem 
and 
>> QGraphicsItemAnimation. Without OpenGL this works smooth, but with OpenGL my 
>> text looks ugly because of the poor quality and because the scrolling 
suddenly 
>> doesn't happen as smooth as before.
>>   
> 
> I'm not sure, but this may be a side effect of how text rendering is 
> optimized in our OpenGL engine. You could replace the regular text 
> rendering with an algorithm which converts the texts to QPainterPaths 
> (see the Deformation demo) and then renders this instead to avoid the 
> problems. Any transformation on the text should be smooth then, but the 
> performance will suffer accordingly.
> 
>> 3. Adding the setViewport line in my code makes my application crash when I 
quit 
>> it. 9 out of the 10 times my application crashes on a shutdown. When I don't 
set 
>> the viewport, everything works just fine. Here is a part of the error dump:
>>   
> 
> I've reproduced this crash and made a task for fix it for Qt Jambi 4.4.0_01.
> 
> -- Eskil
> 
> 

_______________________________________________
Qt-jambi-interest mailing list
[email protected]
http://lists.trolltech.com/mailman/listinfo/qt-jambi-interest

Reply via email to