From: Mike Schuchardt Date: Wed, 6 Dec 2017 20:31:29 +0000 (-0700) Subject: layers: VS2013 compatibility X-Git-Tag: upstream/1.1.92~592 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4da101e9745de2a822934de4fb54224b57b2de16;p=platform%2Fupstream%2FVulkan-Tools.git layers: VS2013 compatibility Remove all usages of constexpr to restore compatibility with Visual Studio 2013. Also make a handful of other minor edits where the VS2013 compiler was reporting errors. Change-Id: I3c426bea460a4a902ab306b01deb1d76d60f5fa2 --- diff --git a/layers/parameter_validation_utils.cpp b/layers/parameter_validation_utils.cpp index 1efb0c8..b299b02 100644 --- a/layers/parameter_validation_utils.cpp +++ b/layers/parameter_validation_utils.cpp @@ -1170,11 +1170,11 @@ bool pv_vkCreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache "is VK_FALSE, pCreateInfos[%d].pMultisampleState must not be NULL. %s", i, i, validation_error_map[VALIDATION_ERROR_096005de]); } else { - constexpr const VkStructureType valid_next_stypes[] = { + const VkStructureType valid_next_stypes[] = { LvlTypeMap::kSType, LvlTypeMap::kSType, LvlTypeMap::kSType}; - constexpr const char *valid_struct_names = + const char *valid_struct_names = "VkPipelineCoverageModulationStateCreateInfoNV, " "VkPipelineCoverageToColorStateCreateInfoNV, " "VkPipelineSampleLocationsStateCreateInfoEXT"; diff --git a/scripts/helper_file_generator.py b/scripts/helper_file_generator.py index 43ec4f4..4b1ddc6 100644 --- a/scripts/helper_file_generator.py +++ b/scripts/helper_file_generator.py @@ -920,12 +920,9 @@ class HelperFileOutputGenerator(OutputGenerator): fprefix = 'lvl_' typemap = prefix + 'TypeMap' idmap = prefix + 'STypeMap' - name_member = 'kName' type_member = 'Type' id_member = 'kSType' - decl_prefix ='constexpr static' - char_decl = decl_prefix + ' const char *' - id_decl = decl_prefix + ' const VkStructureType ' + id_decl = 'static const VkStructureType ' generic_header = prefix + 'GenericHeader' typename_func = fprefix + 'typename' idname_func = fprefix + 'stype_name' @@ -934,11 +931,10 @@ class HelperFileOutputGenerator(OutputGenerator): explanatory_comment = '\n'.join(( '// These empty generic templates are specialized for each type with sType', '// members and for each sType -- providing a two way map between structure', - '// types and sTypes as well as a kName stringification for convenience')) + '// types and sTypes')) empty_typemap = 'template struct ' + typemap + ' {};' typemap_format = 'template <> struct {template}<{typename}> {{\n' - typemap_format += ' {char_decl}{name} = "{typename}";\n' typemap_format += ' {id_decl}{id_member} = {id_value};\n' typemap_format += '}};\n' @@ -946,7 +942,6 @@ class HelperFileOutputGenerator(OutputGenerator): idmap_format = ''.join(( 'template <> struct {template}<{id_value}> {{\n', ' typedef {typename} {typedef};\n', - ' {char_decl}{name} = "{id_value}";\n', '}};\n')) # Define the utilities (here so any renaming stays consistent), if this grows large, refactor to a fixed .h file @@ -971,14 +966,7 @@ class HelperFileOutputGenerator(OutputGenerator): ' }}', ' return found;', '}}', - '', - '// Convenience functions for accessing the other mapped objects name field', - 'template constexpr const char *{idname_func}() {{', - ' return {id_map}<{type_map}::{id_member}>::{name_member};', - '}}', - 'template constexpr const char *{typename_func}() {{', - ' return {type_map}::{type_member}>::{name_member};', - '}}')) + '')) code = [] code.append('\n'.join(( @@ -987,7 +975,7 @@ class HelperFileOutputGenerator(OutputGenerator): explanatory_comment, '', empty_idmap, empty_typemap, '', - utilities_format.format(name_member=name_member, id_member=id_member, id_map=idmap, type_map=typemap, + utilities_format.format(id_member=id_member, id_map=idmap, type_map=typemap, type_member=type_member, header=generic_header, typename_func=typename_func, idname_func=idname_func, find_func=find_func), '' ))) @@ -1005,18 +993,12 @@ class HelperFileOutputGenerator(OutputGenerator): code.append('// Map type {} to id {}'.format(typename, info.value)) code.append(typemap_format.format(template=typemap, typename=typename, id_value=info.value, - char_decl=char_decl, id_decl=id_decl, name=name_member, id_member=id_member)) - code.append(idmap_format.format(template=idmap, typename=typename, id_value=info.value, char_decl=char_decl, typedef=type_member, name=name_member)) + id_decl=id_decl, id_member=id_member)) + code.append(idmap_format.format(template=idmap, typename=typename, id_value=info.value, typedef=type_member)) if item.ifdef_protect != None: code.append('#endif // %s' % item.ifdef_protect) - #for typename, info in self.structTypes.items(): - # code.append("// Map type {} to id {}".format(typename, info.value)) - # code.append(typemap_format.format(template=typemap, typename=typename, id_value=info.value, - # char_decl=char_decl, id_decl=id_decl, name=name_member, id_member=id_member)) - # code.append(idmap_format.format(template=idmap, typename=typename, id_value=info.value, char_decl=char_decl, typedef=type_member, name=name_member)) - return "\n".join(code) #