#include "config.h"
#include "WebMetalEnums.h"
#if ENABLE(WEBMETAL)
#include "GPULegacyEnums.h"
#include <wtf/text/WTFString.h>
namespace WebCore {
Optional<WebMetalCompareFunction> toWebMetalCompareFunction(const String& name)
{
if (equalLettersIgnoringASCIICase(name, "never"))
return WebMetalCompareFunction::Never;
if (equalLettersIgnoringASCIICase(name, "less"))
return WebMetalCompareFunction::Less;
if (equalLettersIgnoringASCIICase(name, "equal"))
return WebMetalCompareFunction::Equal;
if (equalLettersIgnoringASCIICase(name, "lessequal"))
return WebMetalCompareFunction::Lessequal;
if (equalLettersIgnoringASCIICase(name, "greater"))
return WebMetalCompareFunction::Greater;
if (equalLettersIgnoringASCIICase(name, "notequal"))
return WebMetalCompareFunction::Notequal;
if (equalLettersIgnoringASCIICase(name, "greaterequal"))
return WebMetalCompareFunction::Greaterequal;
if (equalLettersIgnoringASCIICase(name, "always"))
return WebMetalCompareFunction::Always;
ASSERT_NOT_REACHED();
return WTF::nullopt;
}
String web3DCompareFunctionName(WebMetalCompareFunction value)
{
if (value == WebMetalCompareFunction::Never)
return "never"_s;
if (value == WebMetalCompareFunction::Less)
return "less"_s;
if (value == WebMetalCompareFunction::Equal)
return "equal"_s;
if (value == WebMetalCompareFunction::Lessequal)
return "lessequal"_s;
if (value == WebMetalCompareFunction::Greater)
return "greater"_s;
if (value == WebMetalCompareFunction::Notequal)
return "notequal"_s;
if (value == WebMetalCompareFunction::Greaterequal)
return "greaterequal"_s;
if (value == WebMetalCompareFunction::Always)
return "always"_s;
ASSERT_NOT_REACHED();
return emptyString();
}
GPULegacyCompareFunction toGPULegacyCompareFunction(const WebMetalCompareFunction value)
{
if (value == WebMetalCompareFunction::Never)
return GPULegacyCompareFunction::Never;
if (value == WebMetalCompareFunction::Less)
return GPULegacyCompareFunction::Less;
if (value == WebMetalCompareFunction::Equal)
return GPULegacyCompareFunction::Equal;
if (value == WebMetalCompareFunction::Lessequal)
return GPULegacyCompareFunction::LessEqual;
if (value == WebMetalCompareFunction::Greater)
return GPULegacyCompareFunction::Greater;
if (value == WebMetalCompareFunction::Notequal)
return GPULegacyCompareFunction::NotEqual;
if (value == WebMetalCompareFunction::Greaterequal)
return GPULegacyCompareFunction::GreaterEqual;
if (value == WebMetalCompareFunction::Always)
return GPULegacyCompareFunction::Always;
ASSERT_NOT_REACHED();
return GPULegacyCompareFunction::Never;
}
}
#endif