source: OGRE/trunk/ogrenew/Docs/api/html/OgreMemoryMacros_8h-source.html @ 657

Revision 657, 8.6 KB checked in by mattausch, 18 years ago (diff)

added ogre dependencies and patched ogre sources

Line 
1<html>
2<head>
3<title>OgreMemoryMacros.h Source File - OGRE Documentation</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
4<link type="text/css" rel="stylesheet" href="style.css">
5</head>
6
7<body>
8<!-- Generated by Doxygen 1.3.6 -->
9<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div>
10<h1>OgreMemoryMacros.h</h1><a href="OgreMemoryMacros_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span>
1100002 <span class="comment">-----------------------------------------------------------------------------</span>
1200003 <span class="comment">This source file is part of OGRE</span>
1300004 <span class="comment">(Object-oriented Graphics Rendering Engine)</span>
1400005 <span class="comment">For the latest info, see http://www.ogre3d.org/</span>
1500006 <span class="comment"></span>
1600007 <span class="comment">Copyright (c) 2000-2005 The OGRE Team</span>
1700008 <span class="comment">Also see acknowledgements in Readme.html</span>
1800009 <span class="comment"></span>
1900010 <span class="comment">This program is free software; you can redistribute it and/or modify it under</span>
2000011 <span class="comment">the terms of the GNU Lesser General Public License as published by the Free Software</span>
2100012 <span class="comment">Foundation; either version 2 of the License, or (at your option) any later</span>
2200013 <span class="comment">version.</span>
2300014 <span class="comment"></span>
2400015 <span class="comment">This program is distributed in the hope that it will be useful, but WITHOUT</span>
2500016 <span class="comment">ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS</span>
2600017 <span class="comment">FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.</span>
2700018 <span class="comment"></span>
2800019 <span class="comment">You should have received a copy of the GNU Lesser General Public License along with</span>
2900020 <span class="comment">this program; if not, write to the Free Software Foundation, Inc., 59 Temple</span>
3000021 <span class="comment">Place - Suite 330, Boston, MA 02111-1307, USA, or go to</span>
3100022 <span class="comment">http://www.gnu.org/copyleft/lesser.txt.</span>
3200023 <span class="comment">-----------------------------------------------------------------------------</span>
3300024 <span class="comment">*/</span>
3400025 <span class="comment">//---- ORIGINAL COPYRIGHT FOLLOWS -------------------------------------------</span>
3500026 <span class="comment">// ---------------------------------------------------------------------------------------------------------------------------------</span>
3600027 <span class="comment">// Copyright 2000, Paul Nettle. All rights reserved.</span>
3700028 <span class="comment">//</span>
3800029 <span class="comment">// You are free to use this source code in any commercial or non-commercial product.</span>
3900030 <span class="comment">//</span>
4000031 <span class="comment">// mmgr.cpp - Memory manager &amp; tracking software</span>
4100032 <span class="comment">//</span>
4200033 <span class="comment">// The most recent version of this software can be found at: ftp://ftp.GraphicsPapers.com/pub/ProgrammingTools/MemoryManagers/</span>
4300034 <span class="comment">//</span>
4400035 <span class="comment">// [NOTE: Best when viewed with 8-character tabs]</span>
4500036 <span class="comment">//</span>
4600037 <span class="comment">// ---------------------------------------------------------------------------------------------------------------------------------</span>
4700038
4800039 <span class="comment">//-----------------------------------------------------------------------------</span>
4900040 <span class="comment">// How does this work?</span>
5000041 <span class="comment">// Remember that before the compiler starts to process a source file, it runs</span>
5100042 <span class="comment">// a neat tool called a preprocessor on it. What this preprocessor does in</span>
5200043 <span class="comment">// this case is replace all the instances of *alloc/free with the expanded</span>
5300044 <span class="comment">// macros - this way we cleverly replace all the calls to the standard C</span>
5400045 <span class="comment">// memory (de)allocation functions. The same is done for new/delete</span>
5500046 <span class="comment">//</span>
5600047 <span class="comment">// Of course, we have the drawback that we can't name a member function of</span>
5700048 <span class="comment">// a class *alloc or free and we can't overload the new/delete operators without</span>
5800049 <span class="comment">// first undefining these macros - ah, a C++ preprocessor with RE replacement,</span>
5900050 <span class="comment">// that would be a dream come true :)</span>
6000051 <span class="comment">//</span>
6100052 <span class="preprocessor">#ifndef OGRE_MEMORY_MACROS</span>
6200053 <span class="preprocessor"></span><span class="preprocessor">#define OGRE_MEMORY_MACROS</span>
6300054 <span class="preprocessor"></span>
6400055 <span class="preprocessor">#if OGRE_DEBUG_MEMORY_MANAGER &amp;&amp; OGRE_DEBUG_MODE</span>
6500056 <span class="preprocessor"></span><span class="preprocessor">#   define new    (::Ogre::MemoryManager::instance().setOwner(__FILE__,__LINE__,__FUNCTION__),false) ? NULL                                                 : new</span>
6600057 <span class="preprocessor"></span><span class="preprocessor">#   define delete (::Ogre::MemoryManager::instance().setOwner(__FILE__,__LINE__,__FUNCTION__),false) ? ::Ogre::MemoryManager::instance().setOwner("",0,"") : delete</span>
6700058 <span class="preprocessor"></span><span class="preprocessor">#   define malloc(sz)      ::Ogre::MemoryManager::instance().allocMem(__FILE__,__LINE__,__FUNCTION__, ::Ogre::m_alloc_malloc, sz,      gProcessID)</span>
6800059 <span class="preprocessor"></span><span class="preprocessor">#   define calloc(sz)      ::Ogre::MemoryManager::instance().allocMem(__FILE__,__LINE__,__FUNCTION__, ::Ogre::m_alloc_calloc, sz,      gProcessID)</span>
6900060 <span class="preprocessor"></span><span class="preprocessor">#   define realloc(ptr,sz) ::Ogre::MemoryManager::instance().rllocMem(__FILE__,__LINE__,__FUNCTION__, ::Ogre::m_alloc_realloc,sz, ptr, gProcessID)</span>
7000061 <span class="preprocessor"></span><span class="preprocessor">#   define free(ptr)       ::Ogre::MemoryManager::instance().dllocMem(__FILE__,__LINE__,__FUNCTION__, ::Ogre::m_alloc_free,       ptr, gProcessID)</span>
7100062 <span class="preprocessor"></span><span class="preprocessor">#endif // OGRE_DEBUG_MEMORY_MANAGER</span>
7200063 <span class="preprocessor"></span>
7300064 <span class="preprocessor">#endif // OGRE_MEMORY_MACROS</span>
7400065 <span class="preprocessor"></span><span class="comment">//-----------------------------------------------------------------------------</span>
75</pre></div><hr>
76<p>
77Copyright &copy; 2000-2005 by The OGRE Team<br />
78<!--Creative Commons License--><a rel="license" href="http://creativecommons.org/licenses/by-sa/2.5/"><img alt="Creative Commons License" border="0" src="http://creativecommons.org/images/public/somerights20.png"/></a><br/>
79This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/2.5/">Creative Commons Attribution-ShareAlike 2.5 License</a>.<br/>
80                <!--/Creative Commons License--><!-- <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
81                <Work rdf:about="">
82                        <license rdf:resource="http://creativecommons.org/licenses/by-sa/2.5/" />
83        <dc:type rdf:resource="http://purl.org/dc/dcmitype/Text" />
84                </Work>
85                <License rdf:about="http://creativecommons.org/licenses/by-sa/2.5/"><permits rdf:resource="http://web.resource.org/cc/Reproduction"/><permits rdf:resource="http://web.resource.org/cc/Distribution"/><requires rdf:resource="http://web.resource.org/cc/Notice"/><requires rdf:resource="http://web.resource.org/cc/Attribution"/><permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/><requires rdf:resource="http://web.resource.org/cc/ShareAlike"/></License></rdf:RDF> -->
86
87Last modified Sun Feb 12 12:59:47 2006
88</p>
89</body>
90</html>
Note: See TracBrowser for help on using the repository browser.