vkOS.bmx 784 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. SuperStrict
  2. ?Win32
  3. Import Pub.Win32
  4. ?linux
  5. Import "-ldl"
  6. Extern
  7. Function dlopen:Byte Ptr( filename$z, flag:Int )
  8. Function dlsym:Byte Ptr( handle:Byte Ptr, funcName$z )
  9. EndExtern
  10. ?
  11. Function LoadDynamicLibrary:Byte Ptr( LibraryName:String )
  12. ?win32
  13. Return LoadLibraryA( LibraryName )
  14. ?linux
  15. Return dlopen( LibraryName, 2 )
  16. ?
  17. EndFunction
  18. Function GetVulkanLibraryNames:String[]()
  19. ?win32
  20. Return [ "vulkan-1.dll" ]
  21. ?linux
  22. Return [ "libvulkan.so" , "libvulkan.so.1" ]
  23. ?
  24. EndFunction
  25. Function GetDynamicLibraryFuncAddr:Byte Ptr( lib:Byte Ptr, FuncName:String )
  26. ?win32
  27. Return GetProcAddress( lib, FuncName )
  28. ?linux
  29. Return dlsym( lib, FuncName )
  30. ?
  31. EndFunction
  32. Function VK_MAKE_VERSION:Int( major:Int, minor:Int, patch:Int )
  33. Return major Shl 22 | minor Shl 12 | patch
  34. EndFunction