00001 /* 00002 ----------------------------------------------------------------------------- 00003 This source file is part of OGRE 00004 (Object-oriented Graphics Rendering Engine) 00005 For the latest info, see http://www.ogre3d.org/ 00006 00007 Copyright © 2000-2002 The OGRE Team 00008 Also see acknowledgements in Readme.html 00009 00010 This program is free software; you can redistribute it and/or modify it under 00011 the terms of the GNU Lesser General Public License as published by the Free Software 00012 Foundation; either version 2 of the License, or (at your option) any later 00013 version. 00014 00015 This program is distributed in the hope that it will be useful, but WITHOUT 00016 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 00017 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. 00018 00019 You should have received a copy of the GNU Lesser General Public License along with 00020 this program; if not, write to the Free Software Foundation, Inc., 59 Temple 00021 Place - Suite 330, Boston, MA 02111-1307, USA, or go to 00022 http://www.gnu.org/copyleft/lesser.txt. 00023 ----------------------------------------------------------------------------- 00024 */ 00025 #include "OgreWin32ConfigDialog.h" 00026 #include "OgreWin32ErrorDialog.h" 00027 #ifdef DX7INPUTONLY 00028 #include "OgreWin32Input.h" 00029 #else 00030 #include "OgreWin32Input8.h" 00031 #endif 00032 #include "OgreWin32Timer.h" 00033 #include "OgreRoot.h" 00034 #include "OgreLogManager.h" 00035 #include "OgreRenderWindow.h" 00036 00037 namespace Ogre { 00038 00039 #ifdef DEBUG 00040 int g_iCreatedConfigDiag = 0; 00041 int g_iCreatedErrorDiag = 0; 00042 int g_iCreatedRenderWindow = 0; 00043 int g_iCreatedInputReader = 0; 00044 #endif 00045 00047 extern "C" void createPlatformConfigDialog(ConfigDialog** ppDlg) 00048 { 00049 // Must get HINSTANCE 00050 HINSTANCE hInst = GetModuleHandle("OgrePlatform.dll"); 00051 *ppDlg = new Win32ConfigDialog(hInst); 00052 00053 #ifdef DEBUG 00054 g_iCreatedConfigDiag++; 00055 #endif 00056 } 00057 00059 extern "C" void createPlatformErrorDialog(ErrorDialog** ppDlg) 00060 { 00061 HINSTANCE hInst = GetModuleHandle("OgrePlatform.dll"); 00062 *ppDlg = new Win32ErrorDialog(hInst); 00063 00064 #ifdef DEBUG 00065 g_iCreatedErrorDiag++; 00066 #endif 00067 } 00068 00070 extern "C" void createTimer(Timer** ppTimer) 00071 { 00072 *ppTimer = new Win32Timer(); 00073 (*ppTimer)->reset(); 00074 } 00075 00076 extern "C" void destroyTimer(Timer* ppTimer) 00077 { 00078 delete ppTimer; 00079 } 00081 extern "C" void createPlatformInputReader(InputReader** ppReader) 00082 { 00083 #ifdef DX7INPUTONLY 00084 *ppReader = new Win32Input(); 00085 #else 00086 *ppReader = new Win32Input8(); 00087 #endif 00088 00089 #ifdef DEBUG 00090 g_iCreatedInputReader++; 00091 #endif 00092 } 00093 00095 extern "C" void destroyPlatformConfigDialog(ConfigDialog* dlg) 00096 { 00097 delete dlg; 00098 00099 #ifdef DEBUG 00100 g_iCreatedConfigDiag--; 00101 #endif 00102 } 00104 extern "C" void destroyPlatformErrorDialog(ErrorDialog* dlg) 00105 { 00106 delete dlg; 00107 00108 #ifdef DEBUG 00109 g_iCreatedErrorDiag--; 00110 #endif 00111 } 00113 extern "C" void destroyPlatformRenderWindow(RenderWindow* wnd) 00114 { 00115 delete wnd; 00116 00117 #ifdef DEBUG 00118 g_iCreatedRenderWindow--; 00119 #endif 00120 } 00122 extern "C" void destroyPlatformInputReader(InputReader* reader) 00123 { 00124 delete reader; 00125 00126 #ifdef DEBUG 00127 g_iCreatedInputReader--; 00128 #endif 00129 } 00130 00131 #ifdef DEBUG 00132 BOOL WINAPI DllMain( HINSTANCE hinstDLL, // handle to DLL module 00133 DWORD fdwReason, // reason for calling function 00134 LPVOID lpvReserved // reserved 00135 ) 00136 { 00137 if( fdwReason == DLL_THREAD_DETACH ) { 00138 if( g_iCreatedConfigDiag ) 00139 LogManager::logMessage( "Memory Leak: Not all platform configuration dialogs were destroyed!!!", LML_CRITICAL ); 00140 if( g_iCreatedConfigDiag ) 00141 LogManager::logMessage( "Memory Leak: Not all platform error dialogs were destroyed!!!", LML_CRITICAL ); 00142 if( g_iCreatedConfigDiag ) 00143 LogManager::logMessage( "Memory Leak: Not all platform render windows were destroyed!!!", LML_CRITICAL ); 00144 if( g_iCreatedConfigDiag ) 00145 LogManager::logMessage( "Memory Leak: Not all platform input readers were destroyed!!!", LML_CRITICAL ); 00146 } 00147 } 00148 #endif 00149 }
Copyright © 2002-2003 by The OGRE Team
Last modified Sun Nov 28 19:48:51 2004