aboutsummaryrefslogtreecommitdiffstats
path: root/src/gfx.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gfx.c')
-rw-r--r--src/gfx.c58
1 files changed, 53 insertions, 5 deletions
diff --git a/src/gfx.c b/src/gfx.c
index ff7b29cd..dfc9cb75 100644
--- a/src/gfx.c
+++ b/src/gfx.c
@@ -15,47 +15,57 @@
#include "gfx.h"
-void DEPRECATED("Use gfxInit() instead") gdispInit() { gfxInit(); }
+static bool_t initDone = FALSE;
/* These init functions are defined by each module but not published */
extern void _gosInit(void);
+extern void _gosDeinit(void);
#if GFX_USE_GDISP
extern void _gdispInit(void);
+ extern void _gdispDeinit(void);
#endif
#if GFX_USE_GWIN
extern void _gwinInit(void);
+ extern void _gwinDeinit(void);
#endif
#if GFX_USE_GEVENT
extern void _geventInit(void);
+ extern void _geventDeinit(void);
#endif
#if GFX_USE_GTIMER
extern void _gtimerInit(void);
+ extern void _gtimerDeinit(void);
#endif
#if GFX_USE_GINPUT
extern void _ginputInit(void);
+ extern void _ginputDeinit(void);
#endif
#if GFX_USE_GADC
extern void _gadcInit(void);
+ extern void _gadcDeinit(void);
#endif
#if GFX_USE_GAUDIN
extern void _gaudinInit(void);
+ extern void _gaudinDeinit(void);
#endif
#if GFX_USE_GAUDOUT
extern void _gaudoutInit(void);
+ extern void _gaudoutDeinit(void);
#endif
#if GFX_USE_GMISC
extern void _gmiscInit(void);
+ extern void _gmiscDeinit(void);
#endif
-void gfxInit(void) {
- static bool_t initDone = FALSE;
-
+void gfxInit(void)
+{
/* Ensure we only initialise once */
if (initDone)
return;
initDone = TRUE;
- /* These must be initialised in the order of their dependancies */
+ // These must be initialised in the order of their dependancies
+
_gosInit();
#if GFX_USE_GMISC
_gmiscInit();
@@ -85,3 +95,41 @@ void gfxInit(void) {
_gaudoutInit();
#endif
}
+
+void gfxDeinit(void)
+{
+ if (!initDone)
+ return;
+ initDone = FALSE;
+
+ // We deinitialise the opposite way as we initialised
+ #if GFX_USE_GAUDOUT
+ _gaudoutDeinit();
+ #endif
+ #if GFX_USE_GAUDIN
+ _gaoudinDeinit();
+ #endif
+ #if GFX_USE_GADC
+ _gadcDeinit();
+ #endif
+ #if GFX_USE_GINPUT
+ _ginputDeinit();
+ #endif
+ #if GFX_USE_GWIN
+ _gwinDeinit();
+ #endif
+ #if GFX_USE_GDISP
+ _gdispDeinit();
+ #endif
+ #if GFX_USE_GTIMER
+ _gtimerDeinit();
+ #endif
+ #if GFX_USE_GEVENT
+ _geventDeinit();
+ #endif
+ #if GFX_USE_GMISC
+ _gmiscInit();
+ #endif
+ _gosDeinit();
+}
+