Mostly a procedural reordering. Idea is to avoid
trying to setup a surface without a display.This
change relies on the asumption that:
1.- set_window_handle() can happen at any time
2.- setcaps will never get called before _start()
is done.
If both conditions are meet the new procedure
should work as expected.