loader: Wrote vk{Create|Destroy}*SurfaceKHR() trampoline functions.

This is an area where the loader-ICD interface is different.  Instead of the
trampoline function calling down a call-chain, For Windows and Linux, this
function actually fully implements the function.  A VkSurfaceKHR is actually a
pointer to a platform-specific struct (declared in "vk_icd.h").  The memory for
the struct is allocated, and the struct is initialized.  All ICDs and layers on
Windows and Linux are supposed to treat VkSurfaceKHR's (e.g. in other calls) as
such a pointer to a struct.

Also, per a Skype conversation with Jon Ashburn, there will be
per-WSI-extension sections of the file, with pairs of trampoline-terminator
functions right next to each other.
1 file changed