[Xr] small adjustments
Bill Spitzak
spitzak at d2.com
Tue Jul 8 10:14:11 PDT 2003
On Tuesday 08 July 2003 06:55 am, Carl Worth wrote:
> On Jul 7, Bill Spitzak wrote:
> > I have not been sucessful in getting Xr to compile without Xrender.
>
> The work has not yet been done to make this possible. That work is
> near the top of my list of tasks to do for Xr. Of course,
> contributions would be welcome.
Sorry about the complaints. I was trying to be constructive but eventually
got frustrated. I was really hoping to get it to compile and link.
In any case the biggest impediment I see is that the Xr and Xc headers
themselves depend on symbols defined by Xrender header files.
Some of this is a problem with Xrender itself:
Primarily the fact that it uses things like "XFixed" and "XDouble" rather
than built-in types. This means it is impossible to write an efficient
implementation, unless you assumme these are the same as int/double (thus
defeating the purpose of the typedef), or include the Xrender header file
(thus pushing the whole problem of conversion up to the program calling Xr
and solving nothing, and also making Xr non-portable). I strongly recommend
that such typedefs be removed from all new interfaces to X or other system
services, they are actually counter-productive.
The other bad part about Xrender is that it uses the "typedef struct _Foo
{...} Foo;" convention. This makes it impossible to declare functions that
take pointers to these structures without including Xrender.h. All modern C
compilers accept "struct Foo {...};" and thus another header file can just
say "struct Foo;" and make functions that take pointers. However in almost
all cases I would replace the use of such structures with either individual
x,y arguments or with arrays of the correct size of built-in types. Although
not "type safe" such interfaces are much more convienent for efficient glue
to another drawing library.
Fortunately Xrender has learned not to typedef-hide pointers. I am grateful
for that.
--
,~,~,~,~ ~ ~ ~ ~
/\_ _|_========___ Bill Spitzak
~~~/\/\\~~~~~~\____________/~~~~~~~~ spitzak at d2.com
More information about the cairo
mailing list