[webkit-qt] TextureMapper activation and use without OpenGL (with underlying DirectFB backend)

Sébastien Royer sroyer at wyplay.com
Thu Nov 10 03:16:37 PST 2011


Hi

Does anyone have an idea about this ?

Thx in advance
Sebastien

Le 3 novembre 2011 09:53, Sébastien Royer <sroyer at wyplay.com> a écrit :

> Thx No'am.
> That's clear.
>
> Unfortunately, it seems using "translate3d()" is not enough. I still
> have "drawTextItem()" called for each frame.
> Maybe are there some "restrictions" on DOM elements for TextureMapping
> to be active (I don't think so)... or maybe something broken on trunk (I
> don't think so too ;-)...
>
> In WebCore, I can see creation of GraphicsLayerQt class only when
> "Hello" moves (6 instances for a single <span> tag animation). This
> means that compositing is used I guess.
>
> But no TextureMapperQt and BitmapTextureQt instances are created. There
> is something missing to have TextureMapper activated in my situation.
>
> If you have other ideas, yw ;))
>
> Sebastien
>
> Le 02/11/2011 17:46, noam.rosenthal at nokia.com a écrit :
> > Hi Sebastien.
> > -webkit-transform is not enough.
> > You need to do one of the following:
> > 1. use a CSS animation instead of JavaScript.
> > 2. Use translate3d instead of translate.
> >
> >   el.style["WebkitTransform"] = "translate3d(" + (goRight ? "" : "-") +
> "80px, 0, 0)";
> >
> > 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.
> >
> > btw this is not a QtWebKit issue - it's CSS3D best practices. See
> http://www.webkit.org/blog/386/3d-transforms/
> > Also Ariya's blog on the subject (
> http://www.sencha.com/blog/understanding-hardware-acceleration-on-mobile-browsers/)
> can be helpful.
> >
> > No'am
> > ________________________________________
> > From: webkit-qt-bounces at lists.webkit.org [
> webkit-qt-bounces at lists.webkit.org] on behalf of ext Sébastien Royer [
> sroyer at wyplay.com]
> > Sent: Wednesday, November 02, 2011 9:35 AM
> > To: webkit-qt at lists.webkit.org
> > Subject: Re: [webkit-qt] TextureMapper activation and use without OpenGL
> (with underlying DirectFB backend)
> >
> > Thx No'am,
> >
> >     I have tried your suggestion, replacing 'left' changes with
> > "-webkit-transform" use (controlled by Javascript).
> >     The result is the same (lots of "drawTextItem()" calls)
> >     Here is the function which does this stuff. Maybe something wrong :
> >
> > function onTimer()
> > {
> >   goRight = !goRight;
> >   var el = document.getElementById("myText");
> >   el.style["WebkitTransform"] = "translate(" + (goRight ? "" : "-") +
> > "80px, 0)";
> >   setTimeout("onTimer()", 3500);
> > }
> >
> >     I'm sure I'm not so far from solution ;)..
> >
> > Sebastien
> >
> > Le 02/11/2011 15:04, noam.rosenthal at nokia.com a écrit :
> >
> >> Hi Sebastien
> >> Accelerated animations only work on -webkit-transform and opacity
> properties, not on "left", "size" or anything else.
> >> You should be able to achieve your animation with "-webkit-transform",
> and that should not give you the excess of drawTextItem calls.
> >> No'am
> >>
> >> On Nov 2, 2011, at 2:35 AM, ext Sébastien Royer wrote:
> >>
> >>
> >>
> >>> Hi,
> >>>
> >>>    I only used QWebView. In that case I saw just flat objects (in the
> >>> "circle" example:
> >>> http://webkit.org/blog-files/3d-transforms/poster-circle.html)
> >>>    When I use a QGraphicsWebView, in that case, I can see 3D objects
> now.
> >>>    So, in this new configuration, I retried my very simple web site
> >>> which only contains a text moving from left to right periodically, and
> >>> using CSS3 "left" property animation (declaring it as
> >>> "-webkit-transition:all 1s ease-in-out;").
> >>>    In that precise case, which normally must have texturemapping being
> >>> activated (As I understand), I still have the graphics method
> >>> "QPaintEngine::drawTextItem()" being called for every frame during
> >>> animation, and "not only once" at first draw need.
> >>>    (Even not needed, and to answer your question, I checked that
> >>> QWebSettings::AcceleratedCompositingEnabled is really set to true)
> >>>
> >>>    Do you agree that this method "QPaintEngine::drawTextItem()" has not
> >>> to be called every frame to redraw my "hello" text during animation ?
> >>>
> >>>    Here is the content of my page:
> >>>
> >>> <html>
> >>> <head>
> >>> <style type="text/css">
> >>> #myText
> >>> {
> >>>        top: 100px;
> >>>        left: 100px;
> >>>        position: absolute;
> >>>        -webkit-transition:all 1s ease-in-out;
> >>> }
> >>> </style>
> >>>
> >>> <script language="javascript">
> >>> var goRight = false;
> >>> function onTimer()
> >>> {
> >>>  goRight = !goRight;
> >>>  document.getElementById("myText").style.left = goRight ? '300px' :
> >>> '100px';
> >>>  setTimeout("onTimer()", 3500);
> >>> }
> >>>
> >>> setTimeout("onTimer()", 500);
> >>> </script>
> >>> </head>
> >>> <body>
> >>> <span id="myText">Hello</span>
> >>> </body>
> >>> </html>
> >>>
> >>>
> >>>
> >>> Thx
> >>> Sebastien
> >>>
> >>>
> >>> Le 28/10/2011 15:11, noam.rosenthal at nokia.com a écrit :
> >>>
> >>>
> >>>> (Replying to list)
> >>>> It probably means that you have accelerated compositing turned off.
> >>>> Are you building from trunk, or using a release?
> >>>> In any case, in the releases accelerated-compositing only works for
> QGraphicsWebView and needs QWebSettings::AcceleratedCompositingEnabled to
> be set to true,
> >>>> and in trunk it should work both for QWebView and for
> QGraphicsWebView.
> >>>>
> >>>> No'am
> >>>>
> >>>> On Oct 28, 2011, at 12:39 PM, ext Sébastien Royer wrote:
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>> Hi No'am
> >>>>>
> >>>>>  Thanks for you answer.
> >>>>>  Yes I use very light weight web sites that use webkit
> transforms/CSS.
> >>>>>  I have tried the know web site you mention, and I can see the
> >>>>> "circle" but with "flat" objects. Does it means TextureMapping is
> really
> >>>>> "acting" ?
> >>>>>
> >>>>>  In fact, in my case, I have a <div> that contains 1 image + 1 text
> >>>>> ("Hello").
> >>>>>  When I apply a translation (through -webkit-transition) for this div
> >>>>> to shift 'smoothly' from one point to an other, I see in QT that the
> >>>>> text "Hello" is asked to be drawn for Each frame during the animation
> >>>>> (in QPaintEngine::drawTextItem() (text not accelerated yet)).
> >>>>>  I believed that TextureMapping would prevent those "non needed"
> >>>>> additionnal text drawings since the visual content of the div, which
> is
> >>>>> moved, has definitely not changed... and would have been drawn once
> in a
> >>>>> "texture".
> >>>>>
> >>>>> Thx
> >>>>> Sebastien
> >>>>>
> >>>>> NB: I am sorry to answer to your email directly since apparently you
> did
> >>>>> not reply to the mailing list. Sorry.
> >>>>>
> >>>>> Le 27/10/2011 21:16, noam.rosenthal at nokia.com a écrit :
> >>>>>
> >>>>>
> >>>>>
> >>>>>> Hi Sebastien,
> >>>>>>
> >>>>>> On Oct 27, 2011, at 12:53 PM, ext Sébastien Royer wrote:
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>> Hi
> >>>>>>>
> >>>>>>> But my first tests show me that TextureMapper is not used yet in
> my case.
> >>>>>>> What is missing ? Or what do you suggest me to do for it to be
> used in
> >>>>>>> this context ?
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>> 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?
> >>>>>> Have you tried it with one of the standard compositing tests (e.g.
> http://webkit.org/blog-files/3d-transforms/poster-circle.html)?
> >>>>>> Opening that web-page above, do you see the "3D" circle, or just
> flat objects?
> >>>>>>
> >>>>>> No'am
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>> _______________________________________________
> >>> webkit-qt mailing list
> >>> webkit-qt at lists.webkit.org
> >>> http://lists.webkit.org/mailman/listinfo.cgi/webkit-qt
> >>>
> >>>
> >>
> > _______________________________________________
> > webkit-qt mailing list
> > webkit-qt at lists.webkit.org
> > http://lists.webkit.org/mailman/listinfo.cgi/webkit-qt
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-qt/attachments/20111110/6a92bd0a/attachment.html>


More information about the webkit-qt mailing list