Skip to content

Commit 8597540

Browse files
authored
Merge pull request #8 from SKY-13th/feature/remove-redundant-library-dependency
Remove redundant library dependency
2 parents 2643f9d + b72f435 commit 8597540

File tree

9 files changed

+92
-97
lines changed

9 files changed

+92
-97
lines changed

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
.dub
2-
dub.*
2+
dub.selections.*
33
bin
44
docs.json
55
__dummy.html

dub.json

+1-3
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
"targetPath": "bin",
88
"targetType": "library",
99
"dependencies": {
10-
"derelict-util" : ">=3.0.0",
11-
"xlib-d": { "version": "~>0.1.1", "optional": true },
12-
"xcb-d" : { "version": "~>2.1.0+1.11.1", "optional": true }
10+
"derelict-util" : ">=3.0.0-alpha.1"
1311
}
1412
}

source/derelict/vulkan/base.d

+14-25
Original file line numberDiff line numberDiff line change
@@ -25,41 +25,30 @@ extern(System):
2525

2626
//#include "vk_platform.h"
2727

28-
auto VK_MAKE_VERSION(int major, int minor, int patch) {
29-
return (major << 22) | (minor << 12) | patch;
30-
}
31-
32-
auto VK_VERSION_MAJOR(uint ver) {
33-
return ver >> 22;
34-
}
35-
36-
auto VK_VERSION_MINOR(uint ver) {
37-
return (ver >> 12) & 0x3ff;
38-
}
39-
40-
auto VK_VERSION_PATCH(uint ver) {
41-
return ver & 0xfff;
42-
}
28+
alias VK_VERSION_MAJOR = (uint ver) => ver >> 22;
29+
alias VK_VERSION_MINOR = (uint ver) => (ver >> 12) & 0x3ff;
30+
alias VK_VERSION_PATCH = (uint ver) => ver & 0xfff;
31+
alias VK_MAKE_VERSION = (uint major, uint minor, uint patch) =>
32+
(major << 22) | (minor << 12) | patch;
4333

