c++linuxgraphicsframebuffer

How to write directly to linux framebuffer?


How to write directly to linux framebuffer?


Solution

  • look at FBIOPUT_VSCREENINFO, ioctl and mmap

    (I have the code but not at this pc, sorry)

    edit: this should get you started

      //open file descriptor and get info
    inf fdScreen = open( "devicename", O_RDWR );
    fb_var_screeninfo varInfo;
    ioctl( fdScreen, FBIOGET_VSCREENINFO, &varInfo );
    
      //set resolution/dpi/color depth/.. in varInfo, then write it back
    ioctl( fdScreen, FBIOPUT_VSCREENINFO, &varInfo );
    
      //get writable screen memory; unsigned short here for 16bit color
    unsigned short* display = mmap( 0, nScreenSize,
                                    PROT_READ | PROT_WRITE, MAP_SHARED, fdScreen, 0 );