[Impeller] make sampler use string_view instead of std::string. (flutter/engine#56821)
I believe these are always const strings anyway, so remove the copy associated with using std::string.
This commit is contained in:
parent
354d431d9d
commit
90320619b8
@ -4,19 +4,17 @@
|
|||||||
|
|
||||||
#include "impeller/core/sampler_descriptor.h"
|
#include "impeller/core/sampler_descriptor.h"
|
||||||
|
|
||||||
#include "fml/logging.h"
|
|
||||||
|
|
||||||
namespace impeller {
|
namespace impeller {
|
||||||
|
|
||||||
SamplerDescriptor::SamplerDescriptor() = default;
|
SamplerDescriptor::SamplerDescriptor() = default;
|
||||||
|
|
||||||
SamplerDescriptor::SamplerDescriptor(std::string label,
|
SamplerDescriptor::SamplerDescriptor(std::string_view label,
|
||||||
MinMagFilter min_filter,
|
MinMagFilter min_filter,
|
||||||
MinMagFilter mag_filter,
|
MinMagFilter mag_filter,
|
||||||
MipFilter mip_filter)
|
MipFilter mip_filter)
|
||||||
: min_filter(min_filter),
|
: min_filter(min_filter),
|
||||||
mag_filter(mag_filter),
|
mag_filter(mag_filter),
|
||||||
mip_filter(mip_filter),
|
mip_filter(mip_filter),
|
||||||
label(std::move(label)) {}
|
label(label) {}
|
||||||
|
|
||||||
} // namespace impeller
|
} // namespace impeller
|
||||||
|
@ -21,11 +21,11 @@ struct SamplerDescriptor final : public Comparable<SamplerDescriptor> {
|
|||||||
SamplerAddressMode height_address_mode = SamplerAddressMode::kClampToEdge;
|
SamplerAddressMode height_address_mode = SamplerAddressMode::kClampToEdge;
|
||||||
SamplerAddressMode depth_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();
|
||||||
|
|
||||||
SamplerDescriptor(std::string label,
|
SamplerDescriptor(std::string_view label,
|
||||||
MinMagFilter min_filter,
|
MinMagFilter min_filter,
|
||||||
MinMagFilter mag_filter,
|
MinMagFilter mag_filter,
|
||||||
MipFilter mip_filter);
|
MipFilter mip_filter);
|
||||||
|
@ -782,6 +782,7 @@ void Canvas::DrawVertices(const std::shared_ptr<VerticesGeometry>& vertices,
|
|||||||
contents->SetEffectTransform(effect_transform);
|
contents->SetEffectTransform(effect_transform);
|
||||||
contents->SetTexture(texture);
|
contents->SetTexture(texture);
|
||||||
contents->SetTileMode(x_tile_mode, y_tile_mode);
|
contents->SetTileMode(x_tile_mode, y_tile_mode);
|
||||||
|
contents->SetSamplerDescriptor(sampler_descriptor);
|
||||||
|
|
||||||
entity.SetContents(paint.WithFilters(std::move(contents)));
|
entity.SetContents(paint.WithFilters(std::move(contents)));
|
||||||
AddRenderEntityToCurrentPass(entity);
|
AddRenderEntityToCurrentPass(entity);
|
||||||
|
@ -34,9 +34,11 @@ const std::unique_ptr<const Sampler>& SamplerLibraryMTL::GetSampler(
|
|||||||
if (@available(iOS 14.0, macos 10.12, *)) {
|
if (@available(iOS 14.0, macos 10.12, *)) {
|
||||||
desc.borderColor = MTLSamplerBorderColorTransparentBlack;
|
desc.borderColor = MTLSamplerBorderColorTransparentBlack;
|
||||||
}
|
}
|
||||||
|
#ifdef IMPELLER_DEBUG
|
||||||
if (!descriptor.label.empty()) {
|
if (!descriptor.label.empty()) {
|
||||||
desc.label = @(descriptor.label.c_str());
|
desc.label = @(descriptor.label.data());
|
||||||
}
|
}
|
||||||
|
#endif // IMPELLER_DEBUG
|
||||||
|
|
||||||
auto mtl_sampler = [device_ newSamplerStateWithDescriptor:desc];
|
auto mtl_sampler = [device_ newSamplerStateWithDescriptor:desc];
|
||||||
if (!mtl_sampler) {
|
if (!mtl_sampler) {
|
||||||
|
@ -92,7 +92,7 @@ static vk::UniqueSampler CreateSampler(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!desc.label.empty()) {
|
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);
|
return std::move(sampler.value);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user