added experimental support for frame buffer objects