add kuhl_gen_framebuffer() function to kuhl-util