blob: 0c4485754dce01f8e7f493f13e173506465cc624 [file] [log] [blame]
Ryan Harrisondbc13af2022-02-21 15:19:07 +00001// 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#include "src/tint/ast/multisampled_texture.h"
16
17#include "src/tint/program_builder.h"
18
19TINT_INSTANTIATE_TYPEINFO(tint::ast::MultisampledTexture);
20
dan sinclair34323ac2022-04-07 18:39:35 +000021namespace tint::ast {
Ryan Harrisondbc13af2022-02-21 15:19:07 +000022
23MultisampledTexture::MultisampledTexture(ProgramID pid,
Ben Clayton4a92a3c2022-07-18 20:50:02 +000024 NodeID nid,
Ryan Harrisondbc13af2022-02-21 15:19:07 +000025 const Source& src,
26 TextureDimension d,
27 const Type* ty)
Ben Clayton4a92a3c2022-07-18 20:50:02 +000028 : Base(pid, nid, src, d), type(ty) {
dan sinclair41e4d9a2022-05-01 14:40:55 +000029 TINT_ASSERT(AST, type);
Ryan Harrisondbc13af2022-02-21 15:19:07 +000030}
31
32MultisampledTexture::MultisampledTexture(MultisampledTexture&&) = default;
33
34MultisampledTexture::~MultisampledTexture() = default;
35
dan sinclair41e4d9a2022-05-01 14:40:55 +000036std::string MultisampledTexture::FriendlyName(const SymbolTable& symbols) const {
37 std::ostringstream out;
38 out << "texture_multisampled_" << dim << "<" << type->FriendlyName(symbols) << ">";
39 return out.str();
Ryan Harrisondbc13af2022-02-21 15:19:07 +000040}
41
42const MultisampledTexture* MultisampledTexture::Clone(CloneContext* ctx) const {
dan sinclair41e4d9a2022-05-01 14:40:55 +000043 // Clone arguments outside of create() call to have deterministic ordering
44 auto src = ctx->Clone(source);
45 auto* ty = ctx->Clone(type);
46 return ctx->dst->create<MultisampledTexture>(src, dim, ty);
Ryan Harrisondbc13af2022-02-21 15:19:07 +000047}
48
dan sinclair34323ac2022-04-07 18:39:35 +000049} // namespace tint::ast