Nathan King wrote:
> Hi James,
>
> I can mmap it, but I found that using file operations to access it was
> about 2-3 times faster than accessing it through a mmap'ed buffer. Is
> it possible I'm doing that wrong? Here's my stuff for that:
>
Using the file accessors are actually more portable than using mmap. And
if it's faster, then that's better.
> fbfd = open("/dev/fb0", O_RDONLY);
> fbp = (unsigned char *)mmap(0, screensize, PROT_READ, MAP_SHARED, fbfd, 0);
>
> Then I read from fbp with memcpy and memcmp. If I'm going against some
> long upheld programming convention feel free to throw things at me.
Looks okay. Reading from video RAM on PCI cards will always be slower than
writes.
>
> Thanks,
> Nathan
>
>
>> On Wed, 2006-06-28 at 18:08 -0600, Nathan King wrote:
>>> What's the preferred way to read a block of pixels from the screen?
>>> I'm developing something like a remote desktop app, and I haven't
>>> found a whole lot of documentation on this. Right now I'm opening
>>> the /dev/fb0 device and accessing it by means of lseek/read, file
>>> descriptor style. This seems reasonably fast but I feel there must be
>>> a better way.
Your only choices for the standard kernel are mmap and read/write. But
if you can use an acceleration library (DirectFB www.directfb.org), that
would be the best.
Tony
|