]> git.tdb.fi Git - libs/gl.git/commitdiff
Use alternatives for some functions MSVC doesn't like
authorMikko Rasa <tdb@tdb.fi>
Sat, 4 May 2024 16:30:30 +0000 (19:30 +0300)
committerMikko Rasa <tdb@tdb.fi>
Sat, 4 May 2024 16:31:55 +0000 (19:31 +0300)
source/backends/vulkan/device_backend.cpp
source/backends/vulkan/program_backend.cpp

index 5b5f2393b669baa27cf24dd8037883a7ce4621d6..81941c8e60406d44ec52ce144030f5f80e9bda9b 100644 (file)
@@ -1,4 +1,5 @@
 #include <cstdlib>
+#include <msp/core/environ.h>
 #include <msp/graphics/vulkancontext_private.h>
 #include <msp/strings/lexicalcast.h>
 #include "device.h"
@@ -33,9 +34,9 @@ Graphics::VulkanOptions VulkanDevice::create_default_options()
        opts.enable_geometry_shader = true;
        opts.enable_tessellation_shader = true;
 #ifdef DEBUG
-       const char *disable_ptr = getenv("MSPGL_DISABLE_VALIDATION");
-       if(disable_ptr && *disable_ptr)
-               opts.enable_validation = !lexical_cast<bool>(string(disable_ptr));
+       string disable_str = getenv("MSPGL_DISABLE_VALIDATION");
+       if(!disable_str.empty())
+               opts.enable_validation = !lexical_cast<bool>(disable_str);
        else
                opts.enable_validation = true;
        opts.enable_debug_report = true;
index c422dc226f364506074caf5ec1455b0d65767a2a..dbbf4a298df698d2c7e992ae40620656e4d18bfc 100644 (file)
@@ -94,7 +94,8 @@ void VulkanProgram::add_spirv_stages(const SpirVModule &mod, const map<string, i
                stage_infos[i].sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO;
                stage_infos[i].stage = static_cast<VkShaderStageFlagBits>(stage_bit);
                stage_infos[i].module = handle_cast<::VkShaderModule>(mod.handle);
-               strcpy(name_ptr, e.name.c_str());
+               copy(e.name.begin(), e.name.end(), name_ptr);
+               name_ptr[e.name.size()] = 0;
                stage_infos[i].pName = name_ptr;
                name_ptr += e.name.size()+1;
                stage_infos[i].pSpecializationInfo = spec_info;