summaryrefslogtreecommitdiff
path: root/src/window.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/window.cpp')
-rw-r--r--src/window.cpp15
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;
+}
+