Draw Manager: Introduce a foreach function for all shgroups in a pass.

This commit is contained in:
Clément Foucault 2017-05-02 19:04:55 +02:00
parent bde4499496
commit 54bde82445
2 changed files with 8 additions and 0 deletions

View File

@ -291,6 +291,7 @@ void DRW_shgroup_uniform_mat4(DRWShadingGroup *shgroup, const char *name, const
/* Passes */
DRWPass *DRW_pass_create(const char *name, DRWState state);
void DRW_pass_foreach_shgroup(DRWPass *pass, void (*callback)(void *userData, DRWShadingGroup *shgrp), void *userData);
/* Viewport */
typedef enum {

View File

@ -1023,6 +1023,13 @@ void DRW_pass_free(DRWPass *pass)
BLI_freelistN(&pass->shgroups);
}
void DRW_pass_foreach_shgroup(DRWPass *pass, void (*callback)(void *userData, DRWShadingGroup *shgrp), void *userData)
{
for (DRWShadingGroup *shgroup = pass->shgroups.first; shgroup; shgroup = shgroup->next) {
callback(userData, shgroup);
}
}
/** \} */