44-
package auto VK_DEFINE_HANDLE(string name) {
45-
return "struct " ~ name ~ "_T; \n alias " ~ name ~ " = " ~ name ~ "_T*;";
34+
package mixin template VK_DEFINE_HANDLE(string name) {
35+
mixin("struct " ~ name ~ "_T; \n alias " ~ name ~ " = " ~ name ~ "_T*;");
4636
}
47-
48-
package auto VK_DEFINE_NON_DISPATCHABLE_HANDLE(string name) {
49-
// #if defined(__LP64__) || defined(_WIN64)
50-
// || defined(__x86_64__) || defined(_M_X64)
51-
// || defined(__ia64) || defined (_M_IA64)
52-
// || defined(__aarch64__) || defined(__powerpc64__)
53-
return VK_DEFINE_HANDLE(name);
37+
package mixin template VK_DEFINE_NON_DISPATCHABLE_HANDLE(string name) {
38+
mixin("alias " ~ name ~ " = void*;");
5439
}
40+
// #if defined(__LP64__) || defined(_WIN64)
41+
// || defined(__x86_64__) || defined(_M_X64)
42+
// || defined(__ia64) || defined (_M_IA64)
43+
// || defined(__aarch64__) || defined(__powerpc64__)
5544

5645
alias VkFlags = uint;
5746
alias VkBool32 = uint;
5847
alias VkDeviceSize = ulong;
5948
alias VkSampleMask = uint;
6049

6150
enum VK_VERSION_1_0 = 1;
62-
enum VK_API_VERSION = VK_MAKE_VERSION(1, 0, 3); // Vulkan API version supported by this file
51+
enum VK_API_VERSION = VK_MAKE_VERSION(1, 0, 3); // Vulkan API version supported by this binding
6352
enum VK_NULL_HANDLE = null;
6453

6554
enum VK_TRUE = 1;

source/derelict/vulkan/system/posix/mir.d

+11-10
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,9 @@ public {
3535
import derelict.vulkan.types;
3636
}
3737

38-
// TODO: add import of data related to Mir protocol
39-
// #include <mir_toolkit/client_types.h>
38+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"MirConnectionHandle";
39+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"MirSurfaceHandle";
40+
4041
enum VK_KHR_mir_surface = 1;
4142
enum VK_KHR_MIR_SURFACE_SPEC_VERSION = 4;
4243
enum VK_KHR_MIR_SURFACE_EXTENSION_NAME = "VK_KHR_mir_surface";
@@ -47,8 +48,8 @@ struct VkMirSurfaceCreateInfoKHR {
4748
VkStructureType sType ;
4849
const(void)* pNext ;
4950
VkMirSurfaceCreateFlagsKHR flags ;
50-
MirConnection* connection;
51-
MirSurface* mirSurface;
51+
MirConnectionHandle connection;
52+
MirSurfaceHandle mirSurface;
5253
}
5354

5455
alias PFN_vkCreateMirSurfaceKHR = nothrow
@@ -57,9 +58,9 @@ alias PFN_vkCreateMirSurfaceKHR = nothrow
5758
, const(VkAllocationCallbacks)* pAllocator
5859
, VkSurfaceKHR* pSurface );
5960
alias PFN_vkGetPhysicalDeviceMirPresentationSupportKHR = nothrow
60-
VkBool32 function( VkPhysicalDevice physicalDevice
61-
, uint queueFamilyIndex
62-
, MirConnection* connection);
61+
VkBool32 function( VkPhysicalDevice physicalDevice
62+
, uint queueFamilyIndex
63+
, MirConnectionHandle connection);
6364

6465
mixin template MirFunctions() {
6566
PFN_vkCreateMirSurfaceKHR vkCreateMirSurfaceKHR;
@@ -77,7 +78,7 @@ version (none) {
7778
, const(VkMirSurfaceCreateInfoKHR)* pCreateInfo
7879
, const(VkAllocationCallbacks)* pAllocator
7980
, VkSurfaceKHR* pSurface );
80-
VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR( VkPhysicalDevice physicalDevice
81-
, uint queueFamilyIndex
82-
, MirConnection* connection );
81+
VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR( VkPhysicalDevice physicalDevice
82+
, uint queueFamilyIndex
83+
, MirConnectionHandle connection );
8384
}

source/derelict/vulkan/system/posix/package.d

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ version (VK_USE_PLATFORM_WAYLAND_KHR)
4141
mixin template Functions() {
4242
version (VK_USE_PLATFORM_XCB_KHR) mixin XCBFunctions;
4343
version (VK_USE_PLATFORM_XLIB_KHR) mixin XLibFunctions;
44-
version (VK_USE_PLATFORM_MIR_KHR) mixin MirFuntions;
44+
version (VK_USE_PLATFORM_MIR_KHR) mixin MirFunctions;
4545
version (VK_USE_PLATFORM_WAYLAND_KHR) mixin WaylandFunctions;
4646
pragma(inline, true)
4747
void bindFunctions(alias bind)() {

source/derelict/vulkan/system/posix/wayland.d

+7-6
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,9 @@ public {
3535
import derelict.vulkan.types;
3636
}
3737

38-
// TODO: add import of data related to Wayland protocol
39-
// #include <wayland-client.h>
38+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"WlDisplayHandle";
39+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"WlSurfaceHandle";
40+
4041
enum VK_KHR_wayland_surface = 1;
4142
enum VK_KHR_WAYLAND_SURFACE_SPEC_VERSION = 5;
4243
enum VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME = "VK_KHR_wayland_surface";
@@ -47,8 +48,8 @@ struct VkWaylandSurfaceCreateInfoKHR {
4748
VkStructureType sType ;
4849
const(void)* pNext ;
4950
VkWaylandSurfaceCreateFlagsKHR flags ;
50-
wl_display* display;
51-
wl_surface* surface;
51+
WlDisplayHandle display;
52+
WlSurfaceHandle surface;
5253
}
5354

5455
alias PFN_vkCreateWaylandSurfaceKHR = nothrow
@@ -59,7 +60,7 @@ alias PFN_vkCreateWaylandSurfaceKHR = nothrow
5960
alias PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR = nothrow
6061
VkBool32 function( VkPhysicalDevice physicalDevice
6162
, uint queueFamilyIndex
62-
, wl_display* display );
63+
, WlDisplayHandle display );
6364

6465
mixin template WaylandFunctions() {
6566
PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR;
@@ -79,5 +80,5 @@ version (none) {
7980
, VkSurfaceKHR* pSurface );
8081
VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR( VkPhysicalDevice physicalDevice
8182
, uint queueFamilyIndex
82-
, wl_display* display );
83+
, WlDisplayHandle display );
8384
}

source/derelict/vulkan/system/posix/xcb.d

+13-10
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@ public {
3535
import derelict.vulkan.types;
3636
}
3737

38-
import xcb.xcb;
38+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"XCBConnectionHandle";
39+
alias xcb_window_t = uint;
40+
alias xcb_visualid_t = uint;
41+
3942
enum VK_KHR_xcb_surface = 1;
4043
enum VK_KHR_XCB_SURFACE_SPEC_VERSION = 6;
4144
enum VK_KHR_XCB_SURFACE_EXTENSION_NAME = "VK_KHR_xcb_surface";
@@ -46,7 +49,7 @@ struct VkXcbSurfaceCreateInfoKHR {
4649
VkStructureType sType ;
4750
const(void)* pNext ;
4851
VkXcbSurfaceCreateFlagsKHR flags ;
49-
xcb_connection_t* connection;
52+
XCBConnectionHandle connection;
5053
xcb_window_t window ;
5154
}
5255

@@ -56,10 +59,10 @@ alias PFN_vkCreateXcbSurfaceKHR = nothrow
5659
, const(VkAllocationCallbacks)* pAllocator
5760
, VkSurfaceKHR* pSurface );
5861
alias PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR = nothrow
59-
VkBool32 function( VkPhysicalDevice physicalDevice
60-
, uint queueFamilyIndex
61-
, xcb_connection_t* connection
62-
, xcb_visualid_t visual_id );
62+
VkBool32 function( VkPhysicalDevice physicalDevice
63+
, uint queueFamilyIndex
64+
, XCBConnectionHandle connection
65+
, xcb_visualid_t visual_id );
6366

