[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: plans for a free, OpenGL-based equivalent to Direct2D ?
From:       Thiago Macieira <thiago () kde ! org>
Date:       2010-12-14 7:42:06
Message-ID: 201012140842.07236.thiago () kde ! org
[Download RAW message or body]

[Attachment #2 (multipart/signed)]


On Tuesday, 14 de December de 2010 07:27:47 Benoit Jacob wrote:
> Hi,
> 
> I would like to know if the KDE or Qt community has plans for a free
> OpenGL-based equivalent to Direct2D (see explanation below)? And if
> there is a chance that I could get you interested in that. We at
> Mozilla are very interested in that and are considering the
> possibility of launching such a project:
> 
> https://wiki.mozilla.org/Gecko:2DGraphicsThoughts
> 
> It would be interesting for us to know your opinions on the subject.

Have you looked into OpenVG? That's a 2D vector HW-accelerated API.

Qt already has support for OpenVG.

> First of all, by "2D", I mean "advanced 2D", with text etc. So please
> don't close this thread by saying that 2D is a special case of 3D
> hence OpenGL is all I need ;-)

Yet it is... Qt has no interest in anything that is not OpenGL ES 2.0 (or 
compatible with it).

> Let's review the possibilities we currently have for
> hardware-accelerated 2D rendering:
> * XRender/OpenGL back-ends to QPainter/Cairo.
>  -> problem: the Cairo API is in our experience inherently unsuitable
> for hardware acceleration and my impression is that the same applies
> to QPainter. The result is disappointing acceleration factors. (Stop
> me if I'm wrong).

No, you're entirely right. XRender was a good idea, but it has its 
limitations. Moreover, QPainter bypasses it for most things, deciding to use 
the raster engine instead where XRender is known not to accelerate properly.

In any case, both APIs are imperative, which is the largest problem.

> * scene-graph APIs. For example, I saw planetkde posts about a future
> scene graph API in Qt. Here, I'm talking about the *advanced* use
> cases where you want more control than a scene graph API can provide.

The QML Scene Graph is an OpenGL ES 2.0-based declarative syntax. It will 
support software raster, but it's meant to be run on OpenGL.

> Microsoft has an answer to this problem: Direct2D. If we want to cover
> advanced 2D needs with hardware acceleration on non-Windows platforms,
> we need something like Direct2D, but based on OpenGL. For example, if
> you ever want to get a world-class fully Qt-based Web browser *with*
> GPU-accelerated rendering, you'll need something like that. Ditto for
> compex enough 2D games (a scene graph API can only be enough for
> simple games), for Calligra...

Can you explain how OpenGL ES 2.0 cannot achieve the same results? What's 
missing from the OpenGL API that Direct2D provides? What are the HW-
accelerated primitives we should get access to in order to get better 
performance?

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
  Senior Product Manager - Nokia, Qt Development Frameworks
      PGP/GPG: 0x6EF45358; fingerprint:
      E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358

["signature.asc" (application/pgp-signature)]

>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic