Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 1868 → Rev 1869

/trunk/uspace/fb/fb.c
453,9 → 453,11
* @param yres Screen height in pixels
* @param bpp Bits per pixel (8, 16, 24, 32)
* @param scan Bytes per one scanline
* @param align Alignment for 24bpp mode.
*
*/
static void screen_init(void *addr, unsigned int xres, unsigned int yres, unsigned int bpp, unsigned int scan)
static void
screen_init(void *addr, unsigned int xres, unsigned int yres, unsigned int bpp, unsigned int scan, int align)
{
switch (bpp) {
case 8:
471,7 → 473,10
case 24:
screen.rgb2scr = rgb_3byte;
screen.scr2rgb = byte3_rgb;
screen.pixelbytes = 3;
if (!align)
screen.pixelbytes = 3;
else
screen.pixelbytes = 4;
break;
case 32:
screen.rgb2scr = rgb_4byte;
1216,6 → 1221,7
unsigned int fb_width;
unsigned int fb_height;
unsigned int fb_bpp;
unsigned int fb_bpp_align;
unsigned int fb_scanline;
void *fb_addr;
size_t asz;
1226,6 → 1232,7
fb_width=sysinfo_value("fb.width");
fb_height=sysinfo_value("fb.height");
fb_bpp=sysinfo_value("fb.bpp");
fb_bpp_align=sysinfo_value("fb.bpp-align");
fb_scanline=sysinfo_value("fb.scanline");
 
asz = fb_scanline*fb_height;
1234,7 → 1241,7
map_physmem(fb_ph_addr, fb_addr, ALIGN_UP(asz,PAGE_SIZE) >>PAGE_WIDTH,
AS_AREA_READ | AS_AREA_WRITE | AS_AREA_CACHEABLE);
screen_init(fb_addr, fb_width, fb_height, fb_bpp, fb_scanline);
screen_init(fb_addr, fb_width, fb_height, fb_bpp, fb_scanline, fb_bpp_align);
 
return 0;
}