5 #ifndef FLUTTER_IMPELLER_RENDERER_SHADER_STAGE_COMPATIBILITY_CHECKER_H_
6 #define FLUTTER_IMPELLER_RENDERER_SHADER_STAGE_COMPATIBILITY_CHECKER_H_
17 template <
typename VertexShaderT,
typename FragmentShaderT>
22 return *str1 == *str2 &&
29 constexpr
size_t num_outputs = VertexShaderT::kAllShaderStageOutputs.size();
30 constexpr
size_t num_inputs = FragmentShaderT::kAllShaderStageInputs.size();
32 if (num_inputs > num_outputs) {
36 for (
size_t i = 0; i < num_inputs; ++i) {
38 FragmentShaderT::kAllShaderStageInputs[i];
39 for (
size_t j = 0; j < num_outputs; ++j) {
41 VertexShaderT::kAllShaderStageOutputs[j];
44 input_slot->
set != output_slot->
set ||
46 input_slot->
type != output_slot->
type ||
64 struct ClipVertexShader;
65 struct SolidFillVertexShader;
67 template <
typename FragmentShaderT>
70 static constexpr
bool Check() {
return true; }
72 template <
typename FragmentShaderT>
75 static constexpr
bool Check() {
return true; }
78 #endif // FLUTTER_IMPELLER_RENDERER_SHADER_STAGE_COMPATIBILITY_CHECKER_H_