Skip to content

Layers

Un layer est un conteneur <div> nommé géré par LayerManager. Une instance de renderer peut déclarer autant de layers que nécessaire.

Configuration

ts
['@gwenjs/renderer-html', {
  layers: {
    background: { order: 0   },          // ciel, animations CSS parallaxe
    bubbles:    { order: 20, coordinate: 'world' }, // bulles de dialogue en espace monde
    hud:        { order: 100 },          // barre de vie, score, minimap
  },
}]
ChampTypeDéfautDescription
ordernumberrequisz-index. Doit être unique parmi tous les renderers.
coordinate'screen' | 'world''screen''world' active syncWorldPosition() sur les handles.

Comment les layers sont montés

LayerManager trie tous les layers de tous les plugins renderer par order, puis les insère en tant qu'enfants du conteneur racine. Chaque <div> reçoit :

html
<div
  data-gwen-layer="renderer:html:hud"
  style="position:absolute; inset:0; z-index:100; pointer-events:none"
></div>

pointer-events: none est appliqué automatiquement sur les layers en coordonnées screen afin que l'overlay DOM ne bloque pas les entrées du jeu. Supprimez-le sur des éléments enfants spécifiques lorsqu'une interface interactive est nécessaire.

Slots par entité

À l'intérieur de chaque layer, chaque entité qui appelle useHTML(layerName) obtient son propre <div> enfant :

html
<div data-gwen-layer="renderer:html:hud">
  <div data-gwen-slot="42" style="position:absolute"><!-- contenu entité 42 --></div>
  <div data-gwen-slot="43" style="position:absolute"><!-- contenu entité 43 --></div>
</div>

Les slots sont alloués au premier appel de useHTML() et libérés automatiquement lors de la destruction de l'acteur.