nanogui: Screen driver development questions
Subject:
Screen driver development questions
From:
"Georg Potthast" ####@####.####
Date:
28 May 2011 12:05:36 -0000
Message-Id: <001801cc1d2f$8d1e66b0$6400a8c0@SCHREIBTISCHGP>
Hi 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