6467
mixin template XCBFunctions() {
6568
PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR;
@@ -77,8 +80,8 @@ version (none) {
7780
, const(VkXcbSurfaceCreateInfoKHR)* pCreateInfo
7881
, const(VkAllocationCallbacks)* pAllocator
7982
, VkSurfaceKHR* pSurface );
80-
VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR( VkPhysicalDevice physicalDevice
81-
, uint queueFamilyIndex
82-
, xcb_connection_t* connection
83-
, xcb_visualid_t visual_id);
83+
VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR( VkPhysicalDevice physicalDevice
84+
, uint queueFamilyIndex
85+
, XCBConnectionHandle connection
86+
, xcb_visualid_t visual_id);
8487
}

source/derelict/vulkan/system/posix/xlib.d

+14-11
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,10 @@ public {
3434
import derelict.vulkan.base;
3535
import derelict.vulkan.types;
3636
}
37-
import X11.Xlib;
37+
38+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"XLibDisplayHandle";
39+
alias XLibWindow = uint;
40+
alias XLibVisualID = uint;
3841

3942
enum VK_KHR_xlib_surface = 1;
4043
enum VK_KHR_XLIB_SURFACE_SPEC_VERSION = 6;
@@ -46,8 +49,8 @@ struct VkXlibSurfaceCreateInfoKHR {
4649
VkStructureType sType ;
4750
const(void)* pNext ;
4851
VkXlibSurfaceCreateFlagsKHR flags ;
49-
Display* dpy ;
50-
Window window;
52+
XLibDisplayHandle dpy ;
53+
XLibWindow window;
5154
}
5255

5356
alias PFN_vkCreateXlibSurfaceKHR = nothrow
@@ -56,10 +59,10 @@ alias PFN_vkCreateXlibSurfaceKHR = nothrow
5659
, const(VkAllocationCallbacks)* pAllocator
5760
, VkSurfaceKHR* pSurface );
5861
alias PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR = nothrow
59-
VkBool32 function( VkPhysicalDevice physicalDevice
60-
, uint queueFamilyIndex
61-
, Display* dpy
62-
, VisualID visualID);
62+
VkBool32 function( VkPhysicalDevice physicalDevice
63+
, uint queueFamilyIndex
64+
, XLibDisplayHandle dpy
65+
, XLibVisualID visualID);
6366

6467
mixin template XLibFunctions() {
6568
PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR;
@@ -77,8 +80,8 @@ version (none) {
7780
, const(VkXlibSurfaceCreateInfoKHR)* pCreateInfo
7881
, const(VkAllocationCallbacks)* pAllocator
7982
, VkSurfaceKHR* pSurface );
80-
VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR( VkPhysicalDevice physicalDevice
81-
, uint queueFamilyIndex
82-
, Display* dpy
83-
, VisualID visualID );
83+
VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR( VkPhysicalDevice physicalDevice
84+
, uint queueFamilyIndex
85+
, XLibDisplayHandle dpy
86+
, XLibVisualID visualID );
8487
}

