Flutter Impeller
pipelines.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_ENTITY_CONTENTS_PIPELINES_H_
6 #define FLUTTER_IMPELLER_ENTITY_CONTENTS_PIPELINES_H_
7 
8 #include "flutter/fml/build_config.h"
9 #include "impeller/entity/advanced_blend.frag.h"
10 #include "impeller/entity/advanced_blend.vert.h"
11 #include "impeller/entity/border_mask_blur.frag.h"
12 #include "impeller/entity/circle.frag.h"
13 #include "impeller/entity/circle.vert.h"
14 #include "impeller/entity/clip.frag.h"
15 #include "impeller/entity/clip.vert.h"
16 #include "impeller/entity/color_matrix_color_filter.frag.h"
17 #include "impeller/entity/complex_rse.frag.h"
18 #include "impeller/entity/conical_gradient_fill_conical.frag.h"
19 #include "impeller/entity/conical_gradient_fill_radial.frag.h"
20 #include "impeller/entity/conical_gradient_fill_strip.frag.h"
21 #include "impeller/entity/conical_gradient_fill_strip_radial.frag.h"
22 #include "impeller/entity/conical_gradient_ssbo_fill.frag.h"
23 #include "impeller/entity/conical_gradient_uniform_fill_conical.frag.h"
24 #include "impeller/entity/conical_gradient_uniform_fill_radial.frag.h"
25 #include "impeller/entity/conical_gradient_uniform_fill_strip.frag.h"
26 #include "impeller/entity/conical_gradient_uniform_fill_strip_radial.frag.h"
27 #include "impeller/entity/fast_gradient.frag.h"
28 #include "impeller/entity/fast_gradient.vert.h"
29 #include "impeller/entity/filter_position.vert.h"
30 #include "impeller/entity/filter_position_uv.vert.h"
31 #include "impeller/entity/framebuffer_blend.frag.h"
32 #include "impeller/entity/framebuffer_blend.vert.h"
33 #include "impeller/entity/gaussian.frag.h"
34 #include "impeller/entity/glyph_atlas.frag.h"
35 #include "impeller/entity/glyph_atlas.vert.h"
36 #include "impeller/entity/gradient_fill.vert.h"
37 #include "impeller/entity/line.frag.h"
38 #include "impeller/entity/line.vert.h"
39 #include "impeller/entity/linear_gradient_fill.frag.h"
40 #include "impeller/entity/linear_gradient_ssbo_fill.frag.h"
41 #include "impeller/entity/linear_gradient_uniform_fill.frag.h"
42 #include "impeller/entity/linear_to_srgb_filter.frag.h"
43 #include "impeller/entity/morphology_filter.frag.h"
44 #include "impeller/entity/porter_duff_blend.frag.h"
45 #include "impeller/entity/porter_duff_blend.vert.h"
46 #include "impeller/entity/radial_gradient_fill.frag.h"
47 #include "impeller/entity/radial_gradient_ssbo_fill.frag.h"
48 #include "impeller/entity/radial_gradient_uniform_fill.frag.h"
49 #include "impeller/entity/rrect_blur.frag.h"
50 #include "impeller/entity/rrect_like_blur.vert.h"
51 #include "impeller/entity/rsuperellipse_blur.frag.h"
52 #include "impeller/entity/shadow_vertices.frag.h"
53 #include "impeller/entity/shadow_vertices.vert.h"
54 #include "impeller/entity/solid_fill.frag.h"
55 #include "impeller/entity/solid_fill.vert.h"
56 #include "impeller/entity/srgb_to_linear_filter.frag.h"
57 #include "impeller/entity/sweep_gradient_fill.frag.h"
58 #include "impeller/entity/sweep_gradient_ssbo_fill.frag.h"
59 #include "impeller/entity/sweep_gradient_uniform_fill.frag.h"
60 #include "impeller/entity/texture_downsample.frag.h"
61 #include "impeller/entity/texture_downsample_bounded.frag.h"
62 #include "impeller/entity/texture_fill.frag.h"
63 #include "impeller/entity/texture_fill.vert.h"
64 #include "impeller/entity/texture_fill_strict_src.frag.h"
65 #include "impeller/entity/texture_uv_fill.vert.h"
66 #include "impeller/entity/tiled_texture_fill.frag.h"
67 #include "impeller/entity/uber_sdf.frag.h"
68 #include "impeller/entity/vertices_uber_1.frag.h"
69 #include "impeller/entity/vertices_uber_2.frag.h"
70 #include "impeller/entity/yuv_to_rgb_filter.frag.h"
72 
73 #ifdef IMPELLER_ENABLE_OPENGLES
74 #include "impeller/entity/texture_downsample_gles.frag.h"
75 #include "impeller/entity/tiled_texture_fill_external.frag.h"
76 #endif // IMPELLER_ENABLE_OPENGLES
77 
78 // TODO(gaaclarke): These should be split up into different files.
79 namespace impeller {
80 
81 template <typename T>
84 
86  RenderPipelineHandle<AdvancedBlendVertexShader,
87  AdvancedBlendFragmentShader>;
88 
90  RenderPipelineHandle<FramebufferBlendVertexShader,
91  FramebufferBlendFragmentShader>;
92 
93 // clang-format off
168 // clang-format on
169 
170 #ifdef IMPELLER_ENABLE_OPENGLES
171 
172 // Web doesn't support external texture OpenGL extensions
173 #if !defined(FML_OS_EMSCRIPTEN)
174 using TiledTextureExternalPipeline =
175  RenderPipelineHandle<TextureFillVertexShader,
176  TiledTextureFillExternalFragmentShader>;
177 using TiledTextureUvExternalPipeline =
178  RenderPipelineHandle<TextureUvFillVertexShader,
179  TiledTextureFillExternalFragmentShader>;
180 #endif
181 
182 using TextureDownsampleGlesPipeline =
183  RenderPipelineHandle<TextureFillVertexShader,
184  TextureDownsampleGlesFragmentShader>;
185 #endif // IMPELLER_ENABLE_OPENGLES
186 } // namespace impeller
187 
188 #endif // FLUTTER_IMPELLER_ENTITY_CONTENTS_PIPELINES_H_
RenderPipelineHandle< AdvancedBlendVertexShader, AdvancedBlendFragmentShader > AdvancedBlendPipelineHandle
Definition: pipelines.h:87
RenderPipelineHandle< FramebufferBlendVertexShader, FramebufferBlendFragmentShader > FramebufferBlendPipelineHandle
Definition: pipelines.h:91