mirror of
https://github.com/KhronosGroup/Vulkan-Hpp.git
synced 2024-10-14 16:32:17 +00:00
Merge pull request #91 from asuessenbach/lastOptionalDefault
Added default argument value nullptr for last Optional arguments made vk::Flags::operator bool() explicit changed vk::Flags default MaskType from uint32_t to VKFlags removed some unneeded "vk::"
This commit is contained in:
commit
eb135c594d
@ -75,7 +75,7 @@ const std::string exceptionHeader(
|
|||||||
" {\n"
|
" {\n"
|
||||||
" public:\n"
|
" public:\n"
|
||||||
" virtual const char* name() const noexcept override { return \"vk::Result\"; }\n"
|
" virtual const char* name() const noexcept override { return \"vk::Result\"; }\n"
|
||||||
" virtual std::string message(int ev) const override { return to_string(static_cast<vk::Result>(ev)); }\n"
|
" virtual std::string message(int ev) const override { return to_string(static_cast<Result>(ev)); }\n"
|
||||||
" };\n"
|
" };\n"
|
||||||
"\n"
|
"\n"
|
||||||
"#if defined(_MSC_VER) && (_MSC_VER == 1800)\n"
|
"#if defined(_MSC_VER) && (_MSC_VER == 1800)\n"
|
||||||
@ -101,7 +101,7 @@ const std::string exceptionHeader(
|
|||||||
);
|
);
|
||||||
|
|
||||||
const std::string flagsHeader(
|
const std::string flagsHeader(
|
||||||
" template <typename BitType, typename MaskType = uint32_t>\n"
|
" template <typename BitType, typename MaskType = VkFlags>\n"
|
||||||
" class Flags\n"
|
" class Flags\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" public:\n"
|
" public:\n"
|
||||||
@ -180,7 +180,7 @@ const std::string flagsHeader(
|
|||||||
" return m_mask != rhs.m_mask;\n"
|
" return m_mask != rhs.m_mask;\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
"\n"
|
"\n"
|
||||||
" operator bool() const\n"
|
" explicit operator bool() const\n"
|
||||||
" {\n"
|
" {\n"
|
||||||
" return !!m_mask;\n"
|
" return !!m_mask;\n"
|
||||||
" }\n"
|
" }\n"
|
||||||
@ -1022,7 +1022,7 @@ void readExtensionRequire(tinyxml2::XMLElement * element, VkData & vkData, std::
|
|||||||
assert(child->Attribute("name"));
|
assert(child->Attribute("name"));
|
||||||
assert(vkData.enums.find(getEnumName(child->Attribute("extends"))) != vkData.enums.end());
|
assert(vkData.enums.find(getEnumName(child->Attribute("extends"))) != vkData.enums.end());
|
||||||
assert(!!child->Attribute("bitpos") + !!child->Attribute("offset") + !!child->Attribute("value") == 1);
|
assert(!!child->Attribute("bitpos") + !!child->Attribute("offset") + !!child->Attribute("value") == 1);
|
||||||
vkData.enums[getEnumName(child->Attribute("extends"))].addEnum(child->Attribute("name"), child->Attribute("offset") ? tag : "" );
|
vkData.enums[getEnumName(child->Attribute("extends"))].addEnum(child->Attribute("name"), child->Attribute("value") ? "" : tag );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1911,6 +1911,16 @@ void writeFunctionHeader(std::ofstream & ofs, std::string const& indentation, st
|
|||||||
ofs << returnType << " " << name << "(";
|
ofs << returnType << " " << name << "(";
|
||||||
if (skippedArguments.size() + (commandData.handleCommand ? 1 : 0) < commandData.arguments.size())
|
if (skippedArguments.size() + (commandData.handleCommand ? 1 : 0) < commandData.arguments.size())
|
||||||
{
|
{
|
||||||
|
size_t lastArgument = ~0;
|
||||||
|
for (size_t i = commandData.arguments.size() - 1; i < commandData.arguments.size(); i--)
|
||||||
|
{
|
||||||
|
if (skippedArguments.find(i) == skippedArguments.end())
|
||||||
|
{
|
||||||
|
lastArgument = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ofs << " ";
|
ofs << " ";
|
||||||
bool argEncountered = false;
|
bool argEncountered = false;
|
||||||
for (size_t i = commandData.handleCommand ? 1 : 0; i < commandData.arguments.size(); i++)
|
for (size_t i = commandData.handleCommand ? 1 : 0; i < commandData.arguments.size(); i++)
|
||||||
@ -1937,7 +1947,7 @@ void writeFunctionHeader(std::ofstream & ofs, std::string const& indentation, st
|
|||||||
bool optional = commandData.arguments[i].optional && ((it == vectorParameters.end()) || (it->second == ~0));
|
bool optional = commandData.arguments[i].optional && ((it == vectorParameters.end()) || (it->second == ~0));
|
||||||
if (optional)
|
if (optional)
|
||||||
{
|
{
|
||||||
ofs << "vk::Optional<";
|
ofs << "Optional<";
|
||||||
}
|
}
|
||||||
if (vectorParameters.find(i) == vectorParameters.end())
|
if (vectorParameters.find(i) == vectorParameters.end())
|
||||||
{
|
{
|
||||||
@ -1980,6 +1990,10 @@ void writeFunctionHeader(std::ofstream & ofs, std::string const& indentation, st
|
|||||||
ofs << "> const";
|
ofs << "> const";
|
||||||
}
|
}
|
||||||
ofs << " & " << reduceName(commandData.arguments[i].name);
|
ofs << " & " << reduceName(commandData.arguments[i].name);
|
||||||
|
if (optional && (i == lastArgument))
|
||||||
|
{
|
||||||
|
ofs << " = nullptr";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
argEncountered = true;
|
argEncountered = true;
|
||||||
}
|
}
|
||||||
@ -2386,7 +2400,7 @@ void writeEnumsToString(std::ofstream & ofs, DependencyData const& dependencyDat
|
|||||||
void writeFlagsToString(std::ofstream & ofs, DependencyData const& dependencyData, EnumData const &enumData)
|
void writeFlagsToString(std::ofstream & ofs, DependencyData const& dependencyData, EnumData const &enumData)
|
||||||
{
|
{
|
||||||
enterProtect(ofs, enumData.protect);
|
enterProtect(ofs, enumData.protect);
|
||||||
std::string enumPrefix = "vk::" + *dependencyData.dependencies.begin() + "::";
|
std::string enumPrefix = *dependencyData.dependencies.begin() + "::";
|
||||||
ofs << " inline std::string to_string(" << dependencyData.name << (enumData.members.empty() ? ")" : " value)") << std::endl
|
ofs << " inline std::string to_string(" << dependencyData.name << (enumData.members.empty() ? ")" : " value)") << std::endl
|
||||||
<< " {" << std::endl;
|
<< " {" << std::endl;
|
||||||
if (enumData.members.empty())
|
if (enumData.members.empty())
|
||||||
|
460
vulkan/vk_cpp.h
460
vulkan/vk_cpp.h
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user