nanogui: attaching to the engine layer


Previous by date: 31 Aug 2000 02:08:33 -0000 Re: attaching to the engine layer, Scott Scriven
Next by date: 31 Aug 2000 02:08:33 -0000 Re: Button problem., debit
Previous in thread: 31 Aug 2000 02:08:33 -0000 Re: attaching to the engine layer, Scott Scriven
Next in thread:

Subject: Re: attaching to the engine layer
From: "Greg Haerr" ####@####.####
Date: 31 Aug 2000 02:08:33 -0000
Message-Id: <039501c012f0$704699e0$15320cd0@gregh>

: Okay, this seems to work.  It doesn't improve speed, though.
: Using GdDrawImage(), the screen would draw slowly and visibly.
: What now happens is that the screen stays black for ~20 seconds,
: and then the image shows up instantly.

Hmm.  Well, this would be very fast on a framebuffer
display, faster than GdDrawImage().  Except that the X11
screen driver does some black magic [read slow] to 
make X11 look like a framebuffer to Microwindows.  So
the X11 driver uses XGetImage and XPutImage.  Any
way you can test this directly on framebuffer?  The
X11 driver keeps an in-core memory-framebuffer copy
of everything and then uses XPutPixel (slow...) and
then XPutImage to get it back to the server...  So
the blit enhancement doesn't end up being quicker.
This could be remedied by a X11 driver rewrite, but
noone has volunteered yet.


: 
: I've probably just missed something obvious.  (I've been just
: guessing what needs to be done by browsing mw's source...)
: 
: What I've got, condensed, is something like this:
: 
: GdGetScreenInfo(screen, &info);
: image = screen->AllocateMemGC(screen);
: screen->MapMemGC(image, info.cols, info.rows, 1, 32, info.cols,
:          info.cols * info.rows * 4, bitmap);
: image->flags = PSF_MEMORY | PSF_ADDRMALLOC;
: bitmap = malloc(4 * info.rows * info.cols);
: image->addr = (void *)bitmap;
: fill_bitmap_with_pretty_graphics();
: GdBlit(screen, 0, 0, image->xres, image->yres,
:        image,  0, 0, MWROP_SRCCOPY);
: 

Good job on the above!


: 
: If it's relevant, I'm on a powerpc and compiled MW to use X11.

BTW, if you're using Yellow Dog Linux, I'd be interested
in any makefile changes required to get Microwindows
to run on a framebuffer version...

Regards,

Greg





: 
: 
: --
: Terra Soft Solutions, Inc.
:  http://www.terrasoftsolutions.com/
: 
:  Yellow Dog Linux
:  "The Ultimate Companion for a Dedicated Server"
:  http://www.yellowdoglinux.com/
: 
:  Black Lab Linux
:  Advanced Workstations, Parallel, and Embedded Solutions
:  http://www.blacklablinux.com/ 
: 
: 
: ---------------------------------------------------------------------
: To unsubscribe, e-mail: ####@####.####
: For additional commands, e-mail: ####@####.####
: 
: 


Previous by date: 31 Aug 2000 02:08:33 -0000 Re: attaching to the engine layer, Scott Scriven
Next by date: 31 Aug 2000 02:08:33 -0000 Re: Button problem., debit
Previous in thread: 31 Aug 2000 02:08:33 -0000 Re: attaching to the engine layer, Scott Scriven
Next in thread:


Powered by ezmlm-browse 0.20.