µGFX  2.9
version 2.9
gmisc_options.h
Go to the documentation of this file.
1 /*
2  * This file is subject to the terms of the GFX License. If a copy of
3  * the license was not distributed with this file, you can obtain one at:
4  *
5  * http://ugfx.io/license.html
6  */
7 
8 /**
9  * @file src/gmisc/gmisc_options.h
10  * @brief GMISC - Miscellaneous Routines options header file.
11  *
12  * @addtogroup GMISC
13  * @{
14  */
15 
16 #ifndef _GMISC_OPTIONS_H
17 #define _GMISC_OPTIONS_H
18 
19 /**
20  * @name GMISC Functionality to be included
21  * @{
22  */
23  /**
24  * @brief Include array operation functions
25  * @details Defaults to GFXOFF
26  */
27  #ifndef GMISC_NEED_ARRAYOPS
28  #define GMISC_NEED_ARRAYOPS GFXOFF
29  #endif
30  /**
31  * @brief Include fast floating point trig functions (fsin, fcos)
32  * @details Defaults to GFXOFF
33  */
34  #ifndef GMISC_NEED_FASTTRIG
35  #define GMISC_NEED_FASTTRIG GFXOFF
36  #endif
37  /**
38  * @brief Include fast fixed point trig functions (ffsin, ffcos)
39  * @details Defaults to GFXOFF
40  */
41  #ifndef GMISC_NEED_FIXEDTRIG
42  #define GMISC_NEED_FIXEDTRIG GFXOFF
43  #endif
44  /**
45  * @brief Include fast inverse square root (x^-1/2)
46  * @details Defaults to GFXOFF
47  */
48  #ifndef GMISC_NEED_INVSQRT
49  #define GMISC_NEED_INVSQRT GFXOFF
50  #endif
51  /**
52  * @brief Include polygon hit test functions
53  * @details Defaults to GFXOFF
54  */
55  #ifndef GMISC_NEED_HITTEST_POLY
56  #define GMISC_NEED_HITTEST_POLY GFXOFF
57  #endif
58 /**
59  * @}
60  *
61  * @name GMISC Optional Parameters
62  * @{
63  */
64  /**
65  * @brief Modifies the @p invsqrt() function to assume a different integer to floating point endianness.
66  * @note Normally the floating point format and the integer format have
67  * the same endianness. Unfortunately there are some strange
68  * processors that don't eg. some very early ARM devices.
69  * For those where the endianness doesn't match you can fix it by
70  * defining GMISC_INVSQRT_MIXED_ENDIAN.
71  * @note This still assumes the processor is using an ieee floating point format.
72  *
73  * If you have a software floating point that uses a non-standard
74  * floating point format (or very strange hardware) then define
75  * GMISC_INVSQRT_REAL_SLOW and it will do it the hard way.
76  */
77  #ifndef GMISC_INVSQRT_MIXED_ENDIAN
78  #define GMISC_INVSQRT_MIXED_ENDIAN GFXOFF
79  #endif
80  /**
81  * @brief Modifies the @p invsqrt() function to do things the long slow way.
82  * @note This causes the @p invsqrt() function to work regardless of the
83  * processor floating point format.
84  * @note This makes the @p invsqrt() function very slow.
85  */
86  #ifndef GMISC_INVSQRT_REAL_SLOW
87  #define GMISC_INVSQRT_REAL_SLOW GFXOFF
88  #endif
89 /** @} */
90 
91 #endif /* _GMISC_OPTIONS_H */
92 /** @} */