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

RE: [XaraXtreme-dev] GDraw bitmap width limit

Alex, did you fix this, or do I need to make some changes to CDraw?

This comes down to an accuracy problem. CDraw uses fixed point maths for
polygon rendering with coordinates stored in a 32 bit value. This
doesn't give enough accuracy with large bitmaps. (I've just seen the
same problem in Ghostscript: using very large bitmaps causes long lines
to end a few pixels out from where they should). It may be that I need
to store coordinates using doubles instead of fixed point, but obviously
this will require a fair amount of rewriting of code, but this would
allow a higher limit.

Also the fixed maximum size of tables allows me to write faster code. I
don't need to keep pointers to tables such as scanline buffers and
scanline indexes. Instead I can just index off of the "this" pointer
hence requiring less registers (a major issue with GDraw). This will be
less of an issue with the Intel's new 64 bit processors with their 16
general registers.


-----Original Message-----
From: owner-dev@xxxxxxxxxxxxxxxx [mailto:owner-dev@xxxxxxxxxxxxxxxx] On
Behalf Of Alex Bligh
Sent: 26 June 2006 18:32
To: dev@xxxxxxxxxxxxxx
Cc: Alex Bligh
Subject: RE: [XaraXtreme-dev] GDraw bitmap width limit

--On 26 June 2006 18:26 +0100 Gerry Iles <GerryI@xxxxxxxx> wrote:

> All we should have to do is to
> define MAXBITMAPWIDTH to 16 when building CDraw and we should have the
> same limits as in Xtreme.

OK - that's how Xtreme compiles is it? If so, I will change the CDraw
Makefile & rebuild. I just wanted to check it was known to be safe