diff options
| author | zakk <zakk@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2005-08-26 04:48:05 +0000 | 
|---|---|---|
| committer | zakk <zakk@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2005-08-26 04:48:05 +0000 | 
| commit | 952c5c128f9efaea89d41d882c4ea3ade7df4591 (patch) | |
| tree | 91b84d9be7afad7e99ac64a640a65b6cb5081900 /q3radiant/PlugInManager.h | |
| parent | c2c2e0d25d6cdb7d42d7dc981a863f65f94f281d (diff) | |
| download | ioquake3-aero-952c5c128f9efaea89d41d882c4ea3ade7df4591.tar.gz ioquake3-aero-952c5c128f9efaea89d41d882c4ea3ade7df4591.zip  | |
Itsa me, quake3io!
git-svn-id: svn://svn.icculus.org/quake3/trunk@2 edf5b092-35ff-0310-97b2-ce42778d08ea
Diffstat (limited to 'q3radiant/PlugInManager.h')
| -rwxr-xr-x | q3radiant/PlugInManager.h | 100 | 
1 files changed, 100 insertions, 0 deletions
diff --git a/q3radiant/PlugInManager.h b/q3radiant/PlugInManager.h new file mode 100755 index 0000000..1b77e94 --- /dev/null +++ b/q3radiant/PlugInManager.h @@ -0,0 +1,100 @@ +/* +=========================================================================== +Copyright (C) 1999-2005 Id Software, Inc. + +This file is part of Quake III Arena source code. + +Quake III Arena source code is free software; you can redistribute it +and/or modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of the License, +or (at your option) any later version. + +Quake III Arena source code is distributed in the hope that it will be +useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with Foobar; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA +=========================================================================== +*/ +// PlugInManager.h: interface for the CPlugInManager class.
 +//
 +//////////////////////////////////////////////////////////////////////
 +
 +#if !defined(AFX_PLUGINMANAGER_H__CFB18412_55FE_11D2_B082_00AA00A410FC__INCLUDED_)
 +#define AFX_PLUGINMANAGER_H__CFB18412_55FE_11D2_B082_00AA00A410FC__INCLUDED_
 +
 +#if _MSC_VER >= 1000
 +#pragma once
 +#endif // _MSC_VER >= 1000
 +
 +#include "plugin.h"
 +
 +class CPlugInManager  
 +{
 +private:
 +  CObArray m_PlugIns;
 +  CPtrArray m_BrushHandles;
 +  CPtrArray m_SelectedBrushHandles;
 +  CPtrArray m_ActiveBrushHandles;
 +
 +  CPlugIn *m_pTexturePlug;
 +  CPlugIn *m_pSurfaceListPlug;
 +
 +  // v1.70
 +  // brushes of the current entity ( see m_SelectedBrushHandles and m_ActiveBrushHandles )
 +  CPtrArray m_EntityBrushHandles;
 +  // allocated entities, not commited yet ( see m_BrushHandles )
 +  CPtrArray m_EntityHandles;
 +
 +  // tells in which array to look when given a patch index
 +  enum EPatchesMode { EActivePatches, ESelectedPatches, EAllocatedPatches } PatchesMode;
 +  // patches handles (brush_t*)
 +  CPtrArray m_PatchesHandles;
 +  // plugin-allocated patches, not commited yet (patchMesh_t*)
 +  CPtrArray m_PluginPatches;
 +
 +public:
 +	CPlugIn * PluginForModule( HMODULE hPlug );
 +	CPtrArray& GetActiveHandles() {return m_ActiveBrushHandles; };
 +	CPtrArray& GetSelectedHandles() {return m_SelectedBrushHandles; };
 +	CPtrArray& GetPluginPatches() {return m_PluginPatches; };
 +	brush_t* FindBrushHandle(void *vp);
 +	patchMesh_t* FindPatchHandle(int index);
 +	int CreatePatchHandle();
 +	int AllocateActivePatchHandles();
 +	int AllocateSelectedPatchHandles();
 +	void CommitPatchHandleToMap(int index, patchMesh_t *pMesh, char *texName);
 +	void ReleasePatchesHandles() { m_PatchesHandles.RemoveAll(); m_PluginPatches.RemoveAll(); }
 +	void AddFaceToBrushHandle(void *vp, vec3_t v1, vec3_t v2, vec3_t v3);
 +	void CommitBrushHandleToMap(void *vp);
 +	void DeleteBrushHandle(LPVOID vp);
 +	LPVOID CreateBrushHandle();
 +	void Dispatch(int n, const char *p);
 +	void Cleanup();
 +	void Init(const char* pPath);
 +	CPlugInManager();
 +	virtual ~CPlugInManager();
 +	
 +	// the texture manager front ends the single load
 +	// addins (texture, model, map formats.. etc.)
 +	_QERTextureInfo* GetTextureInfo();
 +	void LoadTexture(const char *pFilename);
 +	
 +	LPVOID GetSurfaceFlags();
 +	
 +	// v1.70
 +	CPtrArray& GetEntityBrushHandles() {return m_EntityBrushHandles; };
 +	CPtrArray& GetEntityHandles() {return m_EntityHandles; };
 +	// the vpBrush needs to be in m_BrushHandles
 +	void CommitBrushHandleToEntity( LPVOID vpBrush, LPVOID vpEntity );
 +	// the vpEntity needs to be in m_EntityHandles
 +	void CommitEntityHandleToMap( LPVOID vpEntity );
 +
 +protected:
 +	int FillFuncTable(CPlugIn *pPlug);		// PGM
 +};
 +
 +#endif // !defined(AFX_PLUGINMANAGER_H__CFB18412_55FE_11D2_B082_00AA00A410FC__INCLUDED_)
  | 
