add framebuffer functions