[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Look and Feel
From: |
Nicolas Roard |
Subject: |
Re: Look and Feel |
Date: |
Mon, 14 Feb 2005 14:23:34 +0000 |
Le 14 févr. 05, à 13:29, Jesse Ross a écrit :
Camaelon will have extra overhead -- but it's just because it uses
pixmap instead of drawing things "by hand" using NSBezierPath et al.
In other words, if you were to implements a new "native" look using
pixmaps it will be as slow as camaelon.
...
As I said, the actual architecture is very close to that with the
GSDrawFunctions class. Camaelon extends that class and modify widgets
so they use it, and thoses modifications will hopefully rolled in
GNUstep in the future. So you'll have a clean separation of the way
widgets looks -- all the drawing will be in GSDrawFunctions.
So, the interface is currently created using vector paths, if I'm
reading
this correctly?
Yes. All the drawings on GNUstep are vectoriel. Don't forget that on
NeXT there was DisplayPostScript ! GNUstep ditched DPS because the
implementation we had was buggy and slow, but the model is the same --
that's why you don't have antialiasing using the xlib backend for
example, while you have it for free in the art backend...
How difficult would it be to create a new UI using vectors
instead then?
It will be more difficult, because you will need to *code* it. Using
pixmaps is much easier.
If/when we have a good and *fast* NSSVGImageRep (for example) or even a
NSEPSImageRep or NSPDFImageRep, we could use SVG, EPS or PDF instead of
images...
It's probably already doable (ViewPDF provides it afaik) but it's also
probably very slow..
Would that have to happen directly in the -gui code, or is
there a way to make a theming engine that uses vectors instead?
er... like I said a few times, there's not really a difference with
something that is in the -gui code, and something that is in a gui
theme bundle...
Objective-C is a runtime-based language; as such the messages are sent
and mapped at runtime. That's why you can poseAs: a class -- ie, say to
the runtime, "here is my new shiny class A, make all the call to that
other class B automatically redirected to my class A".
A gui "theme bundle" is a code loaded at runtime by gnustep; in general
(well, the one that exists, Camaelon and WildMenu..) just categorize
(== replace some methods of some classes) or poseAs (==replace some
class) existing gui code.
Anything that's doable in gui is doable in a theme bundle..
That would
be much faster, correct, since we're not relying on pixmaps?
actually, yes and no. Using NSBezierPath or other PS operators to
create a new look is probably faster than compositing a lot of images.
But it's more work, and on the other hand, images allow you to do some
good caching, so the speed isn't too much impacted, and images let you
create more detailed look. Using something a NSPDFImageRep or other
"vectoriel" format would probably not be very interesting, because you
would need to rasterize the PDF before displaying it. But well it could
be fun to test.
--
Nicolas Roard
"Any sufficiently advanced technology is indistinguishable from magic."
-Arthur C. Clarke
Re: Look and Feel, Gregory John Casamento, 2005/02/10
Re: Look and Feel, Charles Philip Chan, 2005/02/14
Message not available
Re: Look and Feel, Nicolas Roard, 2005/02/14
- Re: Look and Feel, Jesse Ross, 2005/02/14
- Re: Look and Feel,
Nicolas Roard <=
- Re: Look and Feel, M. Uli Kusterer, 2005/02/14
- Re: Look and Feel, Markus Hitter, 2005/02/15
- Re: Look and Feel, Jesse Ross, 2005/02/15
- Re: Look and Feel, Banlu Kemiyatorn, 2005/02/15
- Re: Look and Feel, M. Uli Kusterer, 2005/02/15
- Re: Look and Feel, Randi Joseph, 2005/02/15
- Re: Look and Feel, Gregory John Casamento, 2005/02/16
- Re: Look and Feel, stefan, 2005/02/16
- Re: Look and Feel, Gregory John Casamento, 2005/02/16
- Re: Look and Feel, stefan, 2005/02/16