nanogui: Screen driver development questions


Previous by date: 28 May 2011 18:14:08 -0000 Screen driver development questions, Georg Potthast
Next by date: 28 May 2011 18:14:08 -0000 Re: Screen driver development questions, Georg Potthast
Previous in thread: 28 May 2011 18:14:08 -0000 Screen driver development questions, Georg Potthast
Next in thread: 28 May 2011 18:14:08 -0000 Re: Screen driver development questions, Georg Potthast

Subject: Re: [nanogui] Screen driver development questions
From: "Greg Haerr" ####@####.####
Date: 28 May 2011 18:14:08 -0000
Message-Id: <071701cc1d63$0643b490$6964a8c0@winXP>

Georg -

Which version of Microwindows are you wanting to support?  The blit
architecture is entirely rewritten after the 0.92 version; thus your driver
will be completely different depending on whether you're running the
snapshot or 0.92.  In 0.92, you'll write a blit entry point that will move
bits from offscreen memory to the display, as well as handle many other
blit cases, such as copying memory to memory, and screen-to-screen
data.  In the snapshot, you will only have to implement the Update
entry point, which copies memory from offscreen to display, as
all the memory blits are handled internally.  I will answer your questions
below once I know the version you're running.

Regards,

Greg




I want to extend the scr_djgr screen driver with blit support. In general I 
understand that there shall be an area of offscreen memory where Nano-X will 
write the screen data to. When done it will either call xxxx_blit() in 
version 0.92 to write to the screen or xxxx_update() with the 
0.93pre-snapshot version.




Where do I define the offscreen memory now?




In the open function there is a psd->addr pointer. The scr_X11 driver makes 
a malloc to assign memory to psd->addr in the open function. However, the 
scr_svga driver sets this to null.



Both drivers also use gen_allocatememgc() to allocate a second PSD. The 
scr_svga driver apparently does not need gen_mapmemgc() or gen_freememgc() 
though to support blitting.




The function xxxx_blit() uses a source psd and a destination psd. The 
xxxx_update() function apparently just gets the source psd and then writes 
that data to the screen as the final destination.



I guess somehow I have to define the offscreen memory for the source psd so 
I can blit the data to the screen i.e. the destination. Is that done with 
gen_allocatememgc() and do I have to set psd->addr to null in the open 
function then? Is gen_mapmemgc() required or can I drop that like the 
scr_svga driver? Is all this done differently with version 0.92 versus the 
snapshot version?




Georg


Previous by date: 28 May 2011 18:14:08 -0000 Screen driver development questions, Georg Potthast
Next by date: 28 May 2011 18:14:08 -0000 Re: Screen driver development questions, Georg Potthast
Previous in thread: 28 May 2011 18:14:08 -0000 Screen driver development questions, Georg Potthast
Next in thread: 28 May 2011 18:14:08 -0000 Re: Screen driver development questions, Georg Potthast


Powered by ezmlm-browse 0.20.