diff options
Diffstat (limited to 'src/window.cpp')
| -rw-r--r-- | src/window.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/window.cpp b/src/window.cpp index c8e6465..7fb2139 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -488,3 +488,18 @@ void DestroyWindow() { glfwTerminate(); } +VkShaderModule UploadShader(AssetHandle handle) { + const Asset *asset = GetAsset(handle); + + VkShaderModuleCreateInfo createInfo{}; + createInfo.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO; + createInfo.codeSize = asset->size; + createInfo.pCode = static_cast<const uint32_t *>(asset->ptr); + + VkShaderModule vkShaderModule; + if (vkCreateShaderModule(vkDevice, &createInfo, vkAllocator, &vkShaderModule) != VK_SUCCESS) { + throw "failed to create shader module for asset"; + } + return vkShaderModule; +} + |
