Flutter Engine
The Flutter Engine
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#ifndef FLUTTER_IMPELLER_CORE_RUNTIME_TYPES_H_
6#define FLUTTER_IMPELLER_CORE_RUNTIME_TYPES_H_
7
8#include <cstddef>
9#include <optional>
10#include <string>
11#include <vector>
12
13namespace impeller {
14
16 kSkSL,
17 kMetal,
18 kOpenGLES,
19 kVulkan,
20};
21
26};
27
29 kVertex,
32};
33
35 size_t rows = 0;
36 size_t cols = 0;
37};
38
40 std::string name;
41 size_t location = 0u;
42 /// Location, but for Vulkan.
43 size_t binding = 0u;
46 size_t bit_width = 0u;
47 std::optional<size_t> array_elements;
48 std::vector<uint8_t> struct_layout = {};
49 size_t struct_float_count = 0u;
50
51 /// @brief Computes the total number of bytes that this uniform requires.
52 size_t GetSize() const;
53};
54
55} // namespace impeller
56
57#endif // FLUTTER_IMPELLER_CORE_RUNTIME_TYPES_H_
@ kVulkan
Definition: embedder.h:86
@ kMetal
Definition: embedder.h:85
RuntimeUniformDimensions dimensions
Definition: runtime_types.h:45
size_t GetSize() const
Computes the total number of bytes that this uniform requires.
Definition: runtime_types.cc:9
std::vector< uint8_t > struct_layout
Definition: runtime_types.h:48
std::optional< size_t > array_elements
Definition: runtime_types.h:47
size_t binding
Location, but for Vulkan.
Definition: runtime_types.h:43