From 60ca2b8fbca7a6af8e22965199a7f2202bf67345 Mon Sep 17 00:00:00 2001 From: Chinmay Garde Date: Tue, 1 Jun 2021 14:53:18 -0700 Subject: [PATCH] Reorganize project structure. --- engine/src/flutter/impeller/BUILD.gn | 21 ++- .../impeller/compiler/fixtures/common_types.h | 16 --- .../impeller/compiler/tools/compiler.gni | 94 ------------ .../{impeller => }/compositor/BUILD.gn | 4 + .../{impeller => }/compositor/allocator.h | 0 .../{impeller => }/compositor/allocator.mm | 0 .../{impeller => }/compositor/buffer.h | 0 .../{impeller => }/compositor/buffer.mm | 0 .../impeller/compositor/buffer_unittests.cc | 5 + .../compositor/command_buffer.cc | 0 .../compositor/command_buffer.h | 0 .../{impeller => }/compositor/comparable.cc | 0 .../{impeller => }/compositor/comparable.h | 0 .../{impeller => }/compositor/context.h | 0 .../{impeller => }/compositor/context.mm | 0 .../{impeller => }/compositor/formats.cc | 0 .../{impeller => }/compositor/formats.h | 0 .../{impeller => }/compositor/formats_metal.h | 0 .../compositor/formats_metal.mm | 0 .../{impeller => }/compositor/pipeline.h | 0 .../{impeller => }/compositor/pipeline.mm | 2 +- .../compositor/pipeline_descriptor.h | 0 .../compositor/pipeline_descriptor.mm | 0 .../compositor/pipeline_library.h | 0 .../compositor/pipeline_library.mm | 0 .../{impeller => }/compositor/range.cc | 0 .../{impeller => }/compositor/range.h | 0 .../{impeller => }/compositor/renderer.h | 0 .../{impeller => }/compositor/renderer.mm | 0 .../compositor/shader_function.h | 0 .../compositor/shader_function.mm | 0 .../compositor/shader_library.h | 0 .../compositor/shader_library.mm | 0 .../{impeller => }/compositor/surface.h | 0 .../{impeller => }/compositor/surface.mm | 0 .../compositor/vertex_descriptor.h | 0 .../compositor/vertex_descriptor.mm | 0 .../impeller/{impeller => }/entity/BUILD.gn | 0 .../impeller/{impeller => }/entity/color.cc | 0 .../impeller/{impeller => }/entity/color.h | 0 .../impeller/{impeller => }/entity/entity.cc | 0 .../impeller/{impeller => }/entity/entity.h | 0 .../impeller/{impeller => }/geometry/BUILD.gn | 0 .../{impeller => }/geometry/matrix.cc | 0 .../impeller/{impeller => }/geometry/matrix.h | 0 .../impeller/{impeller => }/geometry/path.cc | 0 .../impeller/{impeller => }/geometry/path.h | 0 .../{impeller => }/geometry/path_builder.cc | 0 .../{impeller => }/geometry/path_builder.h | 0 .../{impeller => }/geometry/path_component.cc | 0 .../{impeller => }/geometry/path_component.h | 0 .../impeller/{impeller => }/geometry/point.cc | 0 .../impeller/{impeller => }/geometry/point.h | 0 .../{impeller => }/geometry/quaternion.cc | 0 .../{impeller => }/geometry/quaternion.h | 0 .../impeller/{impeller => }/geometry/rect.cc | 0 .../impeller/{impeller => }/geometry/rect.h | 0 .../impeller/{impeller => }/geometry/shear.cc | 0 .../impeller/{impeller => }/geometry/shear.h | 0 .../impeller/{impeller => }/geometry/size.cc | 0 .../impeller/{impeller => }/geometry/size.h | 0 .../{impeller => }/geometry/vector.cc | 0 .../impeller/{impeller => }/geometry/vector.h | 0 engine/src/flutter/impeller/host/BUILD.gn | 5 +- .../impeller/{impeller => }/image/BUILD.gn | 0 .../impeller/{impeller => }/image/image.cc | 0 .../impeller/{impeller => }/image/image.h | 0 .../{impeller => }/image/image_result.cc | 0 .../{impeller => }/image/image_result.h | 0 engine/src/flutter/impeller/impeller/BUILD.gn | 21 --- .../{impeller => }/primitives/BUILD.gn | 0 .../{impeller => }/primitives/box.frag | 0 .../impeller/{impeller => }/primitives/box.h | 0 .../impeller/{impeller => }/primitives/box.mm | 0 .../{impeller => }/primitives/box.vert | 0 .../{impeller => }/shader_glue/BUILD.gn | 0 .../shader_glue/shader_types.cc | 0 .../{impeller => }/shader_glue/shader_types.h | 0 .../tools/{metal => }/build_metal_library.py | 0 .../src/flutter/impeller/tools/impeller.gni | 135 +++++++++++++++++- .../impeller/tools/metal/metal_library.gni | 46 ------ 81 files changed, 165 insertions(+), 184 deletions(-) delete mode 100644 engine/src/flutter/impeller/compiler/fixtures/common_types.h delete mode 100644 engine/src/flutter/impeller/compiler/tools/compiler.gni rename engine/src/flutter/impeller/{impeller => }/compositor/BUILD.gn (92%) rename engine/src/flutter/impeller/{impeller => }/compositor/allocator.h (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/allocator.mm (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/buffer.h (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/buffer.mm (100%) create mode 100644 engine/src/flutter/impeller/compositor/buffer_unittests.cc rename engine/src/flutter/impeller/{impeller => }/compositor/command_buffer.cc (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/command_buffer.h (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/comparable.cc (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/comparable.h (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/context.h (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/context.mm (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/formats.cc (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/formats.h (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/formats_metal.h (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/formats_metal.mm (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/pipeline.h (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/pipeline.mm (89%) rename engine/src/flutter/impeller/{impeller => }/compositor/pipeline_descriptor.h (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/pipeline_descriptor.mm (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/pipeline_library.h (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/pipeline_library.mm (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/range.cc (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/range.h (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/renderer.h (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/renderer.mm (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/shader_function.h (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/shader_function.mm (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/shader_library.h (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/shader_library.mm (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/surface.h (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/surface.mm (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/vertex_descriptor.h (100%) rename engine/src/flutter/impeller/{impeller => }/compositor/vertex_descriptor.mm (100%) rename engine/src/flutter/impeller/{impeller => }/entity/BUILD.gn (100%) rename engine/src/flutter/impeller/{impeller => }/entity/color.cc (100%) rename engine/src/flutter/impeller/{impeller => }/entity/color.h (100%) rename engine/src/flutter/impeller/{impeller => }/entity/entity.cc (100%) rename engine/src/flutter/impeller/{impeller => }/entity/entity.h (100%) rename engine/src/flutter/impeller/{impeller => }/geometry/BUILD.gn (100%) rename engine/src/flutter/impeller/{impeller => }/geometry/matrix.cc (100%) rename engine/src/flutter/impeller/{impeller => }/geometry/matrix.h (100%) rename engine/src/flutter/impeller/{impeller => }/geometry/path.cc (100%) rename engine/src/flutter/impeller/{impeller => }/geometry/path.h (100%) rename engine/src/flutter/impeller/{impeller => }/geometry/path_builder.cc (100%) rename engine/src/flutter/impeller/{impeller => }/geometry/path_builder.h (100%) rename engine/src/flutter/impeller/{impeller => }/geometry/path_component.cc (100%) rename engine/src/flutter/impeller/{impeller => }/geometry/path_component.h (100%) rename engine/src/flutter/impeller/{impeller => }/geometry/point.cc (100%) rename engine/src/flutter/impeller/{impeller => }/geometry/point.h (100%) rename engine/src/flutter/impeller/{impeller => }/geometry/quaternion.cc (100%) rename engine/src/flutter/impeller/{impeller => }/geometry/quaternion.h (100%) rename engine/src/flutter/impeller/{impeller => }/geometry/rect.cc (100%) rename engine/src/flutter/impeller/{impeller => }/geometry/rect.h (100%) rename engine/src/flutter/impeller/{impeller => }/geometry/shear.cc (100%) rename engine/src/flutter/impeller/{impeller => }/geometry/shear.h (100%) rename engine/src/flutter/impeller/{impeller => }/geometry/size.cc (100%) rename engine/src/flutter/impeller/{impeller => }/geometry/size.h (100%) rename engine/src/flutter/impeller/{impeller => }/geometry/vector.cc (100%) rename engine/src/flutter/impeller/{impeller => }/geometry/vector.h (100%) rename engine/src/flutter/impeller/{impeller => }/image/BUILD.gn (100%) rename engine/src/flutter/impeller/{impeller => }/image/image.cc (100%) rename engine/src/flutter/impeller/{impeller => }/image/image.h (100%) rename engine/src/flutter/impeller/{impeller => }/image/image_result.cc (100%) rename engine/src/flutter/impeller/{impeller => }/image/image_result.h (100%) delete mode 100644 engine/src/flutter/impeller/impeller/BUILD.gn rename engine/src/flutter/impeller/{impeller => }/primitives/BUILD.gn (100%) rename engine/src/flutter/impeller/{impeller => }/primitives/box.frag (100%) rename engine/src/flutter/impeller/{impeller => }/primitives/box.h (100%) rename engine/src/flutter/impeller/{impeller => }/primitives/box.mm (100%) rename engine/src/flutter/impeller/{impeller => }/primitives/box.vert (100%) rename engine/src/flutter/impeller/{impeller => }/shader_glue/BUILD.gn (100%) rename engine/src/flutter/impeller/{impeller => }/shader_glue/shader_types.cc (100%) rename engine/src/flutter/impeller/{impeller => }/shader_glue/shader_types.h (100%) rename engine/src/flutter/impeller/tools/{metal => }/build_metal_library.py (100%) delete mode 100644 engine/src/flutter/impeller/tools/metal/metal_library.gni diff --git a/engine/src/flutter/impeller/BUILD.gn b/engine/src/flutter/impeller/BUILD.gn index cf0528736c4..af545df2c7f 100644 --- a/engine/src/flutter/impeller/BUILD.gn +++ b/engine/src/flutter/impeller/BUILD.gn @@ -2,9 +2,28 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +config("impeller_public_config") { + include_dirs = [ ".." ] +} + group("impeller") { deps = [ + "compiler", + "compositor", + "entity", + "geometry", "host", - "impeller", + "image", + "primitives", + "shader_glue", + ] +} + +group("unittests") { + testonly = true + + deps = [ + "compiler:compiler_unittests", + "compositor:compositor_unittests", ] } diff --git a/engine/src/flutter/impeller/compiler/fixtures/common_types.h b/engine/src/flutter/impeller/compiler/fixtures/common_types.h deleted file mode 100644 index ad4d31f94b4..00000000000 --- a/engine/src/flutter/impeller/compiler/fixtures/common_types.h +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifdef IMPELLER_DEVICE - -#define Vector3 vec3 -#define Vector4 vec4 -#define Matrix mat4 - -#else // IMPELLER_DEVICE - -#include "flutter/impeller/impeller/geometry/matrix.h" -#include "flutter/impeller/impeller/geometry/vector.h" - -#endif // IMPELLER_DEVICE diff --git a/engine/src/flutter/impeller/compiler/tools/compiler.gni b/engine/src/flutter/impeller/compiler/tools/compiler.gni deleted file mode 100644 index 10ffad9079b..00000000000 --- a/engine/src/flutter/impeller/compiler/tools/compiler.gni +++ /dev/null @@ -1,94 +0,0 @@ -# Copyright 2013 The Flutter Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import("//build/compiled_action.gni") -import("//flutter/impeller/tools/metal/metal_library.gni") - -template("impeller_shaders") { - assert(defined(invoker.shaders), "Impeller shaders must be specified.") - assert(defined(invoker.name), "Name of the shader library must be specified.") - - impellerc_target_name = "impellerc_$target_name" - compiled_action_foreach(impellerc_target_name) { - tool = "//flutter/impeller/compiler:impellerc" - - sources = invoker.shaders - - metal_intermediate = "$target_gen_dir/{{source_file_part}}.metal" - spirv_intermediate = "$target_gen_dir/{{source_file_part}}.spirv" - reflection_json_intermediate = "$target_gen_dir/{{source_file_part}}.json" - reflection_header_intermediate = "$target_gen_dir/{{source_file_part}}.h" - reflection_cc_intermediate = "$target_gen_dir/{{source_file_part}}.cc" - - outputs = [ - metal_intermediate, - reflection_header_intermediate, - reflection_cc_intermediate, - ] - - depfile_path = "$target_gen_dir/{{source_file_part}}.d" - source_path = "{{source}}" - metal_intermediate_path = rebase_path(metal_intermediate, root_build_dir) - spirv_intermediate_path = rebase_path(spirv_intermediate, root_build_dir) - depfile_intermediate_path = rebase_path(depfile_path, root_build_dir) - - reflection_json_path = - rebase_path(reflection_json_intermediate, root_build_dir) - reflection_header_path = - rebase_path(reflection_header_intermediate, root_build_dir) - reflection_cc_path = rebase_path(reflection_cc_intermediate, root_build_dir) - - depfile = depfile_path - - args = [ - "--input=$source_path", - "--metal=$metal_intermediate_path", - "--spirv=$spirv_intermediate_path", - "--reflection-json=$reflection_json_path", - "--reflection-header=$reflection_header_path", - "--reflection-cc=$reflection_cc_path", - "--include={{source_dir}}", - "--depfile=$depfile_intermediate_path", - ] - } - - metal_library_target_name = "metal_library_$target_name" - metal_library(metal_library_target_name) { - name = invoker.name - sources = filter_include(get_target_outputs(":$impellerc_target_name"), - [ "*.metal" ]) - deps = [ ":$impellerc_target_name" ] - } - - shader_glue_target_name = "glue_$target_name" - shader_glue_config_name = "glue_config_$target_name" - - config(shader_glue_config_name) { - # Contains the generated header headers. - include_dirs = [ target_gen_dir ] - } - - source_set(shader_glue_target_name) { - public_configs = [ ":$shader_glue_config_name" ] - - public = - filter_include(get_target_outputs(":$impellerc_target_name"), [ "*.h" ]) - sources = filter_include(get_target_outputs(":$impellerc_target_name"), - [ - "*.h", - "*.cc", - ]) - deps = [ - ":$impellerc_target_name", - "//flutter/impeller/impeller/shader_glue", - ] - } - - group(target_name) { - public_deps = [ - ":$metal_library_target_name", - ":$shader_glue_target_name", - ] - } -} diff --git a/engine/src/flutter/impeller/impeller/compositor/BUILD.gn b/engine/src/flutter/impeller/compositor/BUILD.gn similarity index 92% rename from engine/src/flutter/impeller/impeller/compositor/BUILD.gn rename to engine/src/flutter/impeller/compositor/BUILD.gn index 6d1bec6b42f..9f18dd4b2d5 100644 --- a/engine/src/flutter/impeller/impeller/compositor/BUILD.gn +++ b/engine/src/flutter/impeller/compositor/BUILD.gn @@ -43,3 +43,7 @@ impeller_component("compositor") { "../shader_glue", ] } + +executable("compositor_unittests") { + sources = [ "buffer_unittests.cc" ] +} diff --git a/engine/src/flutter/impeller/impeller/compositor/allocator.h b/engine/src/flutter/impeller/compositor/allocator.h similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/allocator.h rename to engine/src/flutter/impeller/compositor/allocator.h diff --git a/engine/src/flutter/impeller/impeller/compositor/allocator.mm b/engine/src/flutter/impeller/compositor/allocator.mm similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/allocator.mm rename to engine/src/flutter/impeller/compositor/allocator.mm diff --git a/engine/src/flutter/impeller/impeller/compositor/buffer.h b/engine/src/flutter/impeller/compositor/buffer.h similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/buffer.h rename to engine/src/flutter/impeller/compositor/buffer.h diff --git a/engine/src/flutter/impeller/impeller/compositor/buffer.mm b/engine/src/flutter/impeller/compositor/buffer.mm similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/buffer.mm rename to engine/src/flutter/impeller/compositor/buffer.mm diff --git a/engine/src/flutter/impeller/compositor/buffer_unittests.cc b/engine/src/flutter/impeller/compositor/buffer_unittests.cc new file mode 100644 index 00000000000..2b409d838d2 --- /dev/null +++ b/engine/src/flutter/impeller/compositor/buffer_unittests.cc @@ -0,0 +1,5 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "gtest/gtest.h" diff --git a/engine/src/flutter/impeller/impeller/compositor/command_buffer.cc b/engine/src/flutter/impeller/compositor/command_buffer.cc similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/command_buffer.cc rename to engine/src/flutter/impeller/compositor/command_buffer.cc diff --git a/engine/src/flutter/impeller/impeller/compositor/command_buffer.h b/engine/src/flutter/impeller/compositor/command_buffer.h similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/command_buffer.h rename to engine/src/flutter/impeller/compositor/command_buffer.h diff --git a/engine/src/flutter/impeller/impeller/compositor/comparable.cc b/engine/src/flutter/impeller/compositor/comparable.cc similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/comparable.cc rename to engine/src/flutter/impeller/compositor/comparable.cc diff --git a/engine/src/flutter/impeller/impeller/compositor/comparable.h b/engine/src/flutter/impeller/compositor/comparable.h similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/comparable.h rename to engine/src/flutter/impeller/compositor/comparable.h diff --git a/engine/src/flutter/impeller/impeller/compositor/context.h b/engine/src/flutter/impeller/compositor/context.h similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/context.h rename to engine/src/flutter/impeller/compositor/context.h diff --git a/engine/src/flutter/impeller/impeller/compositor/context.mm b/engine/src/flutter/impeller/compositor/context.mm similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/context.mm rename to engine/src/flutter/impeller/compositor/context.mm diff --git a/engine/src/flutter/impeller/impeller/compositor/formats.cc b/engine/src/flutter/impeller/compositor/formats.cc similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/formats.cc rename to engine/src/flutter/impeller/compositor/formats.cc diff --git a/engine/src/flutter/impeller/impeller/compositor/formats.h b/engine/src/flutter/impeller/compositor/formats.h similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/formats.h rename to engine/src/flutter/impeller/compositor/formats.h diff --git a/engine/src/flutter/impeller/impeller/compositor/formats_metal.h b/engine/src/flutter/impeller/compositor/formats_metal.h similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/formats_metal.h rename to engine/src/flutter/impeller/compositor/formats_metal.h diff --git a/engine/src/flutter/impeller/impeller/compositor/formats_metal.mm b/engine/src/flutter/impeller/compositor/formats_metal.mm similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/formats_metal.mm rename to engine/src/flutter/impeller/compositor/formats_metal.mm diff --git a/engine/src/flutter/impeller/impeller/compositor/pipeline.h b/engine/src/flutter/impeller/compositor/pipeline.h similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/pipeline.h rename to engine/src/flutter/impeller/compositor/pipeline.h diff --git a/engine/src/flutter/impeller/impeller/compositor/pipeline.mm b/engine/src/flutter/impeller/compositor/pipeline.mm similarity index 89% rename from engine/src/flutter/impeller/impeller/compositor/pipeline.mm rename to engine/src/flutter/impeller/compositor/pipeline.mm index c0822ad2720..f14bfa8d16d 100644 --- a/engine/src/flutter/impeller/impeller/compositor/pipeline.mm +++ b/engine/src/flutter/impeller/compositor/pipeline.mm @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "flutter/impeller/impeller/compositor/pipeline.h" +#include "impeller/compositor/pipeline.h" namespace impeller { diff --git a/engine/src/flutter/impeller/impeller/compositor/pipeline_descriptor.h b/engine/src/flutter/impeller/compositor/pipeline_descriptor.h similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/pipeline_descriptor.h rename to engine/src/flutter/impeller/compositor/pipeline_descriptor.h diff --git a/engine/src/flutter/impeller/impeller/compositor/pipeline_descriptor.mm b/engine/src/flutter/impeller/compositor/pipeline_descriptor.mm similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/pipeline_descriptor.mm rename to engine/src/flutter/impeller/compositor/pipeline_descriptor.mm diff --git a/engine/src/flutter/impeller/impeller/compositor/pipeline_library.h b/engine/src/flutter/impeller/compositor/pipeline_library.h similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/pipeline_library.h rename to engine/src/flutter/impeller/compositor/pipeline_library.h diff --git a/engine/src/flutter/impeller/impeller/compositor/pipeline_library.mm b/engine/src/flutter/impeller/compositor/pipeline_library.mm similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/pipeline_library.mm rename to engine/src/flutter/impeller/compositor/pipeline_library.mm diff --git a/engine/src/flutter/impeller/impeller/compositor/range.cc b/engine/src/flutter/impeller/compositor/range.cc similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/range.cc rename to engine/src/flutter/impeller/compositor/range.cc diff --git a/engine/src/flutter/impeller/impeller/compositor/range.h b/engine/src/flutter/impeller/compositor/range.h similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/range.h rename to engine/src/flutter/impeller/compositor/range.h diff --git a/engine/src/flutter/impeller/impeller/compositor/renderer.h b/engine/src/flutter/impeller/compositor/renderer.h similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/renderer.h rename to engine/src/flutter/impeller/compositor/renderer.h diff --git a/engine/src/flutter/impeller/impeller/compositor/renderer.mm b/engine/src/flutter/impeller/compositor/renderer.mm similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/renderer.mm rename to engine/src/flutter/impeller/compositor/renderer.mm diff --git a/engine/src/flutter/impeller/impeller/compositor/shader_function.h b/engine/src/flutter/impeller/compositor/shader_function.h similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/shader_function.h rename to engine/src/flutter/impeller/compositor/shader_function.h diff --git a/engine/src/flutter/impeller/impeller/compositor/shader_function.mm b/engine/src/flutter/impeller/compositor/shader_function.mm similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/shader_function.mm rename to engine/src/flutter/impeller/compositor/shader_function.mm diff --git a/engine/src/flutter/impeller/impeller/compositor/shader_library.h b/engine/src/flutter/impeller/compositor/shader_library.h similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/shader_library.h rename to engine/src/flutter/impeller/compositor/shader_library.h diff --git a/engine/src/flutter/impeller/impeller/compositor/shader_library.mm b/engine/src/flutter/impeller/compositor/shader_library.mm similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/shader_library.mm rename to engine/src/flutter/impeller/compositor/shader_library.mm diff --git a/engine/src/flutter/impeller/impeller/compositor/surface.h b/engine/src/flutter/impeller/compositor/surface.h similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/surface.h rename to engine/src/flutter/impeller/compositor/surface.h diff --git a/engine/src/flutter/impeller/impeller/compositor/surface.mm b/engine/src/flutter/impeller/compositor/surface.mm similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/surface.mm rename to engine/src/flutter/impeller/compositor/surface.mm diff --git a/engine/src/flutter/impeller/impeller/compositor/vertex_descriptor.h b/engine/src/flutter/impeller/compositor/vertex_descriptor.h similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/vertex_descriptor.h rename to engine/src/flutter/impeller/compositor/vertex_descriptor.h diff --git a/engine/src/flutter/impeller/impeller/compositor/vertex_descriptor.mm b/engine/src/flutter/impeller/compositor/vertex_descriptor.mm similarity index 100% rename from engine/src/flutter/impeller/impeller/compositor/vertex_descriptor.mm rename to engine/src/flutter/impeller/compositor/vertex_descriptor.mm diff --git a/engine/src/flutter/impeller/impeller/entity/BUILD.gn b/engine/src/flutter/impeller/entity/BUILD.gn similarity index 100% rename from engine/src/flutter/impeller/impeller/entity/BUILD.gn rename to engine/src/flutter/impeller/entity/BUILD.gn diff --git a/engine/src/flutter/impeller/impeller/entity/color.cc b/engine/src/flutter/impeller/entity/color.cc similarity index 100% rename from engine/src/flutter/impeller/impeller/entity/color.cc rename to engine/src/flutter/impeller/entity/color.cc diff --git a/engine/src/flutter/impeller/impeller/entity/color.h b/engine/src/flutter/impeller/entity/color.h similarity index 100% rename from engine/src/flutter/impeller/impeller/entity/color.h rename to engine/src/flutter/impeller/entity/color.h diff --git a/engine/src/flutter/impeller/impeller/entity/entity.cc b/engine/src/flutter/impeller/entity/entity.cc similarity index 100% rename from engine/src/flutter/impeller/impeller/entity/entity.cc rename to engine/src/flutter/impeller/entity/entity.cc diff --git a/engine/src/flutter/impeller/impeller/entity/entity.h b/engine/src/flutter/impeller/entity/entity.h similarity index 100% rename from engine/src/flutter/impeller/impeller/entity/entity.h rename to engine/src/flutter/impeller/entity/entity.h diff --git a/engine/src/flutter/impeller/impeller/geometry/BUILD.gn b/engine/src/flutter/impeller/geometry/BUILD.gn similarity index 100% rename from engine/src/flutter/impeller/impeller/geometry/BUILD.gn rename to engine/src/flutter/impeller/geometry/BUILD.gn diff --git a/engine/src/flutter/impeller/impeller/geometry/matrix.cc b/engine/src/flutter/impeller/geometry/matrix.cc similarity index 100% rename from engine/src/flutter/impeller/impeller/geometry/matrix.cc rename to engine/src/flutter/impeller/geometry/matrix.cc diff --git a/engine/src/flutter/impeller/impeller/geometry/matrix.h b/engine/src/flutter/impeller/geometry/matrix.h similarity index 100% rename from engine/src/flutter/impeller/impeller/geometry/matrix.h rename to engine/src/flutter/impeller/geometry/matrix.h diff --git a/engine/src/flutter/impeller/impeller/geometry/path.cc b/engine/src/flutter/impeller/geometry/path.cc similarity index 100% rename from engine/src/flutter/impeller/impeller/geometry/path.cc rename to engine/src/flutter/impeller/geometry/path.cc diff --git a/engine/src/flutter/impeller/impeller/geometry/path.h b/engine/src/flutter/impeller/geometry/path.h similarity index 100% rename from engine/src/flutter/impeller/impeller/geometry/path.h rename to engine/src/flutter/impeller/geometry/path.h diff --git a/engine/src/flutter/impeller/impeller/geometry/path_builder.cc b/engine/src/flutter/impeller/geometry/path_builder.cc similarity index 100% rename from engine/src/flutter/impeller/impeller/geometry/path_builder.cc rename to engine/src/flutter/impeller/geometry/path_builder.cc diff --git a/engine/src/flutter/impeller/impeller/geometry/path_builder.h b/engine/src/flutter/impeller/geometry/path_builder.h similarity index 100% rename from engine/src/flutter/impeller/impeller/geometry/path_builder.h rename to engine/src/flutter/impeller/geometry/path_builder.h diff --git a/engine/src/flutter/impeller/impeller/geometry/path_component.cc b/engine/src/flutter/impeller/geometry/path_component.cc similarity index 100% rename from engine/src/flutter/impeller/impeller/geometry/path_component.cc rename to engine/src/flutter/impeller/geometry/path_component.cc diff --git a/engine/src/flutter/impeller/impeller/geometry/path_component.h b/engine/src/flutter/impeller/geometry/path_component.h similarity index 100% rename from engine/src/flutter/impeller/impeller/geometry/path_component.h rename to engine/src/flutter/impeller/geometry/path_component.h diff --git a/engine/src/flutter/impeller/impeller/geometry/point.cc b/engine/src/flutter/impeller/geometry/point.cc similarity index 100% rename from engine/src/flutter/impeller/impeller/geometry/point.cc rename to engine/src/flutter/impeller/geometry/point.cc diff --git a/engine/src/flutter/impeller/impeller/geometry/point.h b/engine/src/flutter/impeller/geometry/point.h similarity index 100% rename from engine/src/flutter/impeller/impeller/geometry/point.h rename to engine/src/flutter/impeller/geometry/point.h diff --git a/engine/src/flutter/impeller/impeller/geometry/quaternion.cc b/engine/src/flutter/impeller/geometry/quaternion.cc similarity index 100% rename from engine/src/flutter/impeller/impeller/geometry/quaternion.cc rename to engine/src/flutter/impeller/geometry/quaternion.cc diff --git a/engine/src/flutter/impeller/impeller/geometry/quaternion.h b/engine/src/flutter/impeller/geometry/quaternion.h similarity index 100% rename from engine/src/flutter/impeller/impeller/geometry/quaternion.h rename to engine/src/flutter/impeller/geometry/quaternion.h diff --git a/engine/src/flutter/impeller/impeller/geometry/rect.cc b/engine/src/flutter/impeller/geometry/rect.cc similarity index 100% rename from engine/src/flutter/impeller/impeller/geometry/rect.cc rename to engine/src/flutter/impeller/geometry/rect.cc diff --git a/engine/src/flutter/impeller/impeller/geometry/rect.h b/engine/src/flutter/impeller/geometry/rect.h similarity index 100% rename from engine/src/flutter/impeller/impeller/geometry/rect.h rename to engine/src/flutter/impeller/geometry/rect.h diff --git a/engine/src/flutter/impeller/impeller/geometry/shear.cc b/engine/src/flutter/impeller/geometry/shear.cc similarity index 100% rename from engine/src/flutter/impeller/impeller/geometry/shear.cc rename to engine/src/flutter/impeller/geometry/shear.cc diff --git a/engine/src/flutter/impeller/impeller/geometry/shear.h b/engine/src/flutter/impeller/geometry/shear.h similarity index 100% rename from engine/src/flutter/impeller/impeller/geometry/shear.h rename to engine/src/flutter/impeller/geometry/shear.h diff --git a/engine/src/flutter/impeller/impeller/geometry/size.cc b/engine/src/flutter/impeller/geometry/size.cc similarity index 100% rename from engine/src/flutter/impeller/impeller/geometry/size.cc rename to engine/src/flutter/impeller/geometry/size.cc diff --git a/engine/src/flutter/impeller/impeller/geometry/size.h b/engine/src/flutter/impeller/geometry/size.h similarity index 100% rename from engine/src/flutter/impeller/impeller/geometry/size.h rename to engine/src/flutter/impeller/geometry/size.h diff --git a/engine/src/flutter/impeller/impeller/geometry/vector.cc b/engine/src/flutter/impeller/geometry/vector.cc similarity index 100% rename from engine/src/flutter/impeller/impeller/geometry/vector.cc rename to engine/src/flutter/impeller/geometry/vector.cc diff --git a/engine/src/flutter/impeller/impeller/geometry/vector.h b/engine/src/flutter/impeller/geometry/vector.h similarity index 100% rename from engine/src/flutter/impeller/impeller/geometry/vector.h rename to engine/src/flutter/impeller/geometry/vector.h diff --git a/engine/src/flutter/impeller/host/BUILD.gn b/engine/src/flutter/impeller/host/BUILD.gn index 7055d10c03e..7a371705668 100644 --- a/engine/src/flutter/impeller/host/BUILD.gn +++ b/engine/src/flutter/impeller/host/BUILD.gn @@ -2,8 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import("//flutter/common/config.gni") -import("//flutter/impeller/tools/metal/metal_library.gni") +import("//flutter/impeller/tools/impeller.gni") import("//flutter/testing/testing.gni") metal_library("impeller_host_shaders") { @@ -47,7 +46,7 @@ executable("host") { deps = [ ":impeller_host_fixtures", ":impeller_host_shaders", + "../primitives", "//flutter/fml", - "//flutter/impeller/impeller/primitives", ] } diff --git a/engine/src/flutter/impeller/impeller/image/BUILD.gn b/engine/src/flutter/impeller/image/BUILD.gn similarity index 100% rename from engine/src/flutter/impeller/impeller/image/BUILD.gn rename to engine/src/flutter/impeller/image/BUILD.gn diff --git a/engine/src/flutter/impeller/impeller/image/image.cc b/engine/src/flutter/impeller/image/image.cc similarity index 100% rename from engine/src/flutter/impeller/impeller/image/image.cc rename to engine/src/flutter/impeller/image/image.cc diff --git a/engine/src/flutter/impeller/impeller/image/image.h b/engine/src/flutter/impeller/image/image.h similarity index 100% rename from engine/src/flutter/impeller/impeller/image/image.h rename to engine/src/flutter/impeller/image/image.h diff --git a/engine/src/flutter/impeller/impeller/image/image_result.cc b/engine/src/flutter/impeller/image/image_result.cc similarity index 100% rename from engine/src/flutter/impeller/impeller/image/image_result.cc rename to engine/src/flutter/impeller/image/image_result.cc diff --git a/engine/src/flutter/impeller/impeller/image/image_result.h b/engine/src/flutter/impeller/image/image_result.h similarity index 100% rename from engine/src/flutter/impeller/impeller/image/image_result.h rename to engine/src/flutter/impeller/image/image_result.h diff --git a/engine/src/flutter/impeller/impeller/BUILD.gn b/engine/src/flutter/impeller/impeller/BUILD.gn deleted file mode 100644 index 224a7616944..00000000000 --- a/engine/src/flutter/impeller/impeller/BUILD.gn +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 2013 The Flutter Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -import("//flutter/common/config.gni") -import("//flutter/impeller/compiler/tools/compiler.gni") - -config("impeller_public_config") { - include_dirs = [ "//flutter/impeller" ] -} - -group("impeller") { - deps = [ - "compositor", - "entity", - "geometry", - "image", - "primitives", - "shader_glue", - ] -} diff --git a/engine/src/flutter/impeller/impeller/primitives/BUILD.gn b/engine/src/flutter/impeller/primitives/BUILD.gn similarity index 100% rename from engine/src/flutter/impeller/impeller/primitives/BUILD.gn rename to engine/src/flutter/impeller/primitives/BUILD.gn diff --git a/engine/src/flutter/impeller/impeller/primitives/box.frag b/engine/src/flutter/impeller/primitives/box.frag similarity index 100% rename from engine/src/flutter/impeller/impeller/primitives/box.frag rename to engine/src/flutter/impeller/primitives/box.frag diff --git a/engine/src/flutter/impeller/impeller/primitives/box.h b/engine/src/flutter/impeller/primitives/box.h similarity index 100% rename from engine/src/flutter/impeller/impeller/primitives/box.h rename to engine/src/flutter/impeller/primitives/box.h diff --git a/engine/src/flutter/impeller/impeller/primitives/box.mm b/engine/src/flutter/impeller/primitives/box.mm similarity index 100% rename from engine/src/flutter/impeller/impeller/primitives/box.mm rename to engine/src/flutter/impeller/primitives/box.mm diff --git a/engine/src/flutter/impeller/impeller/primitives/box.vert b/engine/src/flutter/impeller/primitives/box.vert similarity index 100% rename from engine/src/flutter/impeller/impeller/primitives/box.vert rename to engine/src/flutter/impeller/primitives/box.vert diff --git a/engine/src/flutter/impeller/impeller/shader_glue/BUILD.gn b/engine/src/flutter/impeller/shader_glue/BUILD.gn similarity index 100% rename from engine/src/flutter/impeller/impeller/shader_glue/BUILD.gn rename to engine/src/flutter/impeller/shader_glue/BUILD.gn diff --git a/engine/src/flutter/impeller/impeller/shader_glue/shader_types.cc b/engine/src/flutter/impeller/shader_glue/shader_types.cc similarity index 100% rename from engine/src/flutter/impeller/impeller/shader_glue/shader_types.cc rename to engine/src/flutter/impeller/shader_glue/shader_types.cc diff --git a/engine/src/flutter/impeller/impeller/shader_glue/shader_types.h b/engine/src/flutter/impeller/shader_glue/shader_types.h similarity index 100% rename from engine/src/flutter/impeller/impeller/shader_glue/shader_types.h rename to engine/src/flutter/impeller/shader_glue/shader_types.h diff --git a/engine/src/flutter/impeller/tools/metal/build_metal_library.py b/engine/src/flutter/impeller/tools/build_metal_library.py similarity index 100% rename from engine/src/flutter/impeller/tools/metal/build_metal_library.py rename to engine/src/flutter/impeller/tools/build_metal_library.py diff --git a/engine/src/flutter/impeller/tools/impeller.gni b/engine/src/flutter/impeller/tools/impeller.gni index 00dc95333ef..ece8c977452 100644 --- a/engine/src/flutter/impeller/tools/impeller.gni +++ b/engine/src/flutter/impeller/tools/impeller.gni @@ -2,8 +2,8 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import("//build/compiled_action.gni") import("//flutter/common/config.gni") -import("//flutter/impeller/compiler/tools/compiler.gni") template("impeller_component") { source_set(target_name) { @@ -30,7 +30,7 @@ template("impeller_component") { cflags_objc += flutter_cflags_objc_arc + objc_warning_flags cflags_objcc += flutter_cflags_objcc_arc + objc_warning_flags - public_configs += [ "//flutter/impeller/impeller:impeller_public_config" ] + public_configs += [ "//flutter/impeller:impeller_public_config" ] deps += [ "//flutter/fml", @@ -40,3 +40,134 @@ template("impeller_component") { ] } } + +template("metal_library") { + assert(defined(invoker.name), "Metal library name must be specified.") + assert(defined(invoker.sources), "Metal source files must be specified.") + + metal_library_name = invoker.name + + action("$target_name") { + forward_variables_from(invoker, + "*", + [ + "inputs", + "outputs", + "script", + "depfile", + "args", + ]) + + inputs = invoker.sources + + metal_library_path = "$root_out_dir/shaders/$metal_library_name.metallib" + + outputs = [ metal_library_path ] + + script = "//flutter/impeller/tools/build_metal_library.py" + + depfile = "$target_gen_dir/shader_deps/$metal_library_name.depfile" + + args = [ + "--output", + rebase_path(metal_library_path, root_out_dir), + "--depfile", + rebase_path(depfile), + ] + + foreach(source, invoker.sources) { + args += [ + "--source", + rebase_path(source, root_out_dir), + ] + } + } +} + +template("impeller_shaders") { + assert(defined(invoker.shaders), "Impeller shaders must be specified.") + assert(defined(invoker.name), "Name of the shader library must be specified.") + + impellerc_target_name = "impellerc_$target_name" + compiled_action_foreach(impellerc_target_name) { + tool = "//flutter/impeller/compiler:impellerc" + + sources = invoker.shaders + + metal_intermediate = "$target_gen_dir/{{source_file_part}}.metal" + spirv_intermediate = "$target_gen_dir/{{source_file_part}}.spirv" + reflection_json_intermediate = "$target_gen_dir/{{source_file_part}}.json" + reflection_header_intermediate = "$target_gen_dir/{{source_file_part}}.h" + reflection_cc_intermediate = "$target_gen_dir/{{source_file_part}}.cc" + + outputs = [ + metal_intermediate, + reflection_header_intermediate, + reflection_cc_intermediate, + ] + + depfile_path = "$target_gen_dir/{{source_file_part}}.d" + source_path = "{{source}}" + metal_intermediate_path = rebase_path(metal_intermediate, root_build_dir) + spirv_intermediate_path = rebase_path(spirv_intermediate, root_build_dir) + depfile_intermediate_path = rebase_path(depfile_path, root_build_dir) + + reflection_json_path = + rebase_path(reflection_json_intermediate, root_build_dir) + reflection_header_path = + rebase_path(reflection_header_intermediate, root_build_dir) + reflection_cc_path = rebase_path(reflection_cc_intermediate, root_build_dir) + + depfile = depfile_path + + args = [ + "--input=$source_path", + "--metal=$metal_intermediate_path", + "--spirv=$spirv_intermediate_path", + "--reflection-json=$reflection_json_path", + "--reflection-header=$reflection_header_path", + "--reflection-cc=$reflection_cc_path", + "--include={{source_dir}}", + "--depfile=$depfile_intermediate_path", + ] + } + + metal_library_target_name = "metal_library_$target_name" + metal_library(metal_library_target_name) { + name = invoker.name + sources = filter_include(get_target_outputs(":$impellerc_target_name"), + [ "*.metal" ]) + deps = [ ":$impellerc_target_name" ] + } + + shader_glue_target_name = "glue_$target_name" + shader_glue_config_name = "glue_config_$target_name" + + config(shader_glue_config_name) { + # Contains the generated header headers. + include_dirs = [ target_gen_dir ] + } + + source_set(shader_glue_target_name) { + public_configs = [ ":$shader_glue_config_name" ] + + public = + filter_include(get_target_outputs(":$impellerc_target_name"), [ "*.h" ]) + sources = filter_include(get_target_outputs(":$impellerc_target_name"), + [ + "*.h", + "*.cc", + ]) + deps = [ + ":$impellerc_target_name", + "//flutter/impeller/shader_glue", + ] + } + + group(target_name) { + public_deps = [ + ":$metal_library_target_name", + ":$shader_glue_target_name", + ] + } +} diff --git a/engine/src/flutter/impeller/tools/metal/metal_library.gni b/engine/src/flutter/impeller/tools/metal/metal_library.gni deleted file mode 100644 index 8c2f4c98e5f..00000000000 --- a/engine/src/flutter/impeller/tools/metal/metal_library.gni +++ /dev/null @@ -1,46 +0,0 @@ -# Copyright 2013 The Flutter Authors. All rights reserved. -# Use of this source code is governed by a BSD-style license that can be -# found in the LICENSE file. - -template("metal_library") { - assert(defined(invoker.name), "Metal library name must be specified.") - assert(defined(invoker.sources), "Metal source files must be specified.") - - metal_library_name = invoker.name - - action("$target_name") { - forward_variables_from(invoker, - "*", - [ - "inputs", - "outputs", - "script", - "depfile", - "args", - ]) - - inputs = invoker.sources - - metal_library_path = "$root_out_dir/shaders/$metal_library_name.metallib" - - outputs = [ metal_library_path ] - - script = "//flutter/impeller/tools/metal/build_metal_library.py" - - depfile = "$target_gen_dir/shader_deps/$metal_library_name.depfile" - - args = [ - "--output", - rebase_path(metal_library_path, root_out_dir), - "--depfile", - rebase_path(depfile), - ] - - foreach(source, invoker.sources) { - args += [ - "--source", - rebase_path(source, root_out_dir), - ] - } - } -}