/*
-Copyright (C) 2002 Dominic Clifton.
+Copyright (C) 1999-2007 id Software, Inc. and contributors.
+For a list of contributors, see the accompanying CONTRIBUTORS file.
This file is part of GtkRadiant.
#ifndef _PLUGIN_H_
#define _PLUGIN_H_
-#include "mathlib.h"
-#include <string.h>
-#include "qertypes.h"
+/*!
+\todo need general notice about lib purpose etc.
+and the external dependencies (such as GLib, STL, mathlib etc.)
+*/
+
+/*!
+\todo not sure about what should be used for common data structures, GLib or STL
+I think STL would be better since I intend on using STL in synapse
+*/
+
#include <stdio.h>
+#include "synapse.h"
+#include "iplugin.h"
#define USE_QERTABLE_DEFINE
#include "qerplugin.h"
-extern _QERFuncTable_1 __QERTABLENAME;
-
-#define USE_QGLTABLE_DEFINE
+#include "imodel.h"
#include "igl.h"
-extern OpenGLBinding __QGLTABLENAME;
+#include "ifilesystem.h"
+#include "ishaders.h"
+
+extern _QERFuncTable_1 g_FuncTable;
+extern _QERQglTable g_QglTable;
+extern _QERShadersTable g_ShadersTable;
+
+#define QERApp_Shader_ForName g_ShadersTable.m_pfnShader_ForName
+#define QERApp_Try_Shader_ForName g_ShadersTable.m_pfnTry_Shader_ForName
+
+void LoadSpriteModel(entity_interfaces_t *interfaces, const char *name);
+
+extern CSynapseServer* g_pSynapseServer;
+
+class CSynapseClientModel : public CSynapseClient
+{
+public:
+ // CSynapseClient API
+ bool RequestAPI(APIDescriptor_t *pAPI);
+ const char* GetInfo();
+ const char* GetName();
+
+ CSynapseClientModel() { }
+ virtual ~CSynapseClientModel() { }
+};
-#include "imodel.h"
#endif // _PLUGIN_H_