summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/compiler/translator/CodeGen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/angle/src/compiler/translator/CodeGen.cpp')
-rw-r--r--src/3rdparty/angle/src/compiler/translator/CodeGen.cpp81
1 files changed, 40 insertions, 41 deletions
diff --git a/src/3rdparty/angle/src/compiler/translator/CodeGen.cpp b/src/3rdparty/angle/src/compiler/translator/CodeGen.cpp
index f099bccf15..3e25cc2339 100644
--- a/src/3rdparty/angle/src/compiler/translator/CodeGen.cpp
+++ b/src/3rdparty/angle/src/compiler/translator/CodeGen.cpp
@@ -6,71 +6,70 @@
#ifdef ANGLE_ENABLE_ESSL
#include "compiler/translator/TranslatorESSL.h"
-#endif
+#endif // ANGLE_ENABLE_ESSL
#ifdef ANGLE_ENABLE_GLSL
#include "compiler/translator/TranslatorGLSL.h"
-#endif
+#endif // ANGLE_ENABLE_GLSL
#ifdef ANGLE_ENABLE_HLSL
#include "compiler/translator/TranslatorHLSL.h"
-#endif // ANGLE_ENABLE_HLSL
+#endif // ANGLE_ENABLE_HLSL
+
+#ifdef ANGLE_ENABLE_VULKAN
+#include "compiler/translator/TranslatorVulkan.h"
+#endif // ANGLE_ENABLE_VULKAN
+
+#include "compiler/translator/util.h"
+
+namespace sh
+{
//
// This function must be provided to create the actual
// compile object used by higher level code. It returns
// a subclass of TCompiler.
//
-TCompiler* ConstructCompiler(
- sh::GLenum type, ShShaderSpec spec, ShShaderOutput output)
+TCompiler *ConstructCompiler(sh::GLenum type, ShShaderSpec spec, ShShaderOutput output)
{
- switch (output) {
- case SH_ESSL_OUTPUT:
#ifdef ANGLE_ENABLE_ESSL
+ if (IsOutputESSL(output))
+ {
return new TranslatorESSL(type, spec);
-#else
- // This compiler is not supported in this
- // configuration. Return NULL per the ShConstructCompiler API.
- return nullptr;
-#endif // ANGLE_ENABLE_ESSL
- case SH_GLSL_130_OUTPUT:
- case SH_GLSL_140_OUTPUT:
- case SH_GLSL_150_CORE_OUTPUT:
- case SH_GLSL_330_CORE_OUTPUT:
- case SH_GLSL_400_CORE_OUTPUT:
- case SH_GLSL_410_CORE_OUTPUT:
- case SH_GLSL_420_CORE_OUTPUT:
- case SH_GLSL_430_CORE_OUTPUT:
- case SH_GLSL_440_CORE_OUTPUT:
- case SH_GLSL_450_CORE_OUTPUT:
- case SH_GLSL_COMPATIBILITY_OUTPUT:
+ }
+#endif // ANGLE_ENABLE_ESSL
+
#ifdef ANGLE_ENABLE_GLSL
+ if (IsOutputGLSL(output))
+ {
return new TranslatorGLSL(type, spec, output);
-#else
- // This compiler is not supported in this
- // configuration. Return NULL per the ShConstructCompiler API.
- return nullptr;
-#endif // ANGLE_ENABLE_GLSL
- case SH_HLSL_3_0_OUTPUT:
- case SH_HLSL_4_1_OUTPUT:
- case SH_HLSL_4_0_FL9_3_OUTPUT:
+ }
+#endif // ANGLE_ENABLE_GLSL
+
#ifdef ANGLE_ENABLE_HLSL
+ if (IsOutputHLSL(output))
+ {
return new TranslatorHLSL(type, spec, output);
-#else
- // This compiler is not supported in this
- // configuration. Return NULL per the ShConstructCompiler API.
- return nullptr;
-#endif // ANGLE_ENABLE_HLSL
- default:
- // Unknown format. Return NULL per the ShConstructCompiler API.
- return nullptr;
}
+#endif // ANGLE_ENABLE_HLSL
+
+#ifdef ANGLE_ENABLE_VULKAN
+ if (IsOutputVulkan(output))
+ {
+ return new TranslatorVulkan(type, spec);
+ }
+#endif // ANGLE_ENABLE_VULKAN
+
+ // Unsupported compiler or unknown format. Return nullptr per the sh::ConstructCompiler API.
+ return nullptr;
}
//
// Delete the compiler made by ConstructCompiler
//
-void DeleteCompiler(TCompiler* compiler)
+void DeleteCompiler(TCompiler *compiler)
{
- delete compiler;
+ SafeDelete(compiler);
}
+
+} // namespace sh