1 // Copyright 2020 The Tint Authors.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #ifndef SRC_AST_TYPE_DEPTH_TEXTURE_TYPE_H_
16 #define SRC_AST_TYPE_DEPTH_TEXTURE_TYPE_H_
17 
18 #include <string>
19 
20 #include "src/ast/type/texture_type.h"
21 
22 namespace tint {
23 namespace ast {
24 namespace type {
25 
26 /// A depth texture type.
27 class DepthTextureType : public TextureType {
28  public:
29   /// Constructor
30   /// @param dim the dimensionality of the texture
31   explicit DepthTextureType(TextureDimension dim);
32   /// Move constructor
33   DepthTextureType(DepthTextureType&&);
34   ~DepthTextureType() override;
35 
36   /// @returns true if the type is a depth texture type
37   bool IsDepth() const override;
38 
39   /// @returns the name for this type
40   std::string type_name() const override;
41 };
42 
43 }  // namespace type
44 }  // namespace ast
45 }  // namespace tint
46 
47 #endif  // SRC_AST_TYPE_DEPTH_TEXTURE_TYPE_H_
48