[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-devel
Subject: GNOME graphics and KDE
From: Dirk_Schönberger <schoenberger () signsoft ! com>
Date: 1999-05-31 7:36:54
[Download RAW message or body]
Recently the GNOME project released some White Papers,
including something about their graphics architecture.
There are two concepts which I consider interesting,
especially in respect to a availability for Qt/KDE, too.
The first is their panel architecture. I don't fully
understand their concept, but I think, a similar
functionality is available in Qt/KDE in form of the
QScrollView, QwSpriteField and perhaps in the forthcoming
KIllustrator. But these classes are less exposed to any
potential developr, where in GNOME it is considered a core
component.
The second is a high level 2D imaging API, which matches the
features of Adobe Postscript, PDF, Bravo, the Java 2D Graphics
API (and perhaps the XML based Scalable Vector Graphics
as proposed by the W3-organization). In GNOME (or at least in
their white papers) this functionality is carried out
by their library libArt).
As far as I see, there is no such functionality to be found
in QT/KDE.
Key components of such a high level API I think of the follow:
- floating point based coordinated instead of integer for greater
flexibility
- a world coordinate system with transformation faciliies (rotate,
scale, translate, shear, arbitrary transformation by directly
accessing the transformation matrix)
- use of arbitrarily complex vector graphics paths, which are
consistently used for filled areas, the outlining of areas
(stroke) and for clipping.
- paths can consit of line segments, complex curve segments
(B-splines, Bezier-curves) and arc segments. The latter can be
implemented as curves.
- paths can consist of several sub-path, there is calculated
a resulting path accorduing to some rules (winding rule, even-odd
rule). Especially the winding rule allows for graphical elements,
where parts are left out (e.g. a donut, an element of two
circular paths, where the inner part is cut out, allowing
other graphical elements to shine throught the donut).
- paths can be filled, either by a simnple colour, but also by an
extension mechanisms (pattern, IIRC), which allows for
arbitrary filled areas.
- paths can be outlined or stroked, the used lines can have arbitrary
width (even different height and width, because they are subject
to coordinate transformations, e.g. scaling), The lines have other
attributes, such as linecaps and miterlimits, which affect the
way how the transistion of the segments of a path is handled).
Extension to this are e.g. an additional alpha channel, which allows for
paths which are partially trasparent.
Discussion welcome!
Dirk (schoenberger@signsoft.com)
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic