Emerge.Config.RendererCache (Emerge v0.5.1)

Copy Markdown View Source

Reuse rendered content instead of drawing it again. Set this record as Emerge.Config.Renderer.cache. Leave the defaults unless profiling suggests a memory or frame-time problem.

%Emerge.Config{
  renderer: %Emerge.Config.Renderer{
    cache: %Emerge.Config.RendererCache{enabled: false}
  }
}

Fields

  • enabled — :auto (default), true or false. Automatic enables caching for GPU rendering and disables it for an explicitly selected raster API. false disables renderer caching, not the image cache under assets.cache.
  • max_new_payloads_per_frame — maximum new paint-cache entries created in one drawn frame; defaults to 64. Lower values spread cache creation over more frames. 0 prevents new entries while allowing existing entries to be reused.
  • paint_layer — Emerge.Config.PaintLayerCache, supplying memory, entry and age limits for reusable painted content.

These settings apply to each renderer separately and require a new viewport to change. They do not set a total application memory limit.

Summary

Types

Explicit cache enable/disable, or backend-dependent automatic selection.

Canonical form after nested keyword records have been expanded.

Typed keyword shorthand accepted in this record's parent field.

t()

Types

enabled()

@type enabled() :: boolean() | :auto

Explicit cache enable/disable, or backend-dependent automatic selection.

normalized_t()

@type normalized_t() :: %Emerge.Config.RendererCache{
  enabled: enabled(),
  max_new_payloads_per_frame: non_neg_integer(),
  paint_layer: Emerge.Config.PaintLayerCache.normalized_t()
}

Canonical form after nested keyword records have been expanded.

options()

@type options() :: [
  enabled: enabled(),
  max_new_payloads_per_frame: non_neg_integer(),
  paint_layer:
    Emerge.Config.PaintLayerCache.t() | Emerge.Config.PaintLayerCache.options()
]

Typed keyword shorthand accepted in this record's parent field.

t()

@type t() :: %Emerge.Config.RendererCache{
  enabled: enabled(),
  max_new_payloads_per_frame: non_neg_integer(),
  paint_layer:
    Emerge.Config.PaintLayerCache.t() | Emerge.Config.PaintLayerCache.options()
}