Skip to content

Commit

Permalink
Updated render predicate docs (#438)
Browse files Browse the repository at this point in the history
* Updated render predicate docs

* Update material.md
  • Loading branch information
britzl authored May 17, 2024
1 parent 0450458 commit 0f86a0f
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 2 deletions.
Binary file removed docs/en/manuals/images/render/render_predicate.png
Binary file not shown.
Binary file removed docs/en/manuals/images/render/[email protected]
Binary file not shown.
27 changes: 25 additions & 2 deletions docs/en/manuals/render.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,32 @@ To be able to control the draw order of objects, you create render _predicates_.

Each object that is drawn onto the screen has a material attached to it that controls how the object should be drawn to the screen. In the material, you specify one or more _tags_ that should be associated with the material.

In your render script, you can then create a *render predicate* and specify which tags should belong to that predicate. When you tell the engine to draw the predicate, each object with a material containing a tag matching the list specified for the predicate will be drawn.
In your render script, you can then create a *render predicate* and specify which tags should belong to that predicate. When you tell the engine to draw the predicate, each object with a material containing all of the tags specified for the predicate will be drawn.

```
Sprite 1 Sprite 2 Sprite 3 Sprite 4
Material A Material A Material B Material C
outlined outlined greyscale outlined
tree tree tree house
```

```lua
-- a predicate matching all sprites with tag "tree"
local trees = render.predicate({"tree"})
-- will draw Sprite 1, 2 and 3
render.draw(trees)

-- a predicate matching all sprites with tag "outlined"
local outlined = render.predicate({"outlined"})
-- will draw Sprite 1, 2 and 4
render.draw(outlined)

-- a predicate matching all sprites with tags "outlined" AND "tree"
local outlined_trees = render.predicate({"outlined", "tree"})
-- will draw Sprite 1 and 2
render.draw(outlined_trees)
```

![Render predicate](images/render/render_predicate.png){srcset="images/render/render_[email protected] 2x"}

A detailed description on how materials work can be found in the [Material documentation](/manuals/material).

Expand Down

0 comments on commit 0f86a0f

Please sign in to comment.