diff --git a/impeller/core/sampler_descriptor.cc b/impeller/core/sampler_descriptor.cc index 9e99089813dd3..5f668bb1bd987 100644 --- a/impeller/core/sampler_descriptor.cc +++ b/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/impeller/core/sampler_descriptor.h b/impeller/core/sampler_descriptor.h index 0e92745ec311f..31e91c129a9db 100644 --- a/impeller/core/sampler_descriptor.h +++ b/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/impeller/display_list/canvas.cc b/impeller/display_list/canvas.cc index 7b26f02892904..58ef01bf48e9c 100644 --- a/impeller/display_list/canvas.cc +++ b/impeller/display_list/canvas.cc @@ -786,6 +786,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/impeller/renderer/backend/metal/sampler_library_mtl.mm b/impeller/renderer/backend/metal/sampler_library_mtl.mm index 0f24029b42ea1..72538338075c3 100644 --- a/impeller/renderer/backend/metal/sampler_library_mtl.mm +++ b/impeller/renderer/backend/metal/sampler_library_mtl.mm @@ -34,9 +34,11 @@ 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/impeller/renderer/backend/vulkan/sampler_vk.cc b/impeller/renderer/backend/vulkan/sampler_vk.cc index 836f9bdd24f7d..8a1eaccf72ae3 100644 --- a/impeller/renderer/backend/vulkan/sampler_vk.cc +++ b/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);