diff --git a/engine/src/flutter/impeller/core/sampler_descriptor.cc b/engine/src/flutter/impeller/core/sampler_descriptor.cc index 9e99089813..5f668bb1bd 100644 --- a/engine/src/flutter/impeller/core/sampler_descriptor.cc +++ b/engine/src/flutter/impeller/core/sampler_descriptor.cc @@ -4,19 +4,17 @@ #include "impeller/core/sampler_descriptor.h" -#include "fml/logging.h" - namespace impeller { SamplerDescriptor::SamplerDescriptor() = default; -SamplerDescriptor::SamplerDescriptor(std::string label, +SamplerDescriptor::SamplerDescriptor(std::string_view label, MinMagFilter min_filter, MinMagFilter mag_filter, MipFilter mip_filter) : min_filter(min_filter), mag_filter(mag_filter), mip_filter(mip_filter), - label(std::move(label)) {} + label(label) {} } // namespace impeller diff --git a/engine/src/flutter/impeller/core/sampler_descriptor.h b/engine/src/flutter/impeller/core/sampler_descriptor.h index 0e92745ec3..31e91c129a 100644 --- a/engine/src/flutter/impeller/core/sampler_descriptor.h +++ b/engine/src/flutter/impeller/core/sampler_descriptor.h @@ -21,11 +21,11 @@ struct SamplerDescriptor final : public Comparable { SamplerAddressMode height_address_mode = SamplerAddressMode::kClampToEdge; SamplerAddressMode depth_address_mode = SamplerAddressMode::kClampToEdge; - std::string label = "NN Clamp Sampler"; + std::string_view label = "NN Clamp Sampler"; SamplerDescriptor(); - SamplerDescriptor(std::string label, + SamplerDescriptor(std::string_view label, MinMagFilter min_filter, MinMagFilter mag_filter, MipFilter mip_filter); diff --git a/engine/src/flutter/impeller/display_list/canvas.cc b/engine/src/flutter/impeller/display_list/canvas.cc index 4e5a4dcba0..08264d3cd2 100644 --- a/engine/src/flutter/impeller/display_list/canvas.cc +++ b/engine/src/flutter/impeller/display_list/canvas.cc @@ -782,6 +782,7 @@ void Canvas::DrawVertices(const std::shared_ptr& vertices, contents->SetEffectTransform(effect_transform); contents->SetTexture(texture); contents->SetTileMode(x_tile_mode, y_tile_mode); + contents->SetSamplerDescriptor(sampler_descriptor); entity.SetContents(paint.WithFilters(std::move(contents))); AddRenderEntityToCurrentPass(entity); diff --git a/engine/src/flutter/impeller/renderer/backend/metal/sampler_library_mtl.mm b/engine/src/flutter/impeller/renderer/backend/metal/sampler_library_mtl.mm index 0f24029b42..7253833807 100644 --- a/engine/src/flutter/impeller/renderer/backend/metal/sampler_library_mtl.mm +++ b/engine/src/flutter/impeller/renderer/backend/metal/sampler_library_mtl.mm @@ -34,9 +34,11 @@ const std::unique_ptr& SamplerLibraryMTL::GetSampler( if (@available(iOS 14.0, macos 10.12, *)) { desc.borderColor = MTLSamplerBorderColorTransparentBlack; } +#ifdef IMPELLER_DEBUG if (!descriptor.label.empty()) { - desc.label = @(descriptor.label.c_str()); + desc.label = @(descriptor.label.data()); } +#endif // IMPELLER_DEBUG auto mtl_sampler = [device_ newSamplerStateWithDescriptor:desc]; if (!mtl_sampler) { diff --git a/engine/src/flutter/impeller/renderer/backend/vulkan/sampler_vk.cc b/engine/src/flutter/impeller/renderer/backend/vulkan/sampler_vk.cc index 836f9bdd24..8a1eaccf72 100644 --- a/engine/src/flutter/impeller/renderer/backend/vulkan/sampler_vk.cc +++ b/engine/src/flutter/impeller/renderer/backend/vulkan/sampler_vk.cc @@ -92,7 +92,7 @@ static vk::UniqueSampler CreateSampler( } if (!desc.label.empty()) { - ContextVK::SetDebugName(device, sampler.value.get(), desc.label.c_str()); + ContextVK::SetDebugName(device, sampler.value.get(), desc.label.data()); } return std::move(sampler.value);