doubt in frame buffer using with RHEL 6.0
Hi All,
I'm using an i5 core with builtin graphics accelerator GMA-HD running on an RHEL 6.0 OS. I needed to test the graphics acceleration capabilities of the graphics driver(which I found out was i915 in my PC). I used the following code(which I got from the internet ) for writing to framebuffer. /************************************************** *****/ #include <unistd.h> #include <stdio.h> #include <fcntl.h> #include <linux/fb.h> #include <sys/mman.h> int main() { int fbfd = 0; struct fb_var_screeninfo vinfo; struct fb_fix_screeninfo finfo; long int screensize = 0; //char *fbp = 0; char *fbp = 0; int x = 0, y = 0; long int location = 0; int count ; /* Open the file for reading and writing */ fbfd = open("/dev/fb0", O_RDWR); if (!fbfd) { printf("Error: cannot open framebuffer device. "); exit(1); } printf("The framebuffer device was opened successfully. "); /* Get fixed screen information */ if (ioctl(fbfd, FBIOGET_FSCREENINFO, &finfo)) { printf("Error reading fixed information. "); exit(2); } /* Get variable screen information */ if (ioctl(fbfd, FBIOGET_VSCREENINFO, &vinfo)) { printf("Error reading variable information. "); exit(3); } /* Figure out the size of the screen in bytes */ screensize = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel / 8; printf(" Screen size is %d",screensize); printf(" Vinfo.bpp = %d",vinfo.bits_per_pixel); // printf(" Finfo.bpp = %d",finfo.bits_per_pixel); /* Map the device to memory */ fbp = (char *)mmap(0, screensize, PROT_READ | PROT_WRITE, MAP_SHARED,fbfd, 0); if ((int)fbp == -1) { printf("Error: failed to map framebuffer device to memory. "); exit(4); } printf("The framebuffer device was mapped to memory successfully. "); x = 100; y = 100; /* Where we are going to put the pixel */ /* Figure out where in memory to put the pixel */ location = (x+vinfo.xoffset) * (vinfo.bits_per_pixel/8) + (y+vinfo.yoffset) * finfo.line_length; for(count = 1 ;count < 100 ;count++) { *(fbp + location) = 255; /* Some blue */ *(fbp + location + count) = 0; /* A little green */ *(fbp + location + count + 1) = 0; /* A lot of red */ *(fbp + location + count + 2) = 0; /* No transparency */ } munmap(fbp, screensize); close(fbfd); return 0; } /************************************************** ***********************/ After running the above code no change was found on display but ' cat /dev/fb0 ' showed some data. Could someone explain why nothing was seen on screen? (I also found that fb0 correspond to the frame buffer 'inteldrmfb' .) Regards, ShibuThomas _______________________________________________ Redhat-install-list mailing list Redhat-install-list@redhat.com https://www.redhat.com/mailman/listinfo/redhat-install-list To Unsubscribe Go To ABOVE URL or send a message to: redhat-install-list-request@redhat.com Subject: unsubscribe |
| All times are GMT. The time now is 02:46 PM. |
VBulletin, Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.