Flutter Impeller
pipeline_key.h
Go to the documentation of this file.
1
// Copyright 2013 The Flutter Authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#pragma once
6
7
#include "flutter/fml/hash_combine.h"
8
9
namespace
impeller
{
10
namespace
scene {
11
12
enum class
GeometryType
{
13
kUnskinned
= 0,
14
kSkinned
= 1,
15
kLastType
=
kSkinned
,
16
};
17
enum class
MaterialType
{
18
kUnlit
= 0,
19
kLastType
=
kUnlit
,
20
};
21
22
struct
PipelineKey
{
23
GeometryType
geometry_type
=
GeometryType::kUnskinned
;
24
MaterialType
material_type
=
MaterialType::kUnlit
;
25
26
struct
Hash
{
27
constexpr std::size_t
operator()
(
const
PipelineKey
& o)
const
{
28
return
fml::HashCombine(o.
geometry_type
, o.
material_type
);
29
}
30
};
31
32
struct
Equal
{
33
constexpr
bool
operator()
(
const
PipelineKey
& lhs,
34
const
PipelineKey
& rhs)
const
{
35
return
lhs.
geometry_type
== rhs.
geometry_type
&&
36
lhs.
material_type
== rhs.
material_type
;
37
}
38
};
39
};
40
41
}
// namespace scene
42
}
// namespace impeller
impeller::scene::GeometryType::kUnskinned
@ kUnskinned
impeller::scene::PipelineKey::Equal::operator()
constexpr bool operator()(const PipelineKey &lhs, const PipelineKey &rhs) const
Definition:
pipeline_key.h:33
impeller::scene::PipelineKey::Hash
Definition:
pipeline_key.h:26
impeller::scene::GeometryType::kLastType
@ kLastType
impeller::scene::PipelineKey
Definition:
pipeline_key.h:22
impeller::scene::MaterialType
MaterialType
Definition:
pipeline_key.h:17
impeller::scene::PipelineKey::material_type
MaterialType material_type
Definition:
pipeline_key.h:24
impeller::scene::MaterialType::kLastType
@ kLastType
impeller::scene::MaterialType::kUnlit
@ kUnlit
impeller::scene::GeometryType
GeometryType
Definition:
pipeline_key.h:12
impeller::scene::GeometryType::kSkinned
@ kSkinned
impeller::scene::PipelineKey::Equal
Definition:
pipeline_key.h:32
impeller::scene::PipelineKey::Hash::operator()
constexpr std::size_t operator()(const PipelineKey &o) const
Definition:
pipeline_key.h:27
impeller::scene::PipelineKey::geometry_type
GeometryType geometry_type
Definition:
pipeline_key.h:23
impeller
Definition:
aiks_context.cc:10
impeller
scene
pipeline_key.h
Generated by
1.8.17