support images without alpha
support resizing
abstract functions
throw error if function is null
xlib video interface
some default video initialization