From 78783f5a641e4429a61cf13251777502427db510 Mon Sep 17 00:00:00 2001 From: Tomasz Kramkowski Date: Thu, 1 Mar 2018 13:48:17 +0000 Subject: shaders: fix shader embedding The embedded shader data should be using char * instead of void *. Additionally some macros are provided for better readability. --- shaders.h | 14 ++++++++------ vulkan.c | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/shaders.h b/shaders.h index 3c58910..7f36984 100644 --- a/shaders.h +++ b/shaders.h @@ -3,12 +3,14 @@ #include -extern size_t _binary_vertex_spv_size; -extern void *_binary_vertex_spv_start; -extern void *_binary_vertex_spv_end; +extern char _binary_vertex_spv_start[]; +extern char _binary_vertex_spv_end[]; +#define vertex_spv_data _binary_vertex_spv_start +#define vertex_spv_size (_binary_vertex_spv_end - _binary_vertex_spv_start) -extern size_t _binary_fragment_spv_size; -extern void *_binary_fragment_spv_start; -extern void *_binary_fragment_spv_end; +extern char _binary_fragment_spv_start[]; +extern char _binary_fragment_spv_end[]; +#define fragment_spv_data _binary_fragment_spv_start +#define fragment_spv_size (_binary_fragment_spv_end - _binary_fragment_spv_start) #endif // VULKAN_SHADERS_H diff --git a/vulkan.c b/vulkan.c index 420be16..0b9bb81 100644 --- a/vulkan.c +++ b/vulkan.c @@ -520,8 +520,8 @@ static void createpipeline(struct ppln *ppln, VkDevice dev, const VkExtent2D *ex if (res != VK_SUCCESS) eprintf("Could not create pipeline layout"); - vsmod = createsmod(dev, _binary_vertex_spv_start, _binary_vertex_spv_size); - fsmod = createsmod(dev, _binary_fragment_spv_start, _binary_fragment_spv_size); + vsmod = createsmod(dev, vertex_spv_data, vertex_spv_size); + fsmod = createsmod(dev, fragment_spv_data, fragment_spv_size); gpcinf = (VkGraphicsPipelineCreateInfo){ .sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO, -- cgit v1.2.3