From b3c758405ecf23587ad60aa46568b5fe80b8eb7f Mon Sep 17 00:00:00 2001 From: Dan Field Date: Thu, 8 Feb 2024 15:54:54 -0800 Subject: [PATCH] [Impeller] Move impeller/image to impeller/playground/image Deletes usage in Scene of this code, which was the only non-test location that used it. This code imports Skia based code to decompress PNG images, and it's not clear when we'd need it outside of tests at this point. It is otherwise a pretty thin wrapper around a texture allocation. --- ci/licenses_golden/licenses_flutter | 12 ----------- impeller/BUILD.gn | 1 - impeller/core/BUILD.gn | 1 - impeller/entity/BUILD.gn | 1 - impeller/playground/BUILD.gn | 4 +++- impeller/{ => playground}/image/BUILD.gn | 10 ++++++---- impeller/{ => playground}/image/README.md | 0 .../backends/skia/compressed_image_skia.cc | 0 .../backends/skia/compressed_image_skia.h | 6 +++--- .../image/compressed_image.cc | 0 .../{ => playground}/image/compressed_image.h | 6 +++--- .../image/decompressed_image.cc | 0 .../image/decompressed_image.h | 6 +++--- impeller/renderer/BUILD.gn | 1 - impeller/scene/node.cc | 20 +++++-------------- 15 files changed, 23 insertions(+), 45 deletions(-) rename impeller/{ => playground}/image/BUILD.gn (87%) rename impeller/{ => playground}/image/README.md (100%) rename impeller/{ => playground}/image/backends/skia/compressed_image_skia.cc (100%) rename impeller/{ => playground}/image/backends/skia/compressed_image_skia.h (76%) rename impeller/{ => playground}/image/compressed_image.cc (100%) rename impeller/{ => playground}/image/compressed_image.h (78%) rename impeller/{ => playground}/image/decompressed_image.cc (100%) rename impeller/{ => playground}/image/decompressed_image.h (83%) diff --git a/ci/licenses_golden/licenses_flutter b/ci/licenses_golden/licenses_flutter index 26dfb762b3930..e0824f0ce32c5 100644 --- a/ci/licenses_golden/licenses_flutter +++ b/ci/licenses_golden/licenses_flutter @@ -5325,12 +5325,6 @@ ORIGIN: ../../../flutter/impeller/golden_tests/vulkan_screenshotter.h + ../../.. ORIGIN: ../../../flutter/impeller/golden_tests/vulkan_screenshotter.mm + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/golden_tests/working_directory.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/golden_tests/working_directory.h + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/image/backends/skia/compressed_image_skia.cc + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/image/backends/skia/compressed_image_skia.h + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/image/compressed_image.cc + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/image/compressed_image.h + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/image/decompressed_image.cc + ../../../flutter/LICENSE -ORIGIN: ../../../flutter/impeller/image/decompressed_image.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/gles/allocator_gles.cc + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/gles/allocator_gles.h + ../../../flutter/LICENSE ORIGIN: ../../../flutter/impeller/renderer/backend/gles/blit_command_gles.cc + ../../../flutter/LICENSE @@ -8182,12 +8176,6 @@ FILE: ../../../flutter/impeller/golden_tests/vulkan_screenshotter.h FILE: ../../../flutter/impeller/golden_tests/vulkan_screenshotter.mm FILE: ../../../flutter/impeller/golden_tests/working_directory.cc FILE: ../../../flutter/impeller/golden_tests/working_directory.h -FILE: ../../../flutter/impeller/image/backends/skia/compressed_image_skia.cc -FILE: ../../../flutter/impeller/image/backends/skia/compressed_image_skia.h -FILE: ../../../flutter/impeller/image/compressed_image.cc -FILE: ../../../flutter/impeller/image/compressed_image.h -FILE: ../../../flutter/impeller/image/decompressed_image.cc -FILE: ../../../flutter/impeller/image/decompressed_image.h FILE: ../../../flutter/impeller/renderer/backend/gles/allocator_gles.cc FILE: ../../../flutter/impeller/renderer/backend/gles/allocator_gles.h FILE: ../../../flutter/impeller/renderer/backend/gles/blit_command_gles.cc diff --git a/impeller/BUILD.gn b/impeller/BUILD.gn index 3bfe85a0fb072..4c4d84ffd3407 100644 --- a/impeller/BUILD.gn +++ b/impeller/BUILD.gn @@ -67,7 +67,6 @@ group("impeller") { "aiks", "display_list", "entity", - "image:image_skia_backend", "renderer", "renderer/backend", "typographer/backends/skia:typographer_skia_backend", diff --git a/impeller/core/BUILD.gn b/impeller/core/BUILD.gn index 2f15c1b28788e..e4587bda12a83 100644 --- a/impeller/core/BUILD.gn +++ b/impeller/core/BUILD.gn @@ -45,7 +45,6 @@ impeller_component("core") { deps = [ "../base", "../geometry", - "../image", "//flutter/fml", ] } diff --git a/impeller/entity/BUILD.gn b/impeller/entity/BUILD.gn index 0f900cf0345ab..a9e7e57e844d1 100644 --- a/impeller/entity/BUILD.gn +++ b/impeller/entity/BUILD.gn @@ -234,7 +234,6 @@ impeller_component("entity") { ":framebuffer_blend_entity_shaders", ":modern_entity_shaders", "../archivist", - "../image:image_skia_backend", "../renderer", "../typographer", ] diff --git a/impeller/playground/BUILD.gn b/impeller/playground/BUILD.gn index 60f2605fd4581..2449bc3017291 100644 --- a/impeller/playground/BUILD.gn +++ b/impeller/playground/BUILD.gn @@ -6,6 +6,8 @@ import("//flutter/impeller/tools/impeller.gni") import("//flutter/testing/testing.gni") impeller_component("playground") { + testonly = true + sources = [ "playground.cc", "playground.h", @@ -46,9 +48,9 @@ impeller_component("playground") { public_deps = [ "../fixtures:shader_fixtures", - "../image:image_skia_backend", "../renderer", "../scene/shaders", + "image:image_skia_backend", "imgui:imgui_impeller_backend", "//flutter/fml", "//flutter/third_party/glfw", diff --git a/impeller/image/BUILD.gn b/impeller/playground/image/BUILD.gn similarity index 87% rename from impeller/image/BUILD.gn rename to impeller/playground/image/BUILD.gn index f3dc73c662710..1ebf7cd7dc6ca 100644 --- a/impeller/image/BUILD.gn +++ b/impeller/playground/image/BUILD.gn @@ -5,6 +5,7 @@ import("//flutter/impeller/tools/impeller.gni") impeller_component("image") { + testonly = true public = [ "compressed_image.h", "decompressed_image.h", @@ -16,22 +17,23 @@ impeller_component("image") { ] public_deps = [ - "../base", - "../geometry", + "../../base", + "../../geometry", ] deps = [ "//flutter/fml" ] } impeller_component("image_skia_backend") { + testonly = true public = [ "backends/skia/compressed_image_skia.h" ] sources = [ "backends/skia/compressed_image_skia.cc" ] public_deps = [ ":image", - "../base", - "../geometry", + "../../base", + "../../geometry", ] deps = [ diff --git a/impeller/image/README.md b/impeller/playground/image/README.md similarity index 100% rename from impeller/image/README.md rename to impeller/playground/image/README.md diff --git a/impeller/image/backends/skia/compressed_image_skia.cc b/impeller/playground/image/backends/skia/compressed_image_skia.cc similarity index 100% rename from impeller/image/backends/skia/compressed_image_skia.cc rename to impeller/playground/image/backends/skia/compressed_image_skia.cc diff --git a/impeller/image/backends/skia/compressed_image_skia.h b/impeller/playground/image/backends/skia/compressed_image_skia.h similarity index 76% rename from impeller/image/backends/skia/compressed_image_skia.h rename to impeller/playground/image/backends/skia/compressed_image_skia.h index 1db71c2bdb855..d1847e4f4361f 100644 --- a/impeller/image/backends/skia/compressed_image_skia.h +++ b/impeller/playground/image/backends/skia/compressed_image_skia.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef FLUTTER_IMPELLER_IMAGE_BACKENDS_SKIA_COMPRESSED_IMAGE_SKIA_H_ -#define FLUTTER_IMPELLER_IMAGE_BACKENDS_SKIA_COMPRESSED_IMAGE_SKIA_H_ +#ifndef FLUTTER_IMPELLER_PLAYGROUND_IMAGE_BACKENDS_SKIA_COMPRESSED_IMAGE_SKIA_H_ +#define FLUTTER_IMPELLER_PLAYGROUND_IMAGE_BACKENDS_SKIA_COMPRESSED_IMAGE_SKIA_H_ #include "flutter/fml/macros.h" #include "impeller/image/compressed_image.h" @@ -30,4 +30,4 @@ class CompressedImageSkia final : public CompressedImage { } // namespace impeller -#endif // FLUTTER_IMPELLER_IMAGE_BACKENDS_SKIA_COMPRESSED_IMAGE_SKIA_H_ +#endif // FLUTTER_IMPELLER_PLAYGROUND_IMAGE_BACKENDS_SKIA_COMPRESSED_IMAGE_SKIA_H_ diff --git a/impeller/image/compressed_image.cc b/impeller/playground/image/compressed_image.cc similarity index 100% rename from impeller/image/compressed_image.cc rename to impeller/playground/image/compressed_image.cc diff --git a/impeller/image/compressed_image.h b/impeller/playground/image/compressed_image.h similarity index 78% rename from impeller/image/compressed_image.h rename to impeller/playground/image/compressed_image.h index 69d69db81f928..5cf91961a515f 100644 --- a/impeller/image/compressed_image.h +++ b/impeller/playground/image/compressed_image.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef FLUTTER_IMPELLER_IMAGE_COMPRESSED_IMAGE_H_ -#define FLUTTER_IMPELLER_IMAGE_COMPRESSED_IMAGE_H_ +#ifndef FLUTTER_IMPELLER_PLAYGROUND_IMAGE_COMPRESSED_IMAGE_H_ +#define FLUTTER_IMPELLER_PLAYGROUND_IMAGE_COMPRESSED_IMAGE_H_ #include @@ -32,4 +32,4 @@ class CompressedImage { } // namespace impeller -#endif // FLUTTER_IMPELLER_IMAGE_COMPRESSED_IMAGE_H_ +#endif // FLUTTER_IMPELLER_PLAYGROUND_IMAGE_COMPRESSED_IMAGE_H_ diff --git a/impeller/image/decompressed_image.cc b/impeller/playground/image/decompressed_image.cc similarity index 100% rename from impeller/image/decompressed_image.cc rename to impeller/playground/image/decompressed_image.cc diff --git a/impeller/image/decompressed_image.h b/impeller/playground/image/decompressed_image.h similarity index 83% rename from impeller/image/decompressed_image.h rename to impeller/playground/image/decompressed_image.h index d6643b1a43119..300b9837bd0e9 100644 --- a/impeller/image/decompressed_image.h +++ b/impeller/playground/image/decompressed_image.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef FLUTTER_IMPELLER_IMAGE_DECOMPRESSED_IMAGE_H_ -#define FLUTTER_IMPELLER_IMAGE_DECOMPRESSED_IMAGE_H_ +#ifndef FLUTTER_IMPELLER_PLAYGROUND_IMAGE_DECOMPRESSED_IMAGE_H_ +#define FLUTTER_IMPELLER_PLAYGROUND_IMAGE_DECOMPRESSED_IMAGE_H_ #include #include @@ -51,4 +51,4 @@ class DecompressedImage { } // namespace impeller -#endif // FLUTTER_IMPELLER_IMAGE_DECOMPRESSED_IMAGE_H_ +#endif // FLUTTER_IMPELLER_PLAYGROUND_IMAGE_DECOMPRESSED_IMAGE_H_ diff --git a/impeller/renderer/BUILD.gn b/impeller/renderer/BUILD.gn index 9fdc8964bc18f..2cf663bc4db1d 100644 --- a/impeller/renderer/BUILD.gn +++ b/impeller/renderer/BUILD.gn @@ -104,7 +104,6 @@ impeller_component("renderer") { "../base", "../core", "../geometry", - "../image", "../runtime_stage", "../tessellator", ] diff --git a/impeller/scene/node.cc b/impeller/scene/node.cc index 77c090f135301..aad7fc67199e7 100644 --- a/impeller/scene/node.cc +++ b/impeller/scene/node.cc @@ -14,7 +14,6 @@ #include "impeller/base/thread.h" #include "impeller/base/validation.h" #include "impeller/geometry/matrix.h" -#include "impeller/image/decompressed_image.h" #include "impeller/scene/animation/animation_player.h" #include "impeller/scene/importer/conversions.h" #include "impeller/scene/importer/scene_flatbuffers.h" @@ -80,17 +79,12 @@ static std::shared_ptr UnpackTextureFromFlatbuffer( return nullptr; } - DecompressedImage::Format format; switch (embedded->component_count()) { - case 1: - format = DecompressedImage::Format::kGrey; - break; - case 3: - format = DecompressedImage::Format::kRGB; - break; case 4: - format = DecompressedImage::Format::kRGBA; + // RGBA. break; + case 1: + case 3: default: FML_LOG(WARNING) << "Textures with " << embedded->component_count() << " components are not supported." << std::endl; @@ -106,15 +100,11 @@ static std::shared_ptr UnpackTextureFromFlatbuffer( auto image_mapping = std::make_shared( embedded->bytes()->Data(), embedded->bytes()->size()); - auto decompressed_image = - DecompressedImage(ISize(embedded->width(), embedded->height()), format, - image_mapping) - .ConvertToRGBA(); auto texture_descriptor = TextureDescriptor{}; texture_descriptor.storage_mode = StorageMode::kHostVisible; texture_descriptor.format = PixelFormat::kR8G8B8A8UNormInt; - texture_descriptor.size = decompressed_image.GetSize(); + texture_descriptor.size = ISize(embedded->width(), embedded->height()); // TODO(bdero): Generate mipmaps for embedded textures. texture_descriptor.mip_count = 1u; @@ -124,7 +114,7 @@ static std::shared_ptr UnpackTextureFromFlatbuffer( return nullptr; } - auto uploaded = texture->SetContents(decompressed_image.GetAllocation()); + auto uploaded = texture->SetContents(image_mapping); if (!uploaded) { FML_LOG(ERROR) << "Could not upload texture to device memory."; return nullptr;