• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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