From 7fdb8687903821a48f25f32041204e7a066f0a3b Mon Sep 17 00:00:00 2001 From: Alejandro Saucedo Date: Wed, 21 Jul 2021 08:08:05 +0100 Subject: [PATCH] Updated to simplify logic of shader cli --- test/utils/kompute_test/Shader.cpp | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/test/utils/kompute_test/Shader.cpp b/test/utils/kompute_test/Shader.cpp index a4791432e..0e5517477 100644 --- a/test/utils/kompute_test/Shader.cpp +++ b/test/utils/kompute_test/Shader.cpp @@ -9,19 +9,11 @@ std::vector Shader::compileSource( const std::string& source) { - std::string cmd = "glslc -fshader-stage=compute -o tmp_kp_shader.comp.spv - << END\n" + source + "\nEND"; - system(cmd.c_str()); - - std::ifstream fileStream("tmp_kp_shader.comp.spv", - std::ios::binary | std::ios::in | std::ios::ate); - - size_t shaderFileSize = fileStream.tellg(); - fileStream.seekg(0, std::ios::beg); - char* shaderDataRaw = new char[shaderFileSize]; - fileStream.read(shaderDataRaw, shaderFileSize); - fileStream.close(); - std::vector tmpResult = {(uint32_t*)shaderDataRaw, (uint32_t*)(shaderDataRaw + shaderFileSize)}; - return tmpResult; + system(std::string("glslc -fshader-stage=compute -o tmp_kp_shader.comp.spv - << END\n" + source + "\nEND").c_str()); + std::ifstream fileStream("tmp_kp_shader.comp.spv", std::ios::binary); + std::vector buffer; + buffer.insert(buffer.begin(), std::istreambuf_iterator(fileStream), {}); + return {(uint32_t*)buffer.data(), (uint32_t*)(buffer.data() + buffer.size())}; } }