| Flutter Impeller |

runtime_types.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 <cstddef>
8 #include <optional>
9 #include <string>
10
11 namespace impeller {
12
13 enum RuntimeUniformType {
14 kBoolean,
15 kSignedByte,
16 kUnsignedByte,
17 kSignedShort,
18 kUnsignedShort,
19 kSignedInt,
20 kUnsignedInt,
21 kSignedInt64,
22 kUnsignedInt64,
23 kHalfFloat,
24 kFloat,
25 kDouble,
26 kSampledImage,
27 };
28
29 enum class RuntimeShaderStage {
30 kVertex,
31 kFragment,
32 kCompute,
33 kTessellationControl,
34 kTessellationEvaluation,
35 };
36
37 struct RuntimeUniformDimensions {
38 size_t rows = 0;
39 size_t cols = 0;
40 };
41
42 struct RuntimeUniformDescription {
43 std::string name;
44 size_t location = 0u;
45 RuntimeUniformType type = RuntimeUniformType::kFloat;
46 RuntimeUniformDimensions dimensions;
47 size_t bit_width;
48 std::optional<size_t> array_elements;
49
50 /// @brief Computes the total number of bytes that this uniform requires.
51 size_t GetSize() const;
52 };
53
54 } // namespace impeller
impeller::RuntimeUniformDescription::GetSize
size_t GetSize() const
Computes the total number of bytes that this uniform requires.
Definition: runtime_types.cc:9
impeller::RuntimeUniformDescription
Definition: runtime_types.h:42
impeller::kBoolean
@ kBoolean
Definition: runtime_types.h:14
impeller::kFloat
@ kFloat
Definition: runtime_types.h:24
impeller::RuntimeShaderStage
RuntimeShaderStage
Definition: runtime_types.h:29
impeller::kUnsignedShort
@ kUnsignedShort
Definition: runtime_types.h:18
impeller::RuntimeUniformDimensions::cols
size_t cols
Definition: runtime_types.h:39
impeller::RuntimeUniformDescription::dimensions
RuntimeUniformDimensions dimensions
Definition: runtime_types.h:46
impeller::kSignedByte
@ kSignedByte
Definition: runtime_types.h:15
impeller::RuntimeUniformDimensions::rows
size_t rows
Definition: runtime_types.h:38
impeller::kSampledImage
@ kSampledImage
Definition: runtime_types.h:26
impeller::RuntimeUniformDimensions
Definition: runtime_types.h:37
impeller::RuntimeShaderStage::kVertex
@ kVertex
impeller::kSignedInt
@ kSignedInt
Definition: runtime_types.h:19
impeller::RuntimeShaderStage::kFragment
@ kFragment
impeller::RuntimeShaderStage::kTessellationEvaluation
@ kTessellationEvaluation
impeller::RuntimeUniformType
RuntimeUniformType
Definition: runtime_types.h:13
impeller::RuntimeUniformDescription::name
std::string name
Definition: runtime_types.h:43
impeller::kUnsignedByte
@ kUnsignedByte
Definition: runtime_types.h:16
impeller::kUnsignedInt64
@ kUnsignedInt64
Definition: runtime_types.h:22
impeller::kHalfFloat
@ kHalfFloat
Definition: runtime_types.h:23
impeller::kUnsignedInt
@ kUnsignedInt
Definition: runtime_types.h:20
impeller::RuntimeUniformDescription::type
RuntimeUniformType type
Definition: runtime_types.h:45
impeller::kSignedShort
@ kSignedShort
Definition: runtime_types.h:17
impeller::RuntimeUniformDescription::location
size_t location
Definition: runtime_types.h:44
impeller::RuntimeUniformDescription::bit_width
size_t bit_width
Definition: runtime_types.h:47
impeller::kDouble
@ kDouble
Definition: runtime_types.h:25
impeller::kSignedInt64
@ kSignedInt64
Definition: runtime_types.h:21
impeller::RuntimeShaderStage::kCompute
@ kCompute
impeller::RuntimeUniformDescription::array_elements
std::optional< size_t > array_elements
Definition: runtime_types.h:48
impeller::RuntimeShaderStage::kTessellationControl
@ kTessellationControl
impeller
Definition: aiks_context.cc:10