| 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 "impeller/entity/advanced_blend.frag.h"
9 #include "impeller/entity/advanced_blend.vert.h"
10 #include "impeller/entity/border_mask_blur.frag.h"
11 #include "impeller/entity/circle.frag.h"
12 #include "impeller/entity/circle.vert.h"
13 #include "impeller/entity/clip.frag.h"
14 #include "impeller/entity/clip.vert.h"
15 #include "impeller/entity/color_matrix_color_filter.frag.h"
16 #include "impeller/entity/conical_gradient_fill_conical.frag.h"
17 #include "impeller/entity/conical_gradient_fill_radial.frag.h"
18 #include "impeller/entity/conical_gradient_fill_strip.frag.h"
19 #include "impeller/entity/conical_gradient_fill_strip_radial.frag.h"
20 #include "impeller/entity/conical_gradient_ssbo_fill.frag.h"
21 #include "impeller/entity/conical_gradient_uniform_fill_conical.frag.h"
22 #include "impeller/entity/conical_gradient_uniform_fill_radial.frag.h"
23 #include "impeller/entity/conical_gradient_uniform_fill_strip.frag.h"
24 #include "impeller/entity/conical_gradient_uniform_fill_strip_radial.frag.h"
25 #include "impeller/entity/fast_gradient.frag.h"
26 #include "impeller/entity/fast_gradient.vert.h"
27 #include "impeller/entity/filter_position.vert.h"
28 #include "impeller/entity/filter_position_uv.vert.h"
29 #include "impeller/entity/framebuffer_blend.frag.h"
30 #include "impeller/entity/framebuffer_blend.vert.h"
31 #include "impeller/entity/gaussian.frag.h"
32 #include "impeller/entity/glyph_atlas.frag.h"
33 #include "impeller/entity/glyph_atlas.vert.h"
34 #include "impeller/entity/gradient_fill.vert.h"
35 #include "impeller/entity/line.frag.h"
36 #include "impeller/entity/line.vert.h"
37 #include "impeller/entity/linear_gradient_fill.frag.h"
38 #include "impeller/entity/linear_gradient_ssbo_fill.frag.h"
39 #include "impeller/entity/linear_gradient_uniform_fill.frag.h"
40 #include "impeller/entity/linear_to_srgb_filter.frag.h"
41 #include "impeller/entity/morphology_filter.frag.h"
42 #include "impeller/entity/porter_duff_blend.frag.h"
43 #include "impeller/entity/porter_duff_blend.vert.h"
44 #include "impeller/entity/radial_gradient_fill.frag.h"
45 #include "impeller/entity/radial_gradient_ssbo_fill.frag.h"
46 #include "impeller/entity/radial_gradient_uniform_fill.frag.h"
47 #include "impeller/entity/rrect_blur.frag.h"
48 #include "impeller/entity/rrect_like_blur.vert.h"
49 #include "impeller/entity/rsuperellipse_blur.frag.h"
50 #include "impeller/entity/solid_fill.frag.h"
51 #include "impeller/entity/solid_fill.vert.h"
52 #include "impeller/entity/srgb_to_linear_filter.frag.h"
53 #include "impeller/entity/sweep_gradient_fill.frag.h"
54 #include "impeller/entity/sweep_gradient_ssbo_fill.frag.h"
55 #include "impeller/entity/sweep_gradient_uniform_fill.frag.h"
56 #include "impeller/entity/texture_downsample.frag.h"
57 #include "impeller/entity/texture_fill.frag.h"
58 #include "impeller/entity/texture_fill.vert.h"
59 #include "impeller/entity/texture_fill_strict_src.frag.h"
60 #include "impeller/entity/texture_uv_fill.vert.h"
61 #include "impeller/entity/tiled_texture_fill.frag.h"
62 #include "impeller/entity/vertices_uber_1.frag.h"
63 #include "impeller/entity/vertices_uber_2.frag.h"
64 #include "impeller/entity/yuv_to_rgb_filter.frag.h"
65 #include "impeller/renderer/pipeline.h"
66
67 #ifdef IMPELLER_ENABLE_OPENGLES
68 #include "impeller/entity/texture_downsample_gles.frag.h"
69 #include "impeller/entity/tiled_texture_fill_external.frag.h"
70 #endif // IMPELLER_ENABLE_OPENGLES
71
72 // TODO(gaaclarke): These should be split up into different files.
73 namespace impeller {
74
75 template <typename T>
76 using GradientPipelineHandle =
77 RenderPipelineHandle<GradientFillVertexShader, T>;
78
79 using AdvancedBlendPipelineHandle =
80 RenderPipelineHandle<AdvancedBlendVertexShader,
81 AdvancedBlendFragmentShader>;
82
83 using FramebufferBlendPipelineHandle =
84 RenderPipelineHandle<FramebufferBlendVertexShader,
85 FramebufferBlendFragmentShader>;
86
87 // clang-format off
88 using BlendColorBurnPipeline = AdvancedBlendPipelineHandle;
89 using BlendColorDodgePipeline = AdvancedBlendPipelineHandle;
90 using BlendColorPipeline = AdvancedBlendPipelineHandle;
91 using BlendDarkenPipeline = AdvancedBlendPipelineHandle;
92 using BlendDifferencePipeline = AdvancedBlendPipelineHandle;
93 using BlendExclusionPipeline = AdvancedBlendPipelineHandle;
94 using BlendHardLightPipeline = AdvancedBlendPipelineHandle;
95 using BlendHuePipeline = AdvancedBlendPipelineHandle;
96 using BlendLightenPipeline = AdvancedBlendPipelineHandle;
97 using BlendLuminosityPipeline = AdvancedBlendPipelineHandle;
98 using BlendMultiplyPipeline = AdvancedBlendPipelineHandle;
99 using BlendOverlayPipeline = AdvancedBlendPipelineHandle;
100 using BlendSaturationPipeline = AdvancedBlendPipelineHandle;
101 using BlendScreenPipeline = AdvancedBlendPipelineHandle;
102 using BlendSoftLightPipeline = AdvancedBlendPipelineHandle;
103 using BorderMaskBlurPipeline = RenderPipelineHandle<FilterPositionUvVertexShader, BorderMaskBlurFragmentShader>;
104 using CirclePipeline = RenderPipelineHandle<CircleVertexShader, CircleFragmentShader>;
105 using ClipPipeline = RenderPipelineHandle<ClipVertexShader, ClipFragmentShader>;
106 using ColorMatrixColorFilterPipeline = RenderPipelineHandle<FilterPositionUvVertexShader, ColorMatrixColorFilterFragmentShader>;
107 using ConicalGradientFillConicalPipeline = GradientPipelineHandle<ConicalGradientFillConicalFragmentShader>;
108 using ConicalGradientFillRadialPipeline = GradientPipelineHandle<ConicalGradientFillRadialFragmentShader>;
109 using ConicalGradientFillStripPipeline = GradientPipelineHandle<ConicalGradientFillStripFragmentShader>;
110 using ConicalGradientFillStripRadialPipeline = GradientPipelineHandle<ConicalGradientFillStripRadialFragmentShader>;
111 using ConicalGradientSSBOFillPipeline = GradientPipelineHandle<ConicalGradientSsboFillFragmentShader>;
112 using ConicalGradientUniformFillConicalPipeline = GradientPipelineHandle<ConicalGradientUniformFillConicalFragmentShader>;
113 using ConicalGradientUniformFillRadialPipeline = GradientPipelineHandle<ConicalGradientUniformFillRadialFragmentShader>;
114 using ConicalGradientUniformFillStripPipeline = GradientPipelineHandle<ConicalGradientUniformFillStripFragmentShader>;
115 using ConicalGradientUniformFillStripRadialPipeline = GradientPipelineHandle<ConicalGradientUniformFillStripRadialFragmentShader>;
116 using FastGradientPipeline = RenderPipelineHandle<FastGradientVertexShader, FastGradientFragmentShader>;
117 using FramebufferBlendColorBurnPipeline = FramebufferBlendPipelineHandle;
118 using FramebufferBlendColorDodgePipeline = FramebufferBlendPipelineHandle;
119 using FramebufferBlendColorPipeline = FramebufferBlendPipelineHandle;
120 using FramebufferBlendDarkenPipeline = FramebufferBlendPipelineHandle;
121 using FramebufferBlendDifferencePipeline = FramebufferBlendPipelineHandle;
122 using FramebufferBlendExclusionPipeline = FramebufferBlendPipelineHandle;
123 using FramebufferBlendHardLightPipeline = FramebufferBlendPipelineHandle;
124 using FramebufferBlendHuePipeline = FramebufferBlendPipelineHandle;
125 using FramebufferBlendLightenPipeline = FramebufferBlendPipelineHandle;
126 using FramebufferBlendLuminosityPipeline = FramebufferBlendPipelineHandle;
127 using FramebufferBlendMultiplyPipeline = FramebufferBlendPipelineHandle;
128 using FramebufferBlendOverlayPipeline = FramebufferBlendPipelineHandle;
129 using FramebufferBlendSaturationPipeline = FramebufferBlendPipelineHandle;
130 using FramebufferBlendScreenPipeline = FramebufferBlendPipelineHandle;
131 using FramebufferBlendSoftLightPipeline = FramebufferBlendPipelineHandle;
132 using GaussianBlurPipeline = RenderPipelineHandle<FilterPositionUvVertexShader, GaussianFragmentShader>;
133 using GlyphAtlasPipeline = RenderPipelineHandle<GlyphAtlasVertexShader, GlyphAtlasFragmentShader>;
134 using LinePipeline = RenderPipelineHandle<LineVertexShader, LineFragmentShader>;
135 using LinearGradientFillPipeline = GradientPipelineHandle<LinearGradientFillFragmentShader>;
136 using LinearGradientSSBOFillPipeline = GradientPipelineHandle<LinearGradientSsboFillFragmentShader>;
137 using LinearGradientUniformFillPipeline = GradientPipelineHandle<LinearGradientUniformFillFragmentShader>;
138 using LinearToSrgbFilterPipeline = RenderPipelineHandle<FilterPositionVertexShader, LinearToSrgbFilterFragmentShader>;
139 using MorphologyFilterPipeline = RenderPipelineHandle<FilterPositionUvVertexShader, MorphologyFilterFragmentShader>;
140 using PorterDuffBlendPipeline = RenderPipelineHandle<PorterDuffBlendVertexShader, PorterDuffBlendFragmentShader>;
141 using RadialGradientFillPipeline = GradientPipelineHandle<RadialGradientFillFragmentShader>;
142 using RadialGradientSSBOFillPipeline = GradientPipelineHandle<RadialGradientSsboFillFragmentShader>;
143 using RadialGradientUniformFillPipeline = GradientPipelineHandle<RadialGradientUniformFillFragmentShader>;
144 using RRectBlurPipeline = RenderPipelineHandle<RrectLikeBlurVertexShader, RrectBlurFragmentShader>;
145 using RSuperellipseBlurPipeline = RenderPipelineHandle<RrectLikeBlurVertexShader, RsuperellipseBlurFragmentShader>;
146 using SolidFillPipeline = RenderPipelineHandle<SolidFillVertexShader, SolidFillFragmentShader>;
147 using SrgbToLinearFilterPipeline = RenderPipelineHandle<FilterPositionVertexShader, SrgbToLinearFilterFragmentShader>;
148 using SweepGradientFillPipeline = GradientPipelineHandle<SweepGradientFillFragmentShader>;
149 using SweepGradientSSBOFillPipeline = GradientPipelineHandle<SweepGradientSsboFillFragmentShader>;
150 using SweepGradientUniformFillPipeline = GradientPipelineHandle<SweepGradientUniformFillFragmentShader>;
151 using TextureDownsamplePipeline = RenderPipelineHandle<TextureFillVertexShader, TextureDownsampleFragmentShader>;
152 using TexturePipeline = RenderPipelineHandle<TextureFillVertexShader, TextureFillFragmentShader>;
153 using TextureStrictSrcPipeline = RenderPipelineHandle<TextureFillVertexShader, TextureFillStrictSrcFragmentShader>;
154 using TiledTexturePipeline = RenderPipelineHandle<TextureUvFillVertexShader, TiledTextureFillFragmentShader>;
155 using VerticesUber1Shader = RenderPipelineHandle<PorterDuffBlendVertexShader, VerticesUber1FragmentShader>;
156 using VerticesUber2Shader = RenderPipelineHandle<PorterDuffBlendVertexShader, VerticesUber2FragmentShader>;
157 using YUVToRGBFilterPipeline = RenderPipelineHandle<FilterPositionVertexShader, YuvToRgbFilterFragmentShader>;
158 // clang-format on
159
160 #ifdef IMPELLER_ENABLE_OPENGLES
161 using TiledTextureExternalPipeline =
162 RenderPipelineHandle<TextureFillVertexShader,
163 TiledTextureFillExternalFragmentShader>;
164 using TiledTextureUvExternalPipeline =
165 RenderPipelineHandle<TextureUvFillVertexShader,
166 TiledTextureFillExternalFragmentShader>;
167 using TextureDownsampleGlesPipeline =
168 RenderPipelineHandle<TextureFillVertexShader,
169 TextureDownsampleGlesFragmentShader>;
170 #endif // IMPELLER_ENABLE_OPENGLES
171 } // namespace impeller
172
173 #endif // FLUTTER_IMPELLER_ENTITY_CONTENTS_PIPELINES_H_
impeller::RenderPipelineHandle
Definition: pipeline.h:161
impeller
Definition: allocation.cc:12
impeller::AdvancedBlendPipelineHandle
RenderPipelineHandle< AdvancedBlendVertexShader, AdvancedBlendFragmentShader > AdvancedBlendPipelineHandle
Definition: pipelines.h:81
impeller::FramebufferBlendPipelineHandle
RenderPipelineHandle< FramebufferBlendVertexShader, FramebufferBlendFragmentShader > FramebufferBlendPipelineHandle
Definition: pipelines.h:85
pipeline.h