discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: User experience


From: Ivan Vučica
Subject: Re: User experience
Date: Mon, 23 Dec 2013 15:33:12 +0000

Opal uses Cairo, so it uses whatever acceleration Cairo uses (if any).

GNUstep's Core Animation implementation that I worked on uses OpenGL. It's suboptimal right now, but Core Animation is the right way to approach shadows, blurring et al., as you can use shaders to deal with that.

Accelerating drawing 2D primitives itself is, as far as I understand, abandoned by Apple. I may be wrong. There was an implementation of CG that appeared in 10.5 (I think) that tried to use GL; it was faster in edge cases, but not generally.

Again, I may be wrong, but I firmly believe that you want to use Core Animation if you do animations, compositing, etc., and that it makes no sense to try to accelerate drawing 2D primitives using 3D cards.

If you want to contribute to Core Animation, get in touch with me; things that most sorely need to be worked on are:
- scheduling frames for updates (right now it's a game-style infinite loop which draws every frame as fast as the GPU can handle it)
- marking 'non-content contents' as dirty, and only updating when the contents are dirty; for the lack of better term right now, by 'non-content contents' I mean a 'screenshot' that needs to be taken of the entire hierarchy to support shadows, filters and perspective-transformed layers. 'Content contents' on the other hand would be the CGImage or CGContext assigned to the CALayer
- shadow GLSL shader needs to be properly thought out and implemented, esp. the blurring
- we need a masking GLSL shader
- CATransition -- a CAAnimation-style object going from one 'contents' texture to another -- is completely unsupported right now
- dynamic properties need to be generated -- the ones defined with @interface and not-really-synthesized by @dynamic ; this will clean up the CALayer code 'a bit' (by which I mean, a lot)
- Core Image-type filters are cute, let's throw that in

This is approximately in decreasing order of importance (@dynamic thing is not important at all, but will make code implementing setters and getters a lot shorter).

On Sun Dec 22 2013 at 6:10:52 PM, Riccardo Canalicchio <riccardo.canalicchio@gmail.com> wrote:
Thanks David for your response,
yes UIKit without Core Animation does not make sense at all...

So Opal accelerate only the compositing? it uses cairo on the cpu and then copy the surface on a texture right?

anyway yes I would like to help!

reply via email to

[Prev in Thread] Current Thread [Next in Thread]