Или ручками:
Код | mpDevice = "/dev/fb0"; mFd = open(mpDevice, O_RDWR);
if (-1 == mFd) { ERROR("Unable to open %s: %s", mpDevice, COperationSystem::strerrno()); break; }
if (-1 == ioctl(mFd, FBIOGET_VSCREENINFO, &sInitScreenInfo)) { ERROR("Unable to ioctl: %s", COperationSystem::strerrno()); break; }
mMemSize = sInitScreenInfo.xres * sInitScreenInfo.yres * sInitScreenInfo.bits_per_pixel / 8; if (MAP_FAILED == (mpMemory = mmap(0, mMemSize, PROT_READ | PROT_WRITE, MAP_SHARED, mFd, 0))) { ERROR("Unable to mmap: %s", COperationSystem::strerrno()); break; }
// Заливаем черным цветом memset(mpMemory, 0, mMemSize);
// и т.д. В mpMemory у нас лежит матрица точек размером mMemSize в каком-то формате (см св-ва фреймбуфера). У меня в RGBA16, т.е. 4 бита на R, 4 бита на G, 4 бита на B и 4 бита на Alfa
|
Удачи! |