use crate::FrameId;
use crate::{FontId, Px, TextOverflow, TextWrap};
#[derive(Debug, Default, Clone, Copy)]
pub struct RendererTextPerfSnapshot {
pub frame_id: FrameId,
pub font_stack_key: u64,
pub font_db_revision: u64,
pub fallback_policy_key: u64,
pub frame_missing_glyphs: u64,
pub frame_texts_with_missing_glyphs: u64,
pub blobs_live: u64,
pub blob_cache_entries: u64,
pub shape_cache_entries: u64,
pub measure_cache_buckets: u64,
pub shape_cache_bytes_estimate_total: u64,
pub blob_paint_palette_bytes_estimate_total: u64,
pub blob_decorations_bytes_estimate_total: u64,
pub unwrapped_layout_cache_entries: u64,
pub frame_unwrapped_layout_cache_hits: u64,
pub frame_unwrapped_layout_cache_misses: u64,
pub frame_unwrapped_layouts_created: u64,
pub frame_cache_resets: u64,
pub frame_blob_cache_hits: u64,
pub frame_blob_cache_misses: u64,
pub frame_blobs_created: u64,
pub frame_shape_cache_hits: u64,
pub frame_shape_cache_misses: u64,
pub frame_shapes_created: u64,
pub mask_atlas: RendererGlyphAtlasPerfSnapshot,
pub color_atlas: RendererGlyphAtlasPerfSnapshot,
pub subpixel_atlas: RendererGlyphAtlasPerfSnapshot,
pub registered_font_blobs_count: u64,
pub registered_font_blobs_total_bytes: u64,
pub family_id_cache_entries: u64,
pub baseline_metrics_cache_entries: u64,
}
#[derive(Debug, Default, Clone, Copy)]
pub struct RendererGlyphAtlasPerfSnapshot {
pub width: u32,
pub height: u32,
pub pages: u32,
pub entries: u64,
pub used_px: u64,
pub capacity_px: u64,
pub frame_hits: u64,
pub frame_misses: u64,
pub frame_inserts: u64,
pub frame_evict_glyphs: u64,
pub frame_evict_pages: u64,
pub frame_out_of_space: u64,
pub frame_too_large: u64,
pub frame_pending_uploads: u64,
pub frame_pending_upload_bytes: u64,
pub frame_upload_bytes: u64,
}
#[derive(Debug, Default, Clone)]
pub struct RendererTextFontTraceSnapshot {
pub frame_id: FrameId,
pub entries: Vec<RendererTextFontTraceEntry>,
}
#[derive(Debug, Clone)]
pub struct RendererTextFontTraceEntry {
pub text_preview: String,
pub text_len_bytes: u32,
pub font: FontId,
pub font_size: Px,
pub scale_factor: f32,
pub wrap: TextWrap,
pub overflow: TextOverflow,
pub max_width: Option<Px>,
pub locale_bcp47: Option<String>,
pub missing_glyphs: u32,
pub families: Vec<RendererTextFontTraceFamilyUsage>,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct RendererTextFontTraceFamilyUsage {
pub family: String,
pub glyphs: u32,
pub missing_glyphs: u32,
pub class: RendererTextFontTraceFamilyClass,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum RendererTextFontTraceFamilyClass {
Requested,
CommonFallback,
SystemFallback,
Unknown,
}
#[derive(Debug, Default, Clone)]
pub struct RendererTextFallbackPolicySnapshot {
pub frame_id: FrameId,
pub font_stack_key: u64,
pub font_db_revision: u64,
pub fallback_policy_key: u64,
pub system_fonts_enabled: bool,
pub locale_bcp47: Option<String>,
pub common_fallback_injection: crate::TextCommonFallbackInjection,
pub prefer_common_fallback: bool,
pub prefer_common_fallback_for_generics: bool,
pub configured_ui_sans_families: Vec<String>,
pub configured_ui_serif_families: Vec<String>,
pub configured_ui_mono_families: Vec<String>,
pub configured_common_fallback_families: Vec<String>,
pub default_ui_sans_candidates: Vec<String>,
pub default_ui_serif_candidates: Vec<String>,
pub default_ui_mono_candidates: Vec<String>,
pub default_common_fallback_families: Vec<String>,
pub common_fallback_stack_suffix: String,
pub common_fallback_candidates: Vec<String>,
pub bundled_profile_contract: RendererBundledFontProfileSnapshot,
}
#[derive(Debug, Default, Clone)]
pub struct RendererBundledFontProfileSnapshot {
pub name: String,
pub provided_roles: Vec<String>,
pub expected_family_names: Vec<String>,
pub guaranteed_generic_families: Vec<String>,
pub ui_sans_families: Vec<String>,
pub ui_serif_families: Vec<String>,
pub ui_mono_families: Vec<String>,
pub common_fallback_families: Vec<String>,
}