Hi<div><br></div><div>Does anyone have an idea about this ?<br><br>Thx in advance</div><div>Sebastien</div><div><br><div class="gmail_quote">Le 3 novembre 2011 09:53, S�bastien Royer <span dir="ltr"><<a href="mailto:sroyer@wyplay.com">sroyer@wyplay.com</a>></span> a �crit :<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Thx No'am.<br>
That's clear.<br>
<br>
Unfortunately, it seems using "translate3d()" is not enough. I still<br>
have "drawTextItem()" called for each frame.<br>
Maybe are there some "restrictions" on DOM elements for TextureMapping<br>
to be active (I don't think so)... or maybe something broken on trunk (I<br>
don't think so too ;-)...<br>
<br>
In WebCore, I can see creation of GraphicsLayerQt class only when<br>
"Hello" moves (6 instances for a single <span> tag animation). This<br>
means that compositing is used I guess.<br>
<br>
But no TextureMapperQt and BitmapTextureQt instances are created. There<br>
is something missing to have TextureMapper activated in my situation.<br>
<br>
If you have other ideas, yw ;))<br>
<br>
Sebastien<br>
<br>
Le 02/11/2011 17:46, <a href="mailto:noam.rosenthal@nokia.com">noam.rosenthal@nokia.com</a> a �crit :<br>
<div><div></div><div class="h5">> Hi Sebastien.<br>
> -webkit-transform is not enough.<br>
> You need to do one of the following:<br>
> 1. use a CSS animation instead of JavaScript.<br>
> 2. Use translate3d instead of translate.<br>
><br>
> � el.style["WebkitTransform"] = "translate3d(" + (goRight ? "" : "-") + "80px, 0, 0)";<br>
><br>
> will do the trick, though CSS animations is always a better idea than using JS, as the animation itself could be optimized in the engine rather than having the engine deal with every frame separately.<br>
><br>
> btw this is not a QtWebKit issue - it's CSS3D best practices. See <a href="http://www.webkit.org/blog/386/3d-transforms/" target="_blank">http://www.webkit.org/blog/386/3d-transforms/</a><br>
> Also Ariya's blog on the subject (<a href="http://www.sencha.com/blog/understanding-hardware-acceleration-on-mobile-browsers/" target="_blank">http://www.sencha.com/blog/understanding-hardware-acceleration-on-mobile-browsers/</a>) can be helpful.<br>

><br>
> No'am<br>
> ________________________________________<br>
> From: <a href="mailto:webkit-qt-bounces@lists.webkit.org">webkit-qt-bounces@lists.webkit.org</a> [<a href="mailto:webkit-qt-bounces@lists.webkit.org">webkit-qt-bounces@lists.webkit.org</a>] on behalf of ext S�bastien Royer [<a href="mailto:sroyer@wyplay.com">sroyer@wyplay.com</a>]<br>

