From 952c5c128f9efaea89d41d882c4ea3ade7df4591 Mon Sep 17 00:00:00 2001 From: zakk Date: Fri, 26 Aug 2005 04:48:05 +0000 Subject: Itsa me, quake3io! git-svn-id: svn://svn.icculus.org/quake3/trunk@2 edf5b092-35ff-0310-97b2-ce42778d08ea --- q3radiant/GLInterface.cpp | 93 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100755 q3radiant/GLInterface.cpp (limited to 'q3radiant/GLInterface.cpp') diff --git a/q3radiant/GLInterface.cpp b/q3radiant/GLInterface.cpp new file mode 100755 index 0000000..71c6ff3 --- /dev/null +++ b/q3radiant/GLInterface.cpp @@ -0,0 +1,93 @@ +/* +=========================================================================== +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 +=========================================================================== +*/ +//----------------------------------------------------------------------------- +// +// $LogFile$ +// $Revision: 1.1.1.4.2.1 $ +// $Author: ttimo $ +// $Date: 2000/02/04 22:59:34 $ +// $log$ +// Revision 1.1.1.3 1999/12/29 18:31:26 TBesset +// Q3Radiant public version +// +// Revision 1.2 1999/11/22 17:46:45 Timo & Christine +// merged EARadiant into the main tree +// bug fixes for Q3Plugin / EAPlugin +// export for Robert +// +// Revision 1.1.4.1 1999/11/03 20:37:59 Timo & Christine +// MEAN plugin for Q3Radiant, alpha version +// +// Revision 1.1.2.1 1999/10/27 08:34:26 Timo & Christine +// preview version of the texture tools plugin is ready +// ( TexTool.dll plugin is in Q3Plugin module ) +// plugins can draw in their own window using Radiant's qgl bindings +// +// +// DESCRIPTION: +// Quick interface hack for selected face interface +// this one really needs more work, but I'm in a hurry with TexTool + +#include "stdafx.h" + +// stores objects that want to be hooked into drawing in the XY window +//++timo TODO: add support for camera view, Z view ... (texture view?) +CPtrArray l_GLWindows; + +int WINAPI QERApp_ISelectedFace_GetTextureNumber() +{ + if (g_ptrSelectedFaces.GetSize() > 0) + { + face_t *selFace = reinterpret_cast(g_ptrSelectedFaces.GetAt(0)); + return selFace->d_texture->texture_number; + } + //++timo hu ? find the appropriate gl bind number + return 0; +} + +void WINAPI QERApp_HookXYGLWindow(IGLWindow* pGLW) +{ + l_GLWindows.Add( pGLW ); + pGLW->IncRef(); +} + +void WINAPI QERApp_UnHookGLWindow(IGLWindow* pGLW) +{ + for( int i = 0; i < l_GLWindows.GetSize(); i++ ) + { + if (l_GLWindows.GetAt(i) == pGLW) + { + l_GLWindows.RemoveAt(i); + pGLW->DecRef(); + return; + } + } +#ifdef _DEBUG + Sys_Printf("ERROR: IGLWindow* not found in QERApp_UnHookGLWindow\n"); +#endif +} + +void DrawPluginEntities( VIEWTYPE vt ) +{ + for(int i = 0; i(l_GLWindows.GetAt(i))->Draw( vt ); +} \ No newline at end of file -- cgit v1.2.3