Fix initialization order
Fix initialization order in Surface constructor
Fix warning (comparison between signed and unsigned)