diff options
author | Tobias Hunger <tobias.hunger@qt.io> | 2019-04-16 16:32:08 +0200 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@qt.io> | 2019-04-16 16:32:08 +0200 |
commit | 6630937e63ae5797487b86743a7733c8ae5cc42c (patch) | |
tree | 3d53dacf6430f9099e1fb20835881205de674961 /src/3rdparty/angle/src/compiler/translator/CodeGen.cpp | |
parent | 37ed6dae00640f9cc980ffda05347c12a7eb5d7e (diff) | |
parent | c7af193d2e49e9f10b86262e63d8d13abf72b5cf (diff) |
Merge commit 'dev' into 'wip/cmake-merge'
Change-Id: I176c40d031be26a1dd1cf08843e448a660598783
Diffstat (limited to 'src/3rdparty/angle/src/compiler/translator/CodeGen.cpp')
-rw-r--r-- | src/3rdparty/angle/src/compiler/translator/CodeGen.cpp | 81 |
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 |