-// =============================================================================
-// Globals
-
-// function tables
-_QERFuncTable_1 g_FuncTable;
-_QERAppDataTable g_DataTable;
-_QERQglTable g_QglTable;
-_QERAppShadersTable g_ShadersTable;
-_QERFileSystemTable g_VFSTable;
-_QERScripLibTable g_ScripLibTable;
-_QERBrushTable g_BrushTable;
-
-static bool g_bInterfaceInitDone = false;
-
-// =============================================================================
-// SYNAPSE
-
-CSynapseServer* g_pSynapseServer = NULL;
-CSynapseClientShaders g_SynapseClient;
-
-static const XMLConfigEntry_t entries[] =
- {
- { SHADERS_MAJOR, SYN_PROVIDE, sizeof(_QERShadersTable), NULL },
- { VFS_MAJOR, SYN_REQUIRE, sizeof(g_VFSTable), &g_VFSTable },
- { NULL, SYN_UNKNOWN, 0, NULL } };
-
-#if __GNUC__ >= 4
-#pragma GCC visibility push(default)
-#endif
-extern "C" CSynapseClient* SYNAPSE_DLL_EXPORT Synapse_EnumerateInterfaces( const char *version, CSynapseServer *pServer ) {
-#if __GNUC__ >= 4
-#pragma GCC visibility pop
-#endif
- if (strcmp(version, SYNAPSE_VERSION))
- {
- Syn_Printf("ERROR: synapse API version mismatch: should be '" SYNAPSE_VERSION "', got '%s'\n", version);
- return NULL;
- }
- g_pSynapseServer = pServer;
- g_pSynapseServer->IncRef();
- Set_Syn_Printf(g_pSynapseServer->Get_Syn_Printf());
-
- if ( !g_SynapseClient.ConfigXML( pServer, NULL, entries ) ) {
- return NULL;
- }
-
- g_SynapseClient.AddAPI(RADIANT_MAJOR, NULL, sizeof(_QERFuncTable_1), SYN_REQUIRE, &g_FuncTable);
- g_SynapseClient.AddAPI(DATA_MAJOR, NULL, sizeof(_QERAppDataTable), SYN_REQUIRE, &g_DataTable);
- g_SynapseClient.AddAPI(QGL_MAJOR, NULL, sizeof(_QERQglTable), SYN_REQUIRE, &g_QglTable);
- g_SynapseClient.AddAPI(APPSHADERS_MAJOR, NULL, sizeof(_QERAppShadersTable), SYN_REQUIRE, &g_ShadersTable);
- g_SynapseClient.AddAPI(SCRIPLIB_MAJOR, NULL, sizeof(_QERScripLibTable), SYN_REQUIRE, &g_ScripLibTable);
- g_SynapseClient.AddAPI(BRUSH_MAJOR, NULL, sizeof(_QERBrushTable), SYN_REQUIRE, &g_BrushTable);
-
- return &g_SynapseClient;
+#include "ishaders.h"
+#include "ifilesystem.h"
+#include "itextures.h"
+#include "iscriplib.h"
+#include "qerplugin.h"
+
+#include "string/string.h"
+#include "modulesystem/singletonmodule.h"
+
+#include "shaders.h"
+
+class ShadersDependencies :
+ public GlobalFileSystemModuleRef,
+ public GlobalTexturesModuleRef,
+ public GlobalScripLibModuleRef,
+ public GlobalRadiantModuleRef
+{
+ImageModuleRef m_bitmapModule;
+public:
+ShadersDependencies() :
+ //m_bitmapModule( "bmp" ){
+ m_bitmapModule( "png" ){