#include "plugin.h"
-#define CMD_SEP "-"
+#define CMD_SEP "-"
#define CMD_ABOUT "About..."
// =============================================================================
// Globals
IToolbarButton::EType type;
} toolbar_button_info_t;
-static const toolbar_button_info_t toolbar_buttons[NUM_TOOLBAR_BUTTONS] =
+static const toolbar_button_info_t toolbar_buttons[NUM_TOOLBAR_BUTTONS] =
{
{
"sample.bmp",
"Sample",
- "Sample image",
+ "Sample image",
DoSample,
IToolbarButton::eToggleButton
},
#if __GNUC__ >= 4
#pragma GCC visibility push(default)
#endif
-extern "C" CSynapseClient* SYNAPSE_DLL_EXPORT Synapse_EnumerateInterfaces (const char *version, CSynapseServer *pServer)
+extern "C" CSynapseClient* SYNAPSE_DLL_EXPORT Synapse_EnumerateInterfaces (const char *version, CSynapseServer *pServer)
{
#if __GNUC__ >= 4
#pragma GCC visibility pop
g_SynapseClient.AddAPI(TOOLBAR_MAJOR, SAMPLE_MINOR, sizeof(_QERPlugToolbarTable));
g_SynapseClient.AddAPI(PLUGIN_MAJOR, SAMPLE_MINOR, sizeof(_QERPluginTable));
-
+
g_SynapseClient.AddAPI(RADIANT_MAJOR, NULL, sizeof(g_FuncTable), SYN_REQUIRE, &g_FuncTable);
g_SynapseClient.AddAPI(QGL_MAJOR, NULL, sizeof(g_QglTable), SYN_REQUIRE, &g_QglTable);
g_SynapseClient.AddAPI(VFS_MAJOR, "*", sizeof(g_FileSystemTable), SYN_REQUIRE, &g_FileSystemTable);
{
if (!strcmp(pAPI->major_name, PLUGIN_MAJOR)) {
_QERPluginTable* pTable= static_cast<_QERPluginTable*>(pAPI->mpTable);
-
+
pTable->m_pfnQERPlug_Init = QERPlug_Init;
pTable->m_pfnQERPlug_GetName = QERPlug_GetName;
pTable->m_pfnQERPlug_GetCommandList = QERPlug_GetCommandList;
return true;
} else if (!strcmp(pAPI->major_name, TOOLBAR_MAJOR)) {
_QERPlugToolbarTable* pTable= static_cast<_QERPlugToolbarTable*>(pAPI->mpTable);
-
+
pTable->m_pfnToolbarButtonCount = &ToolbarButtonCount;
pTable->m_pfnGetToolbarButton = &GetToolbarButton;
return true;
}
-
+
Syn_Printf("ERROR: RequestAPI( '%s' ) not found in '%s'\n", pAPI->major_name, GetInfo());
return false;
}
#include "stdafx.h"
+// type 1 = texture filter (name)
+// type 3 = entity filter (name)
+// type 2 = QER_* shader flags
+// type 4 = entity classes
bfilter_t *FilterAdd(bfilter_t *pFilter, int type, int bmask, char *str, int exclude)
{
bfilter_t *pNew = new bfilter_t;
return pNew;
}
+bfilter_t *FilterCreate (int type, int bmask, char *str, int exclude)
+{
+ g_qeglobals.d_savedinfo.filters = FilterAdd(g_qeglobals.d_savedinfo.filters, type, bmask, str, exclude);
+ Syn_Printf("Added filter %s (type: %i, bmask: %i, exclude: %i)\n", str, type, bmask, exclude);
+ return g_qeglobals.d_savedinfo.filters;
+}
+
+extern void PerformFiltering();
+
+void FiltersActivate (void)
+{
+ PerformFiltering();
+ Sys_UpdateWindows(W_XY|W_CAMERA);
+}
+
// removes the filter list at *pFilter, returns NULL pointer
bfilter_t *FilterListDelete(bfilter_t *pFilter)
{
#ifndef _FILTERS_H_
#define _FILTERS_H_
+void FiltersActivate(void);
+bfilter_t *FilterCreate(int type, int bmask, char *str, int exclude);
bfilter_t *FilterAdd(bfilter_t *pFilter, int type, int bmask, char *str, int exclude);
bfilter_t *FilterListDelete(bfilter_t *pFilter);
bfilter_t *FilterUpdate(bfilter_t *pFilter);
{
brush_t *brush;
+ // mattn - this should be removed - otherwise the filters from the
+ // plugins are wiped away with each update
+#if 1
// spog - deletes old filters list and creates new one when
// g_qeglobals.d_savedinfo.exclude is updated
g_qeglobals.d_savedinfo.filters = FilterListDelete(g_qeglobals.d_savedinfo.filters);
g_qeglobals.d_savedinfo.filters = FilterUpdate(g_qeglobals.d_savedinfo.filters);
+#endif
for ( brush = active_brushes.next; brush != &active_brushes; brush = brush->next )
brush->bFiltered = FilterBrush( brush );
#include "pluginmanager.h"
#include "plugin.h"
#include "missing.h"
+#include "filters.h"
#include "version.h"
pTable->m_pfnGetFileTypeRegistry = &GetFileTypeRegistry;
pTable->m_pfnReadProjectKey = &QERApp_ReadProjectKey;
pTable->m_pfnGetMapName = &QERApp_GetMapName;
+ pTable->m_pfnFilterAdd = &FilterCreate;
+ pTable->m_pfnFiltersActivate = &FiltersActivate;
return true;
}