event
Die Event-Funktion wird normalerweise einmalig für jede Entity aufgerufen, der dieses
Material
zugewiesen wurde. Bei einem View-Material wird die Funktion einmalig vor dem Rendern des View aufgerufen. Die Funktion wird normalerweise zum Initialisieren des Materials, Generieren von Bitmaps usw. benutzt. Andere Event-Modi können per ENABLE_TREE, ENABLE_RENDER,
oder ENABLE_VIEW-Flags gesetzt werden. Der Material-Pointer wird der Event-Funktion als erstes Argument übergeben.
Typ:
function
Verändert:
mtl - vordefinierter Material-Pointer, auf das Material
gesetzt
my - vordefinierter Entity-Pointer, auf die Entity gesetzt
Bemerkungen:
- Ist das Material keiner Entity und keinem View zugewiesen, wird der Event normalerweise
niemals aufgerufen (es sei denn, ENABLE_TREE, ENABLE_RENDER,
oder ENABLE_VIEW sind gesetzt). Zum bloßen Initialisieren des Materials, unabhängig ob es zugewiesen wurde,
verwenden Sie eine Startup-Funktion.
- Breakpoints können in Material-Events nicht verwendet werden.
- Der mtl-Pointer
läßt sich, wenn er in einem ENABLE_RENDER-Materialevent
geändert wurde, in Abhängigkeit des aktuellen View zum temporären
Umschalten des Materials verwenden. Das neu gesetzte Material hat Priorität vor anderen Materialien oder Effekten aus dem Modell (s. Beispiel 2):
Beispiel:
function mtl_enviro_init()
{
bmap_to_cubemap(bmap_for_entity(my,1)); // konvertiere Entity Skin 1 zu einer Cube Map.
}
material mtl_enviro
{
event = mtl_enviro_init;
...
}
Beispiel 2:
// switch between different materials dependent on the view (A7 only)
function mtl_event_render()
{
if (render_view == view_radar) {
mtl = mtl_radar; return;
}
if (render_view == view_depth) {
mtl = mtl_depth; return;
}
}
...
MATERIAL* mtl_plain =
{
event = mtl_event_render;
flags = ENABLE_RENDER;
...
}
Siehe auch:
material flags
► Aktuelle Version Online