use databuffer to draw