vga_imageblt - copy a rectangular pixmap from system memory to video memory
void vga_imageblt(void *srcaddr, int destaddr,
int w, int h, int pitch);
Write a rectangular pixmap from system memory to video memory. destaddr
is an offset into video memory (up to 2M). The pitch
is the logical
width of the screen. Height h
is in Pixels, Width w
It fills the given box with the data in memory area *srcaddr
. The memory
buffer must contain the pixels in the same representation as used in the vga
memory, starting at the top left corner, from left to right, and then, line by
line, from up to down, without any gaps and interline spaces.
This is an old style function to access the accelerator of an SVGA card. Before
calling it you should check for availability of the function in the mode you
use with vga_getmodeinfo
For new applications you might be better of trying to use vga_accel
The old vga_bitblt
(3), and vga_imageblt
(3) interface was
originally designed for the Cirrus chipsets. Then Mach32 added support too but
has problems to resemble the unintuitive Cirrus interface. Then these new
ideas were reinjected and vga_accel
(3) was designed. Now Cirrus and
Chips & Technologies chipset give limited vga_accel
(3) support but
no longer this old style support. Mach32 is left to use the unintuitive Cirrus
interface. At some future point the functions might be added for Mach32 too
(which should be rather simple), so new applications should use the newer and
probably more efficient interface.
It would be fatal if the accelerator would be used while the console is switched
away. You should use vga_lockvc
(3) and vga_unlockvc
(3) to avoid
this, although good implementations of the accelerator functions (like Mach32)
will already ensure that.
(6) demo utilizes the old style accelerator functions.
This manual page was edited by Michael Weller
<firstname.lastname@example.org>. The exact source of the referenced
function as well as of the original documentation is unknown.
It is very likely that both are at least to some extent are due to Harm
Occasionally this might be wrong. I hereby asked to be excused by the original
author and will happily accept any additions or corrections to this first
version of the svgalib manual.