89 auto get_binding = [&](
const char* fixture) -> uint32_t {
90 auto json_fd = GetReflectionJson(fixture);
91 nlohmann::json shader_json = nlohmann::json::parse(json_fd->GetMapping());
92 return shader_json[
"buffers"][0][
"binding"].get<uint32_t>();
95 auto vert_uniform_binding = get_binding(
"sample.vert");
96 auto frag_uniform_binding = get_binding(
"sample.frag");
98 ASSERT_GT(frag_uniform_binding, vert_uniform_binding);
103 GTEST_SKIP() <<
"Not supported with SkSL";
105 ASSERT_TRUE(CanCompileAndReflect(
"sample_with_binding.vert",
109 struct binding_and_set {
114 auto get_binding = [&](
const char* fixture) -> binding_and_set {
115 auto json_fd = GetReflectionJson(fixture);
116 nlohmann::json shader_json = nlohmann::json::parse(json_fd->GetMapping());
117 uint32_t binding = shader_json[
"buffers"][0][
"binding"].get<uint32_t>();
118 uint32_t set = shader_json[
"buffers"][0][
"set"].get<uint32_t>();
119 return {binding, set};
122 auto vert_uniform_binding = get_binding(
"sample_with_binding.vert");
123 auto frag_uniform_binding = get_binding(
"sample.frag");
125 ASSERT_EQ(frag_uniform_binding.set, 0u);
126 ASSERT_EQ(vert_uniform_binding.set, 3u);
127 ASSERT_EQ(vert_uniform_binding.binding, 17u);
132 GTEST_SKIP() <<
"Only supported on SkSL";
137 auto shader = GetShaderFile(
"texture_lookup.frag", GetParam());
138 std::string_view shader_mapping(
139 reinterpret_cast<const char*
>(shader->GetMapping()), shader->GetSize());
141 constexpr std::string_view expected =
142 "textureA.eval(textureA_size * ( vec2(1.0) + flutter_FragCoord.xy));";
144 EXPECT_NE(shader_mapping.find(expected), std::string::npos);