Monado OpenXR Runtime
m_permutation.h
Go to the documentation of this file.
1 // Copyright 2020, Collabora, Ltd.
2 // SPDX-License-Identifier: BSL-1.0
3 /*!
4  * @file
5  * @brief Code to generate permutation of indices.
6  * @author Jakob Bornecrantz <jakob@collabora.com>
7  * @ingroup aux_math
8  */
9 
10 
11 #include "xrt/xrt_compiler.h"
12 
13 #pragma once
14 
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 
21 
23 {
24  uint32_t *indices;
25  uint32_t *elements;
26  uint32_t i;
27  uint32_t n;
28 };
29 
30 /*!
31  * Returns false if there are no new permutation available, the only thing you
32  * need to do before calling this function is to make sure that the struct has
33  * been zero initialised.
34  */
35 bool
36 m_permutator_step(struct m_permutator *mp, uint32_t *out_elements, uint32_t num_elements);
37 
38 void
39 m_permutator_reset(struct m_permutator *mp);
40 
41 
42 void
43 m_do_the_thing(void);
44 
45 
46 #ifdef __cplusplus
47 }
48 #endif
bool m_permutator_step(struct m_permutator *mp, uint32_t *out_elements, uint32_t num_elements)
Returns false if there are no new permutation available, the only thing you need to do before calling...
Definition: m_permutation.c:79
Definition: m_permutation.h:23
Header holding common defines.