Pārlūkot izejas kodu

Move library names definition

Sky Thirteenth 8 gadi atpakaļ
vecāks
revīzija
a2908f1ff7
2 mainītis faili ar 11 papildinājumiem un 9 dzēšanām
  1. 6 8
      source/derelict/vulkan/package.d
  2. 5 1
      source/derelict/vulkan/system.d

+ 6 - 8
source/derelict/vulkan/package.d

@@ -28,6 +28,7 @@ DEALINGS IN THE SOFTWARE.
 module derelict.vulkan;
 
 public {
+	import derelict.vulkan.system;
 	import derelict.vulkan.types;
 	import derelict.vulkan.functions;
 }
@@ -35,15 +36,12 @@ public {
 private {
 	import derelict.util.loader;
 	import derelict.util.system;
+}
 
-	static if (Derelict_OS_Windows)
-		enum libNames = "vulkan-1.dll";
-	//~ else static if(Derelict_OS_Mac)
-	//~ enum libNames = "libvulkan.dylib";
-	else static if(Derelict_OS_Posix)
-		enum libNames = "libvulkan.so,libvulkan.so.1";
-	else
-		static assert(0, "Need to implement vulkan libNames for this operating system.");
+static if (libNames.length == 0) {
+  pragma(msg, "Library names don't specified for this system."
+            , " Please, specify it on library loading. e.g:\n"
+            , "DerelictVulkan.load(\"libvulkan.so\");");
 }
 
 class DerelictVulkanLoader : SharedLibLoader {

+ 5 - 1
source/derelict/vulkan/system.d

@@ -73,12 +73,14 @@ mixin template SystemFunctionality() {
   } else static if (currentSystem == VKSystem.Posix) {
     mixin PosixSys;
   } else {
+    enum libNames = "";
     package alias Functions = DummyFunctions;
   }
 }
 
 mixin template WindowsSys() {
   import core.sys.windows.windows;
+  enum libNames = "vulkan-1.dll";
   enum VK_KHR_win32_surface = 1;
   enum VK_KHR_WIN32_SURFACE_SPEC_VERSION   = 5;
   enum VK_KHR_WIN32_SURFACE_EXTENSION_NAME = "VK_KHR_win32_surface";
@@ -121,7 +123,8 @@ mixin template WindowsSys() {
   }
 }
 
-mixin template AndroidSys() { 
+mixin template AndroidSys() {
+  enum libNames = "";
   // #include <android/native_window.h>
   enum VK_KHR_android_surface = 1;
   enum VK_KHR_ANDROID_SURFACE_SPEC_VERSION   = 6;
@@ -159,6 +162,7 @@ mixin template AndroidSys() {
 }
 
 mixin template PosixSys() {
+  enum libNames = "libvulkan.so,libvulkan.so.1";
   version (VK_USE_PLATFORM_XCB_KHR)     mixin XCBProtocol    ;
   version (VK_USE_PLATFORM_XLIB_KHR)    mixin XLibProtocol   ;
   version (VK_USE_PLATFORM_MIR_KHR)     mixin MirProtocol    ;