µGFX  2.9
version 2.9
gfx.c
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/gfx.c
10  * @brief GFX common routines.
11  */
12 
13 /* Display various warnings from gfx_rules.h */
14 #define GFX_DISPLAY_RULE_WARNINGS GFXON
15 
16 #include "../gfx.h"
17 
18 static gBool gfxInitDone = gFalse;
19 
20 /* These init functions are defined by each module but not published */
21 extern void _gosInit(void);
22 extern void _gosPostInit(void);
23 extern void _gosDeinit(void);
24 #ifdef GFX_OS_PRE_INIT_FUNCTION
25  extern void GFX_OS_PRE_INIT_FUNCTION(void);
26 #endif
27 #ifdef GFX_OS_EXTRA_INIT_FUNCTION
28  extern void GFX_OS_EXTRA_INIT_FUNCTION(void);
29 #endif
30 #ifdef GFX_OS_EXTRA_DEINIT_FUNCTION
31  extern void GFX_OS_EXTRA_DEINIT_FUNCTION(void);
32 #endif
33 #if GFX_USE_GDRIVER
34  extern void _gdriverInit(void);
35  extern void _gdriverDeinit(void);
36 #endif
37 #if GFX_USE_GFILE
38  extern void _gfileInit(void);
39  extern void _gfileDeinit(void);
40 #endif
41 #if GFX_USE_GDISP
42  extern void _gdispInit(void);
43  extern void _gdispDeinit(void);
44 #endif
45 #if GFX_USE_GWIN
46  extern void _gwinInit(void);
47  extern void _gwinDeinit(void);
48 #endif
49 #if GFX_USE_GEVENT
50  extern void _geventInit(void);
51  extern void _geventDeinit(void);
52 #endif
53 #if GFX_USE_GTIMER
54  extern void _gtimerInit(void);
55  extern void _gtimerDeinit(void);
56 #endif
57 #if GFX_USE_GINPUT
58  extern void _ginputInit(void);
59  extern void _ginputDeinit(void);
60 #endif
61 #if GFX_USE_GADC
62  extern void _gadcInit(void);
63  extern void _gadcDeinit(void);
64 #endif
65 #if GFX_USE_GAUDIO
66  extern void _gaudioInit(void);
67  extern void _gaudioDeinit(void);
68 #endif
69 #if GFX_USE_GQUEUE
70  extern void _gqueueInit(void);
71  extern void _gqueueDeinit(void);
72 #endif
73 #if GFX_USE_GMISC
74  extern void _gmiscInit(void);
75  extern void _gmiscDeinit(void);
76 #endif
77 #if GFX_USE_GTRANS
78  extern void _gtransInit(void);
79  extern void _gtransDeinit(void);
80 #endif
81 
82 void gfxInit(void)
83 {
84  /* Ensure we only initialise once */
85  if (gfxInitDone)
86  return;
87  gfxInitDone = gTrue;
88 
89  // These must be initialised in the order of their dependancies
90 
91  #ifdef GFX_OS_PRE_INIT_FUNCTION
92  GFX_OS_PRE_INIT_FUNCTION();
93  #endif
94  _gosInit();
95  #ifdef GFX_OS_EXTRA_INIT_FUNCTION
96  GFX_OS_EXTRA_INIT_FUNCTION();
97  #endif
98  #if GFX_USE_GQUEUE
99  _gqueueInit();
100  #endif
101  #if GFX_USE_GMISC
102  _gmiscInit();
103  #endif
104  #if GFX_USE_GTRANS
105  _gtransInit();
106  #endif
107  #if GFX_USE_GEVENT
108  _geventInit();
109  #endif
110  #if GFX_USE_GTIMER
111  _gtimerInit();
112  #endif
113  #if GFX_USE_GDRIVER
114  _gdriverInit();
115  #endif
116  #if GFX_USE_GFILE
117  _gfileInit();
118  #endif
119  #if GFX_USE_GDISP
120  _gdispInit();
121  #endif
122  #if GFX_USE_GINPUT
123  _ginputInit();
124  #endif
125  #if GFX_USE_GADC
126  _gadcInit();
127  #endif
128  #if GFX_USE_GAUDIO
129  _gaudioInit();
130  #endif
131  #if GFX_USE_GWIN
132  _gwinInit();
133  #endif
134  _gosPostInit();
135  #if GFX_OS_CALL_UGFXMAIN
136  uGFXMain(0);
137  #endif
138 }
139 
140 void gfxDeinit(void)
141 {
142  if (!gfxInitDone)
143  return;
144  gfxInitDone = gFalse;
145 
146  // We deinitialise the opposite way as we initialised
147  #if GFX_USE_GWIN
148  _gwinDeinit();
149  #endif
150  #if GFX_USE_GAUDIO
151  _gaudioDeinit();
152  #endif
153  #if GFX_USE_GADC
154  _gadcDeinit();
155  #endif
156  #if GFX_USE_GINPUT
157  _ginputDeinit();
158  #endif
159  #if GFX_USE_GDISP
160  _gdispDeinit();
161  #endif
162  #if GFX_USE_GFILE
163  _gfileDeinit();
164  #endif
165  #if GFX_USE_GDRIVER
166  _gdriverDeinit();
167  #endif
168  #if GFX_USE_GTIMER
169  _gtimerDeinit();
170  #endif
171  #if GFX_USE_GEVENT
172  _geventDeinit();
173  #endif
174  #if GFX_USE_GTRANS
175  _gtransDeinit();
176  #endif
177  #if GFX_USE_GMISC
178  _gmiscDeinit();
179  #endif
180  #if GFX_USE_GQUEUE
181  _gqueueDeinit();
182  #endif
183  #ifdef GFX_OS_EXTRA_DEINIT_FUNCTION
184  GFX_OS_EXTRA_DEINIT_FUNCTION();
185  #endif
186  _gosDeinit();
187 }
void gfxDeinit(void)
The one call to end it all.
Definition: gfx.c:140
void gfxInit(void)
The one call to start it all.
Definition: gfx.c:82
void GFXUSERFN uGFXMain(void)
The user supplied function containing all the user uGFX application code.