> Sent: Wednesday, November 02, 2011 9:35 AM<br>
> To: <a href="mailto:webkit-qt@lists.webkit.org">webkit-qt@lists.webkit.org</a><br>
> Subject: Re: [webkit-qt] TextureMapper activation and use without OpenGL (with underlying DirectFB backend)<br>
><br>
> Thx No'am,<br>
><br>
> � � I have tried your suggestion, replacing 'left' changes with<br>
> "-webkit-transform" use (controlled by Javascript).<br>
> � � The result is the same (lots of "drawTextItem()" calls)<br>
> � � Here is the function which does this stuff. Maybe something wrong :<br>
><br>
> function onTimer()<br>
> {<br>
> � goRight = !goRight;<br>
> � var el = document.getElementById("myText");<br>
> � el.style["WebkitTransform"] = "translate(" + (goRight ? "" : "-") +<br>
> "80px, 0)";<br>
> � setTimeout("onTimer()", 3500);<br>
> }<br>
><br>
> � � I'm sure I'm not so far from solution ;)..<br>
><br>
> Sebastien<br>
><br>
> Le 02/11/2011 15:04, <a href="mailto:noam.rosenthal@nokia.com">noam.rosenthal@nokia.com</a> a �crit :<br>
><br>
>> Hi Sebastien<br>
>> Accelerated animations only work on -webkit-transform and opacity properties, not on "left", "size" or anything else.<br>
>> You should be able to achieve your animation with "-webkit-transform", and that should not give you the excess of drawTextItem calls.<br>
>> No'am<br>
>><br>
>> On Nov 2, 2011, at 2:35 AM, ext S�bastien Royer wrote:<br>
>><br>
>><br>
>><br>
>>> Hi,<br>
>>><br>
>>> � �I only used QWebView. In that case I saw just flat objects (in the<br>
>>> "circle" example:<br>
>>> <a href="http://webkit.org/blog-files/3d-transforms/poster-circle.html" target="_blank">http://webkit.org/blog-files/3d-transforms/poster-circle.html</a>)<br>
>>> � �When I use a QGraphicsWebView, in that case, I can see 3D objects now.<br>
>>> � �So, in this new configuration, I retried my very simple web site<br>
>>> which only contains a text moving from left to right periodically, and<br>
>>> using CSS3 "left" property animation (declaring it as<br>
>>> "-webkit-transition:all 1s ease-in-out;").<br>
>>> � �In that precise case, which normally must have texturemapping being<br>
>>> activated (As I understand), I still have the graphics method<br>
>>> "QPaintEngine::drawTextItem()" being called for every frame during<br>
>>> animation, and "not only once" at first draw need.<br>
>>> � �(Even not needed, and to answer your question, I checked that<br>
>>> QWebSettings::AcceleratedCompositingEnabled is really set to true)<br>
>>><br>
>>> � �Do you agree that this method "QPaintEngine::drawTextItem()" has not<br>
>>> to be called every frame to redraw my "hello" text during animation ?<br>
>>><br>
>>> � �Here is the content of my page:<br>
>>><br>
>>> <html><br>
>>> <head><br>
>>> <style type="text/css"><br>
>>> #myText<br>
>>> {<br>
>>> � � � �top: 100px;<br>
>>> � � � �left: 100px;<br>
>>> � � � �position: absolute;<br>
>>> � � � �-webkit-transition:all 1s ease-in-out;<br>
>>> }<br>
>>> </style><br>
>>><br>
>>> <script language="javascript"><br>
>>> var goRight = false;<br>
>>> function onTimer()<br>
>>> {<br>
>>> �goRight = !goRight;<br>
>>> �document.getElementById("myText").style.left = goRight ? '300px' :<br>
>>> '100px';<br>
>>> �setTimeout("onTimer()", 3500);<br>
>>> }<br>
>>><br>
>>> setTimeout("onTimer()", 500);<br>
>>> </script><br>
>>> </head><br>
>>> <body><br>
>>> <span id="myText">Hello</span><br>
>>> </body><br>
>>> </html><br>
>>><br>
>>><br>
>>><br>
>>> Thx<br>
>>> Sebastien<br>
>>><br>
>>><br>
>>> Le 28/10/2011 15:11, <a href="mailto:noam.rosenthal@nokia.com">noam.rosenthal@nokia.com</a> a �crit :<br>
>>><br>
>>><br>
>>>> (Replying to list)<br>
>>>> It probably means that you have accelerated compositing turned off.<br>
>>>> Are you building from trunk, or using a release?<br>
>>>> In any case, in the releases accelerated-compositing only works for QGraphicsWebView and needs QWebSettings::AcceleratedCompositingEnabled to be set to true,<br>
>>>> and in trunk it should work both for QWebView and for QGraphicsWebView.<br>
>>>><br>
>>>> No'am<br>
>>>><br>
>>>> On Oct 28, 2011, at 12:39 PM, ext S�bastien Royer wrote:<br>
>>>><br>
>>>><br>
>>>><br>
>>>><br>
>>>>> Hi No'am<br>
>>>>><br>
>>>>> �Thanks for you answer.<br>
>>>>> �Yes I use very light weight web sites that use webkit transforms/CSS.<br>
>>>>> �I have tried the know web site you mention, and I can see the<br>
>>>>> "circle" but with "flat" objects. Does it means TextureMapping is really<br>
>>>>> "acting" ?<br>
>>>>><br>
>>>>> �In fact, in my case, I have a <div> that contains 1 image + 1 text<br>
>>>>> ("Hello").<br>
>>>>> �When I apply a translation (through -webkit-transition) for this div<br>
>>>>> to shift 'smoothly' from one point to an other, I see in QT that the<br>
>>>>> text "Hello" is asked to be drawn for Each frame during the animation<br>
>>>>> (in QPaintEngine::drawTextItem() (text not accelerated yet)).<br>
>>>>> �I believed that TextureMapping would prevent those "non needed"<br>
>>>>> additionnal text drawings since the visual content of the div, which is<br>
>>>>> moved, has definitely not changed... and would have been drawn once in a<br>
>>>>> "texture".<br>
>>>>><br>
>>>>> Thx<br>
>>>>> Sebastien<br>
>>>>><br>
>>>>> NB: I am sorry to answer to your email directly since apparently you did<br>
>>>>> not reply to the mailing list. Sorry.<br>
>>>>><br>
>>>>> Le 27/10/2011 21:16, <a href="mailto:noam.rosenthal@nokia.com">noam.rosenthal@nokia.com</a> a �crit :<br>
>>>>><br>
>>>>><br>
>>>>><br>
>>>>>> Hi Sebastien,<br>
>>>>>><br>
>>>>>> On Oct 27, 2011, at 12:53 PM, ext S�bastien Royer wrote:<br>
>>>>>><br>
>>>>>><br>
>>>>>><br>
>>>>>><br>
>>>>>><br>
>>>>>>> Hi<br>
>>>>>>><br>
>>>>>>> But my first tests show me that TextureMapper is not used yet in my case.<br>
>>>>>>> What is missing ? Or what do you suggest me to do for it to be used in<br>
>>>>>>> this context ?<br>
>>>>>>><br>
>>>>>>><br>
>>>>>>><br>
>>>>>>><br>
>>>>>> As of today in trunk, TextureMapper only gets activated in web content that becomes "composited", meaning code with CSS animations/3D. Does your web content fall under that category?<br>

>>>>>> Have you tried it with one of the standard compositing tests (e.g. <a href="http://webkit.org/blog-files/3d-transforms/poster-circle.html" target="_blank">http://webkit.org/blog-files/3d-transforms/poster-circle.html</a>)?<br>

>>>>>> Opening that web-page above, do you see the "3D" circle, or just flat objects?<br>
>>>>>><br>
>>>>>> No'am<br>
>>>>>><br>
>>>>>><br>
>>>>>><br>
>>>>><br>
>>>><br>
>>> _______________________________________________<br>
>>> webkit-qt mailing list<br>
>>> <a href="mailto:webkit-qt@lists.webkit.org">webkit-qt@lists.webkit.org</a><br>
>>> <a href="http://lists.webkit.org/mailman/listinfo.cgi/webkit-qt" target="_blank">http://lists.webkit.org/mailman/listinfo.cgi/webkit-qt</a><br>
>>><br>
>>><br>
>><br>
> _______________________________________________<br>
> webkit-qt mailing list<br>
> <a href="mailto:webkit-qt@lists.webkit.org">webkit-qt@lists.webkit.org</a><br>
> <a href="http://lists.webkit.org/mailman/listinfo.cgi/webkit-qt" target="_blank">http://lists.webkit.org/mailman/listinfo.cgi/webkit-qt</a><br>
><br>
<br>
</div></div></blockquote></div><br></div>