1 // 2 // Copyright 2020 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 // DriverUniformMetal: 7 // Struct defining the default driver uniforms for direct and SpirV based ANGLE translation 8 // 9 10 #ifndef LIBANGLE_RENDERER_METAL_DRIVERUNIFORMMETAL_H_ 11 #define LIBANGLE_RENDERER_METAL_DRIVERUNIFORMMETAL_H_ 12 13 #include "compiler/translator/tree_util/DriverUniform.h" 14 15 namespace sh 16 { 17 18 class DriverUniformMetal : public DriverUniform 19 { 20 public: DriverUniformMetal(DriverUniformMode mode)21 DriverUniformMetal(DriverUniformMode mode) : DriverUniform(mode) {} DriverUniformMetal()22 DriverUniformMetal() : DriverUniform(DriverUniformMode::InterfaceBlock) {} ~DriverUniformMetal()23 ~DriverUniformMetal() override {} 24 25 TIntermBinary *getHalfRenderAreaRef() const override; 26 TIntermBinary *getFlipXYRef() const override; 27 TIntermBinary *getNegFlipXYRef() const override; 28 TIntermSwizzle *getNegFlipYRef() const override; 29 TIntermBinary *getCoverageMaskFieldRef() const; 30 31 protected: 32 TFieldList *createUniformFields(TSymbolTable *symbolTable) override; 33 }; 34 35 } // namespace sh 36 37 #endif /* LIBANGLE_RENDERER_METAL_DRIVERUNIFORMMETAL_H_ */ 38