Re: Canvas shortcomings

Lauris Kaplinski <lauris ximian com> writes:

> On 17 Jun 2001 17:43:00 +0100, Gustavo João Alves Marques Carneiro wrote:
> > On 16 Jun 2001, Lauris Kaplinski wrote:
> > > Unreachable goal IMHO :(
> > > I have not yet find a way to make a graphic API, that:
> > > 1) has reasonable speed and quality
> > > 2) can be used for both interactive and output graphics
> > > 3) has single, consistent API
> > 
> >   It can. For example, I think libplot has reasonable speed and quality
> > (except for bad font quality -- X's fault). Even if it the speed isn't so
> > great, it can be used interactively, with some adjustments.
> AFAIK it is still vector-based API. To do decent widget rendering
> one has IMHO to have acess to each pixel. In general you end with
> 2 almost separated API classes, which are only loosely tied under
> some ubrella.
> AGAIN - you can only create preview-like graphs, using solely
> vector API. For interactive work one has to take into account
> visual ergonomics, and descend to single pixel level.

 a) We are almost to the point where we could do all widget rendering
    with pixmaps. Pixmaps fit perfectly into a vector-based API. 

 b) You can control individual pixels with a vector based API.
    It just expensive to draw all those little stair-steppy edges ;-)

    In truth, GTK+ only uses three types of edges - vertical, 
    horizontal and 45%. Anything else looks like junk.
    (Like the old default look for spinbutton arrows...)

    Vertical and horizontal edges are no problem for vector APIs;
    You could argue about whether 45% degree look better or worse
    anti-aliased, but its about comparable.

 c) Higher the resolution, less it matters.

 d) Java2D does allow anti-aliased and not-anti-aliased rendering,
    and the API for this didn't strike me as too ugly. 

My general feeling is, that I would have no problem moving GTK+ over
to an only anti-aliased rendering model and keeping it looking as
crisp as ever. But allowing non-AA rendering as well isn't that hard


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