source/derelict/vulkan/types.d

+30-30
Original file line numberDiff line numberDiff line change
@@ -26,31 +26,31 @@ import derelict.vulkan.system;
2626

2727
extern(System):
2828

29-
mixin(VK_DEFINE_HANDLE("VkInstance"));
30-
mixin(VK_DEFINE_HANDLE("VkPhysicalDevice"));
31-
mixin(VK_DEFINE_HANDLE("VkDevice"));
32-
mixin(VK_DEFINE_HANDLE("VkQueue"));
33-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkSemaphore"));
34-
mixin(VK_DEFINE_HANDLE("VkCommandBuffer"));
35-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkFence"));
36-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkDeviceMemory"));
37-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkBuffer"));
38-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkImage"));
39-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkEvent"));
40-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkQueryPool"));
41-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkBufferView"));
42-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkImageView"));
43-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkShaderModule"));
44-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkPipelineCache"));
45-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkPipelineLayout"));
46-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkRenderPass"));
47-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkPipeline"));
48-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkDescriptorSetLayout"));
49-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkSampler"));
50-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkDescriptorPool"));
51-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkDescriptorSet"));
52-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkFramebuffer"));
53-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkCommandPool"));
29+
mixin VK_DEFINE_HANDLE!"VkInstance";
30+
mixin VK_DEFINE_HANDLE!"VkPhysicalDevice";
31+
mixin VK_DEFINE_HANDLE!"VkDevice";
32+
mixin VK_DEFINE_HANDLE!"VkQueue";
33+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkSemaphore";
34+
mixin VK_DEFINE_HANDLE!"VkCommandBuffer";
35+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkFence";
36+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkDeviceMemory";
37+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkBuffer";
38+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkImage";
39+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkEvent";
40+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkQueryPool";
41+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkBufferView";
42+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkImageView";
43+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkShaderModule";
44+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkPipelineCache";
45+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkPipelineLayout";
46+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkRenderPass";
47+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkPipeline";
48+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkDescriptorSetLayout";
49+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkSampler";
50+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkDescriptorPool";
51+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkDescriptorSet";
52+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkFramebuffer";
53+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkCommandPool";
5454

5555
enum VkPipelineCacheHeaderVersion {
5656
VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
@@ -2588,7 +2588,7 @@ version (none) {
25882588
}
25892589

25902590
enum VK_KHR_surface = 1;
2591-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkSurfaceKHR"));
2591+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkSurfaceKHR";
25922592

25932593
enum VK_KHR_SURFACE_SPEC_VERSION = 25;
25942594
enum VK_KHR_SURFACE_EXTENSION_NAME = "VK_KHR_surface";
@@ -2672,7 +2672,7 @@ version (none) {
26722672
}
26732673

26742674
enum VK_KHR_swapchain = 1;
2675-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkSwapchainKHR"));
2675+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkSwapchainKHR";
26762676

26772677
enum VK_KHR_SWAPCHAIN_SPEC_VERSION = 67;
26782678
enum VK_KHR_SWAPCHAIN_EXTENSION_NAME = "VK_KHR_swapchain";
@@ -2730,8 +2730,8 @@ version (none) {
27302730
}
27312731

27322732
enum VK_KHR_display = 1;
2733-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkDisplayKHR"));
2734-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkDisplayModeKHR"));
2733+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkDisplayKHR";
2734+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkDisplayModeKHR";
27352735

27362736
enum VK_KHR_DISPLAY_SPEC_VERSION = 21;
27372737
enum VK_KHR_DISPLAY_EXTENSION_NAME = "VK_KHR_display";
@@ -2847,7 +2847,7 @@ version (none) {
28472847
}
28482848

28492849
enum VK_EXT_debug_report = 1;
2850-
mixin(VK_DEFINE_NON_DISPATCHABLE_HANDLE("VkDebugReportCallbackEXT"));
2850+
mixin VK_DEFINE_NON_DISPATCHABLE_HANDLE!"VkDebugReportCallbackEXT";
28512851

28522852
enum VK_EXT_DEBUG_REPORT_SPEC_VERSION = 1;
28532853
enum VK_EXT_DEBUG_REPORT_EXTENSION_NAME = "VK_EXT_debug_report";

0 commit comments

Comments
 (0)