"xfree.pfo" pfo BROKEN # todo: sync for create window? # if only one is needed -> no need for sync # if more are needed -> user does sync by calling dpy-poll # open display & bind some words to it. # let's pretend all this display madness is not here. "" display-open constant dpy () variable! dpy-windows # list of windows () variable! dpy-rendercontexts # list of render contexts : >dpy dpy display-send ; : dpy> dpy display-receive ; : dpy-poll try begin dpy> interpret-list again recover e_eof or-throw drop endtry ; : >dpy-sync >dpy dpy-poll ; # add poller to main poll hook ' dpy-poll ' poll add-hook # some convenience words to create windows : make-window # ( w h -- window ) 0 0 4 pack reverse (window) swap concat (dpy-windows push) concat >dpy-sync # create it + wait for dpy dpy-windows top ; # return instance : make-rendercontext (rendercontext dpy-rendercontexts push) >dpy-sync dpy-rendercontexts top ; : surface-makecurrent dpy-rendercontexts top dpy-windows top dpy .S display-make-current ; : surface-swapbuffers dpy-windows top dpy .S display-swap-buffers ;