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

Re: [XaraXtreme-dev] Cairo Port



Hi,

again, thanks for replying. Didn't expect such immediate feedback since the list had been mute for a month or so :-)

Alex Bligh schrieb:


--On 07 May 2007 22:08 +0200 Jonas Diemer <diemer@xxxxxx> wrote:


1. Carl created stubs for function calls to CDraw functions, which are to
be replaced by Cairo functions. Wouldn't it be easier to derive a new
GDrawContext instead? This has been done originally with GDrawAsm as a
C++ wrapper for the assemblerfunctions in GDRAW.DLL. I think this would
at least save passing around contexts, and would be more object oriented,
too.

Yes and no. Yes, in that creating a derived context class is desirable,
so one can do both from the same binary, and no in that you will need
to do some (possibly conditional) stubbing out in order to avoid unresolved
references when linking without CDraw.
True unless I replace GDrawAsm, which I was originally thinking about. But you are right, it might be nice to switch at run time (for testing etc.). I might as well continue the way Carl started for now, but then there's this context passing which I don't fully understand yet.

What is actually passed in the GCONTEXT struct? Esp., what's in the Data field?

Should Valid actually be set toC90FDAA2 as it says in gconsts.h:238?

You will also, I think, need to look carefully at whether you need to
derive an alternate render region class from GRenderRegion; ideally you
won't (as you'll have to change all sorts of instances where these are
created); perhaps you can use the render region capabilities system
(RRCAPS).

Hmm, haven't thought about those details yet. This is what Carl was refering to where GDRAW etc. paint to, right?

But using stubs or deriving a GDrawContext should be irelevant for this matter, right?

I possess complementary skills to Carl, in that I know very little about
Cairo, but a little more about Xara internals than most, though the
Xara guys know more, obviously.

Great, then I have two experts I can refer to with problems :-)

Jonas.