nanogui: Re: pixmaps and XOR not working]


Previous by date: 13 May 2010 03:24:46 -0000 Re: pixmaps and XOR not working] - NXLIB, Greg Haerr
Next by date: 13 May 2010 03:24:46 -0000 Re: pixmaps and XOR not working], Greg Haerr
Previous in thread: 13 May 2010 03:24:46 -0000 Re: pixmaps and XOR not working], Greg Haerr
Next in thread: 13 May 2010 03:24:46 -0000 Re: pixmaps and XOR not working], Greg Haerr

Subject: Re: [nanogui] pixmaps and XOR not working]
From: Jim Ham ####@####.####
Date: 13 May 2010 03:24:46 -0000
Message-Id: <4BEB7109.9090402@porcine.com>

Greg,

I sent the following last week, but from a different email account. 
Perhaps the list server only accepts mail from the subscribing account.

Not much has changes as far as nano-X is concerned. I'm still running on 
top of X with an up-to-date Debian squeeze. (testing). Eventually I will 
be cross-compiling to an ARM target.

I'll know more when I have digested your latest email.

Regards,

Jim Ham

Sent earlier.....
> > So far I have
> > compiled the sources from the repository and linked in libNX11 and
> > libnano-X on my development machine. All seems to work _except_ a sprite
> > that is supposed to move around the screen. This sprite is a pixmap that
> > is defined once, then XORed over the background to move it around.
> > (XORed once to make it appear, then XORed in the same place to make it
> > disappear, repeat in another place.) This doesn't seem to work at all. I
> > get a horizontal black line the width of the pixmap at the top of where
> > the pixmap should appear. That is all.
>
> It could be that the screen driver isn't implementing XOR for this
> operation.  What GrXXX function are you using to draw the sprite,
> and what bpp, truecolor/palette etc are you running?  We need to
> determine the screen driver and entry point.

Here's the chunk of code that moves the sprite. The whole app runs
unmodified with nano-X using libNX11 (so far).
         (void)XSetFunction( dpy, gc, GXxor ) ;       // set up XOR mode
         (void)XCopyArea( dpy, *oldpxm, win, gc, 0, 0, 29, 37, \
             Chart.OldPosition, DIAMONDYSTART+BORDER ) ; // remove 
existing sprite
         (void)XCopyArea( dpy, *newpxm, win, gc, 0, 0, 29, 37, \
             NewPosition, DIAMONDYSTART+BORDER ) ; // establish new sprite
         (void)XSetFunction( dpy, gc, GXcopy ) ;   // go back to default 
copy mode

I simplified the original description somewhat - there are actually
several sprites. oldpxm and newpxm in the above code just make sure that
we erase the one already on the screen, then put up the new one. This
all works with (dare I say) real X.

I've compiled microwindows with config.X11 and with the following changes:
...
# define MWPF_TRUECOLOR888  /* pixel is packed 24 bits 8/8/8 truecolor*/
...
SCREEN_PIXTYPE           = MWPF_TRUECOLOR888# X Window screen, mouse and 
kbd drivers
...
SCREEN_WIDTH             = 320
SCREEN_HEIGHT            = 240
SCREEN_DEPTH             = 8
...

Regards,

Jim Ham





No virus found in this incoming message.
Checked by AVG - www.avg.com 
Version: 9.0.814 / Virus Database: 271.1.1/2852 - Release Date: 05/03/10 11:27:00


Previous by date: 13 May 2010 03:24:46 -0000 Re: pixmaps and XOR not working] - NXLIB, Greg Haerr
Next by date: 13 May 2010 03:24:46 -0000 Re: pixmaps and XOR not working], Greg Haerr
Previous in thread: 13 May 2010 03:24:46 -0000 Re: pixmaps and XOR not working], Greg Haerr
Next in thread: 13 May 2010 03:24:46 -0000 Re: pixmaps and XOR not working], Greg Haerr


Powered by ezmlm-browse 0.20.