only draw what can be seen in screen size. update also during keyinput