1 // 2 // Copyright (c) 2019 The ANGLE Project Authors. All rights reserved. 3 // Use of this source code is governed by a BSD-style license that can be 4 // found in the LICENSE file. 5 // 6 // TOutputVulkanGLSLForMetal: 7 // This is a special version Vulkan GLSL output that will make some special 8 // considerations for Metal backend limitations. 9 // 10 11 #include "compiler/translator/OutputVulkanGLSL.h" 12 13 namespace sh 14 { 15 16 class TOutputVulkanGLSLForMetal : public TOutputVulkanGLSL 17 { 18 public: 19 TOutputVulkanGLSLForMetal(TInfoSinkBase &objSink, 20 ShArrayIndexClampingStrategy clampingStrategy, 21 ShHashFunction64 hashFunction, 22 NameMap &nameMap, 23 TSymbolTable *symbolTable, 24 sh::GLenum shaderType, 25 int shaderVersion, 26 ShShaderOutput output, 27 ShCompileOptions compileOptions); 28 29 static void RemoveInvariantForTest(bool remove); 30 31 protected: 32 bool visitGlobalQualifierDeclaration(Visit visit, 33 TIntermGlobalQualifierDeclaration *node) override; 34 void writeVariableType(const TType &type, 35 const TSymbol *symbol, 36 bool isFunctionArgument) override; 37 }; 38 39 } // namespace sh 40