diff --git a/engine/render/renderer/Core.h b/engine/render/renderer/Core.h index 986f7f44..c6b8e0aa 100644 --- a/engine/render/renderer/Core.h +++ b/engine/render/renderer/Core.h @@ -29,22 +29,13 @@ typedef uint64_t u64; typedef int32_t i32; typedef size_t size; -#define EXIT_APP abort(); - +#define EXIT_APP abort() #define REPORT_ASSERT_FAILURE(expr, file, line, message) \ - std::cout << "ASSERTION FAILURE: " << #expr << " in file: " << file << " on line: " << line \ - << std::endl; \ - std::cout << " Message: " << message << std::endl; - -// Custom assert macro -#define CC_ASSERT(expr, message) \ - if (expr) \ - {} \ - else \ - { \ - REPORT_ASSERT_FAILURE(#expr, __FILE__, __LINE__, message); \ - EXIT_APP \ - } + std::cout << "ASSERTION FAILURE: " << #expr << " in file: " << file << " on line: " << line \ + << "\n Message: " << message << std::endl + +#define CC_ASSERT(expr, msg) \ + expr || (REPORT_ASSERT_FAILURE(expr, __FILE__, __LINE__, msg) && [](){EXIT_APP; return true;}()) #define OUT diff --git a/engine/render/renderer/Renderer.h b/engine/render/renderer/Renderer.h index adbf7f72..efa15fa1 100644 --- a/engine/render/renderer/Renderer.h +++ b/engine/render/renderer/Renderer.h @@ -45,7 +45,7 @@ class Renderer int GetCurrentFrameIndex() const { - CC_ASSERT(!isFrameStarted, "Can't get frame index when frame is not in progress!") + CC_ASSERT(!isFrameStarted, "Can't get frame index when frame is not in progress!"); return currentFrameIndex; } diff --git a/engine/render/renderer/framebuffer/Framebuffer.cpp b/engine/render/renderer/framebuffer/Framebuffer.cpp index 7abb12e8..e01a77f3 100644 --- a/engine/render/renderer/framebuffer/Framebuffer.cpp +++ b/engine/render/renderer/framebuffer/Framebuffer.cpp @@ -47,7 +47,7 @@ void Framebuffer::Initialise(const Framebuffer::Config& config, const VkDevice& CC_ASSERT(vkCreateFramebuffer(device, &frameBufferInfo, nullptr, OUT & framebuffers[i]) == VK_SUCCESS, - "Failed to create framebuffer") + "Failed to create framebuffer"); } } diff --git a/engine/render/renderer/material/Material.cpp b/engine/render/renderer/material/Material.cpp index af7aad59..9d5ad4fe 100644 --- a/engine/render/renderer/material/Material.cpp +++ b/engine/render/renderer/material/Material.cpp @@ -347,7 +347,9 @@ Material::Property& Material::GetProperty(Utils::StringId id) if (id == property.id) return property; } - CC_ASSERT(false, "No property with ID: " << id << " exists!"); + CC_ASSERT(false, + (std::string("No property with ID: ") + std::to_string(id) + std::string(" exists!")) + .c_str()); } void Material::BuildMaterial() diff --git a/engine/render/renderer/model/Model.cpp b/engine/render/renderer/model/Model.cpp index 08f5566d..edf8f0c9 100644 --- a/engine/render/renderer/model/Model.cpp +++ b/engine/render/renderer/model/Model.cpp @@ -67,7 +67,8 @@ void Model::LoadModelFromFile(const char* filePath) std::vector materials; std::string warn, err; - CC_ASSERT(tinyobj::LoadObj(&attrib, &shapes, &materials, &warn, &err, filePath), warn + err); + CC_ASSERT(tinyobj::LoadObj(&attrib, &shapes, &materials, &warn, &err, filePath), + (warn + err).c_str()); std::vector objVertices; std::vector objIndices; diff --git a/engine/render/renderer/pass/RenderPass.cpp b/engine/render/renderer/pass/RenderPass.cpp index 6bd38a85..a0026f61 100644 --- a/engine/render/renderer/pass/RenderPass.cpp +++ b/engine/render/renderer/pass/RenderPass.cpp @@ -69,7 +69,7 @@ void RenderPass::Initialise(const RenderPass::Config& config) CC_ASSERT( vkCreateRenderPass(device, &renderPassCreateInfo, nullptr, OUT & renderPass) == VK_SUCCESS, - "Failed to create render pass!") + "Failed to create render pass!"); } void RenderPass::Initialise(RenderPass& renderpass, const RenderPass::Config& config) diff --git a/engine/render/renderer/pipeline/Pipeline.cpp b/engine/render/renderer/pipeline/Pipeline.cpp index e453943a..cd95b101 100644 --- a/engine/render/renderer/pipeline/Pipeline.cpp +++ b/engine/render/renderer/pipeline/Pipeline.cpp @@ -38,7 +38,7 @@ Utils::Array Pipeline::ReadFile(const char* filePath) // Read the file as binary and consume the entire file. std::ifstream file {filePath, std::ios::ate | std::ios::binary}; - CC_ASSERT(file.is_open(), std::string("Could not find file: ") + filePath); + CC_ASSERT(file.is_open(), (std::string("Could not find file: ") + filePath).c_str()); // Since we consumed the entire file, we can tell the size by checking where // the file stream is reading from (which presumably is at the end of the file). @@ -138,7 +138,7 @@ void Pipeline::CreateGraphicsPipeline(const PipelineConfig::ShaderConfig* shader &pipelineCreateInfo, nullptr, OUT & graphicsPipeline) == VK_SUCCESS, - "Failed to create graphics pipeline!") + "Failed to create graphics pipeline!"); } void Pipeline::RecreatePipeline(const PipelineConfig::ShaderConfig* shaders, diff --git a/engine/render/renderer/swapchain/Swapchain.cpp b/engine/render/renderer/swapchain/Swapchain.cpp index 68de527d..5a4e8ee4 100644 --- a/engine/render/renderer/swapchain/Swapchain.cpp +++ b/engine/render/renderer/swapchain/Swapchain.cpp @@ -166,7 +166,7 @@ void SwapChain::CreateSwapChain() CC_ASSERT( vkCreateSwapchainKHR(device.Device(), &createInfo, nullptr, OUT & swapChain) == VK_SUCCESS, - "Failed to create Swapchain!") + "Failed to create Swapchain!"); swapchainImages = FrameImages(&device, surfaceFormat.format); @@ -277,7 +277,7 @@ void SwapChain::CreateSyncObjects() OUT & renderFinishedSemaphores[i]) == VK_SUCCESS && vkCreateFence(device.Device(), &fenceInfo, nullptr, OUT & inFlightFences[i]) == VK_SUCCESS, - "Failed to create synchronization objects fora frame!") + "Failed to create synchronization objects fora frame!"); } }