summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/window.cpp29
1 files changed, 5 insertions, 24 deletions
diff --git a/src/window.cpp b/src/window.cpp
index 2c2cf52..12ee3b4 100644
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -1796,8 +1796,6 @@ void CreatePresentPipeline() {
vkDestroyShaderModule(vkDevice, fragShader, vkAllocator);
vkDestroyShaderModule(vkDevice, vertShader, vkAllocator);
- AM_Release(fragShaderAsset);
- AM_Release(vertShaderAsset);
}
void CreateFramebuffers() {
@@ -2448,19 +2446,6 @@ void CreateGraphicsPipelines() {
vkPipelineDepthStencilStateCreateInfo.minDepthBounds = {};
vkPipelineDepthStencilStateCreateInfo.maxDepthBounds = {};
- const Asset *textureVertShaderAsset = AM_Get(vertShaderAssetHandle);
- const Asset *textureFragShaderAsset = AM_Get(textureFragShaderAssetHandle);
- const Asset *glyphVertShaderAsset = AM_Get(vertGlyphAssetHandle);
- const Asset *glyphFragShaderAsset = AM_Get(fragGlyphAssetHandle);
- const Asset *vert_shader_asset_ui_base = AM_Get(asset_handle_vert_ui_base);
- const Asset *frag_shader_asset_ui_base = AM_Get(asset_handle_frag_ui_base);
- assert(textureVertShaderAsset != nullptr && textureVertShaderAsset->state == PKE_ASSET_LOADING_STATE_LOADED);
- assert(textureFragShaderAsset != nullptr && textureFragShaderAsset->state == PKE_ASSET_LOADING_STATE_LOADED);
- assert(glyphVertShaderAsset != nullptr && glyphVertShaderAsset->state == PKE_ASSET_LOADING_STATE_LOADED);
- assert(glyphFragShaderAsset != nullptr && glyphFragShaderAsset->state == PKE_ASSET_LOADING_STATE_LOADED);
- assert(vert_shader_asset_ui_base != nullptr && vert_shader_asset_ui_base->state == PKE_ASSET_LOADING_STATE_LOADED);
- assert(frag_shader_asset_ui_base != nullptr && frag_shader_asset_ui_base->state == PKE_ASSET_LOADING_STATE_LOADED);
-
VkPipelineShaderStageCreateInfo vkPipelineShaderStageCreateInfo_txtr[2];
for (long i = 0; i < 2; ++i) {
vkPipelineShaderStageCreateInfo_txtr[i].sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
@@ -2561,14 +2546,6 @@ void CreateGraphicsPipelines() {
vkDestroyShaderModule(vkDevice, vkPipelineShaderStageCreateInfo_glyph[i].module, vkAllocator);
vkDestroyShaderModule(vkDevice, vkPipelineShaderStageCreateInfo_ui_base[i].module, vkAllocator);
}
-
- // reverse order
- AM_Release(asset_handle_frag_ui_base);
- AM_Release(asset_handle_vert_ui_base);
- AM_Release(fragGlyphAssetHandle);
- AM_Release(vertGlyphAssetHandle);
- AM_Release(vertShaderAssetHandle);
- AM_Release(textureFragShaderAssetHandle);
}
// debug texture
@@ -3680,7 +3657,10 @@ void DestroyWindow() {
VkShaderModule UploadShader(AssetHandle handle) {
const Asset *asset = AM_Get(handle);
- assert(asset != nullptr && asset->state == PKE_ASSET_LOADING_STATE_LOADED);
+ if (asset == nullptr || asset->state != PKE_ASSET_LOADING_STATE_LOADED) {
+ fprintf(stderr, "[Window::UploadShader] asset '%.08X %.08X' failed to load.", handle.bucketIndex, handle.itemIndex);
+ return NULL;
+ }
#ifndef NDEBUG
fprintf(stdout, "Uploading Shader: '%s'\n", asset->basePath);
#endif
@@ -3696,6 +3676,7 @@ VkShaderModule UploadShader(AssetHandle handle) {
if (vkCreateShaderModule(vkDevice, &createInfo, vkAllocator, &vkShaderModule) != VK_SUCCESS) {
throw "failed to create shader module for asset";
}
+ AM_Release(handle);
return vkShaderModule;
}