From 7028cbe09c688437910a25623098762bf0fa592d Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Mon, 28 Mar 2016 22:28:34 +1000 Subject: Move Irrlicht to src/others. --- .../doc/html/irr_allocator_8h_source.html | 231 +++++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100644 src/others/irrlicht-1.8.1/doc/html/irr_allocator_8h_source.html (limited to 'src/others/irrlicht-1.8.1/doc/html/irr_allocator_8h_source.html') diff --git a/src/others/irrlicht-1.8.1/doc/html/irr_allocator_8h_source.html b/src/others/irrlicht-1.8.1/doc/html/irr_allocator_8h_source.html new file mode 100644 index 0000000..0b33851 --- /dev/null +++ b/src/others/irrlicht-1.8.1/doc/html/irr_allocator_8h_source.html @@ -0,0 +1,231 @@ + + + + +Irrlicht 3D Engine: irrAllocator.h Source File + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + +
+
Irrlicht 3D Engine + +
+ +
+ + + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
irrAllocator.h
+
+
+Go to the documentation of this file.
00001 // Copyright (C) 2002-2012 Nikolaus Gebhardt
+00002 // This file is part of the "Irrlicht Engine" and the "irrXML" project.
+00003 // For conditions of distribution and use, see copyright notice in irrlicht.h and irrXML.h
+00004 
+00005 #ifndef __IRR_ALLOCATOR_H_INCLUDED__
+00006 #define __IRR_ALLOCATOR_H_INCLUDED__
+00007 
+00008 #include "irrTypes.h"
+00009 #include <new>
+00010 // necessary for older compilers
+00011 #include <memory.h>
+00012 
+00013 namespace irr
+00014 {
+00015 namespace core
+00016 {
+00017 
+00018 #ifdef DEBUG_CLIENTBLOCK
+00019 #undef DEBUG_CLIENTBLOCK
+00020 #define DEBUG_CLIENTBLOCK new
+00021 #endif
+00022 
+00024 template<typename T>
+00025 class irrAllocator
+00026 {
+00027 public:
+00028 
+00030     virtual ~irrAllocator() {}
+00031 
+00033     T* allocate(size_t cnt)
+00034     {
+00035         return (T*)internal_new(cnt* sizeof(T));
+00036     }
+00037 
+00039     void deallocate(T* ptr)
+00040     {
+00041         internal_delete(ptr);
+00042     }
+00043 
+00045     void construct(T* ptr, const T&e)
+00046     {
+00047         new ((void*)ptr) T(e);
+00048     }
+00049 
+00051     void destruct(T* ptr)
+00052     {
+00053         ptr->~T();
+00054     }
+00055 
+00056 protected:
+00057 
+00058     virtual void* internal_new(size_t cnt)
+00059     {
+00060         return operator new(cnt);
+00061     }
+00062 
+00063     virtual void internal_delete(void* ptr)
+00064     {
+00065         operator delete(ptr);
+00066     }
+00067 
+00068 };
+00069 
+00070 
+00072 
+00074 template<typename T>
+00075 class irrAllocatorFast
+00076 {
+00077 public:
+00078 
+00080     T* allocate(size_t cnt)
+00081     {
+00082         return (T*)operator new(cnt* sizeof(T));
+00083     }
+00084 
+00086     void deallocate(T* ptr)
+00087     {
+00088         operator delete(ptr);
+00089     }
+00090 
+00092     void construct(T* ptr, const T&e)
+00093     {
+00094         new ((void*)ptr) T(e);
+00095     }
+00096 
+00098     void destruct(T* ptr)
+00099     {
+00100         ptr->~T();
+00101     }
+00102 };
+00103 
+00104 
+00105 
+00106 #ifdef DEBUG_CLIENTBLOCK
+00107 #undef DEBUG_CLIENTBLOCK
+00108 #define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)
+00109 #endif
+00110 
+00112 enum eAllocStrategy
+00113 {
+00114     ALLOC_STRATEGY_SAFE    = 0,
+00115     ALLOC_STRATEGY_DOUBLE  = 1,
+00116     ALLOC_STRATEGY_SQRT    = 2
+00117 };
+00118 
+00119 
+00120 } // end namespace core
+00121 } // end namespace irr
+00122 
+00123 #endif
+00124 
+
+
+ + + + + -- cgit v1.1