aboutsummaryrefslogtreecommitdiffstats
path: root/src/gfx.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gfx.c')
-rw-r--r--src/gfx.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/gfx.c b/src/gfx.c
index 46003f09..dfc9cb75 100644
--- a/src/gfx.c
+++ b/src/gfx.c
@@ -15,6 +15,8 @@
#include "gfx.h"
+static bool_t initDone = FALSE;
+
/* These init functions are defined by each module but not published */
extern void _gosInit(void);
extern void _gosDeinit(void);
@@ -57,6 +59,11 @@ extern void _gosDeinit(void);
void gfxInit(void)
{
+ /* Ensure we only initialise once */
+ if (initDone)
+ return;
+ initDone = TRUE;
+
// These must be initialised in the order of their dependancies
_gosInit();
@@ -91,8 +98,11 @@ void gfxInit(void)
void gfxDeinit(void)
{
- // We deinitialise the opposit way as we initialised
+ if (!initDone)
+ return;
+ initDone = FALSE;
+ // We deinitialise the opposite way as we initialised
#if GFX_USE_GAUDOUT
_gaudoutDeinit();
#endif