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.