llmemtype.h
上传用户:king477883
上传日期:2021-03-01
资源大小:9553k
文件大小:9k
源码类别:

游戏引擎

开发平台:

C++ Builder

  1. /** 
  2.  * @file llmemtype.h
  3.  * @brief Runtime memory usage debugging utilities.
  4.  *
  5.  * $LicenseInfo:firstyear=2005&license=viewergpl$
  6.  * 
  7.  * Copyright (c) 2005-2010, Linden Research, Inc.
  8.  * 
  9.  * Second Life Viewer Source Code
  10.  * The source code in this file ("Source Code") is provided by Linden Lab
  11.  * to you under the terms of the GNU General Public License, version 2.0
  12.  * ("GPL"), unless you have obtained a separate licensing agreement
  13.  * ("Other License"), formally executed by you and Linden Lab.  Terms of
  14.  * the GPL can be found in doc/GPL-license.txt in this distribution, or
  15.  * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
  16.  * 
  17.  * There are special exceptions to the terms and conditions of the GPL as
  18.  * it is applied to this Source Code. View the full text of the exception
  19.  * in the file doc/FLOSS-exception.txt in this software distribution, or
  20.  * online at
  21.  * http://secondlifegrid.net/programs/open_source/licensing/flossexception
  22.  * 
  23.  * By copying, modifying or distributing this software, you acknowledge
  24.  * that you have read and understood your obligations described above,
  25.  * and agree to abide by those obligations.
  26.  * 
  27.  * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
  28.  * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
  29.  * COMPLETENESS OR PERFORMANCE.
  30.  * $/LicenseInfo$
  31.  */
  32. #ifndef LL_MEMTYPE_H
  33. #define LL_MEMTYPE_H
  34. //----------------------------------------------------------------------------
  35. //----------------------------------------------------------------------------
  36. //----------------------------------------------------------------------------
  37. #include "linden_common.h"
  38. //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  39. // WARNING: Never commit with MEM_TRACK_MEM == 1
  40. //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  41. #define MEM_TRACK_MEM (0 && LL_WINDOWS)
  42. #include <vector>
  43. #define MEM_TYPE_NEW(T)
  44. class LL_COMMON_API LLMemType
  45. {
  46. public:
  47. // class we'll initialize all instances of as
  48. // static members of MemType.  Then use
  49. // to construct any new mem type.
  50. class LL_COMMON_API DeclareMemType
  51. {
  52. public:
  53. DeclareMemType(char const * st);
  54. ~DeclareMemType();
  55. S32 mID;
  56. char const * mName;
  57. // array so we can map an index ID to Name
  58. static std::vector<char const *> mNameList;
  59. };
  60. LLMemType(DeclareMemType& dt);
  61. ~LLMemType();
  62. static char const * getNameFromID(S32 id);
  63. static DeclareMemType MTYPE_INIT;
  64. static DeclareMemType MTYPE_STARTUP;
  65. static DeclareMemType MTYPE_MAIN;
  66. static DeclareMemType MTYPE_FRAME;
  67. static DeclareMemType MTYPE_GATHER_INPUT;
  68. static DeclareMemType MTYPE_JOY_KEY;
  69. static DeclareMemType MTYPE_IDLE;
  70. static DeclareMemType MTYPE_IDLE_PUMP;
  71. static DeclareMemType MTYPE_IDLE_NETWORK;
  72. static DeclareMemType MTYPE_IDLE_UPDATE_REGIONS;
  73. static DeclareMemType MTYPE_IDLE_UPDATE_VIEWER_REGION;
  74. static DeclareMemType MTYPE_IDLE_UPDATE_SURFACE;
  75. static DeclareMemType MTYPE_IDLE_UPDATE_PARCEL_OVERLAY;
  76. static DeclareMemType MTYPE_IDLE_AUDIO;
  77. static DeclareMemType MTYPE_CACHE_PROCESS_PENDING;
  78. static DeclareMemType MTYPE_CACHE_PROCESS_PENDING_ASKS;
  79. static DeclareMemType MTYPE_CACHE_PROCESS_PENDING_REPLIES;
  80. static DeclareMemType MTYPE_MESSAGE_CHECK_ALL;
  81. static DeclareMemType MTYPE_MESSAGE_PROCESS_ACKS;
  82. static DeclareMemType MTYPE_RENDER;
  83. static DeclareMemType MTYPE_SLEEP;
  84. static DeclareMemType MTYPE_NETWORK;
  85. static DeclareMemType MTYPE_PHYSICS;
  86. static DeclareMemType MTYPE_INTERESTLIST;
  87. static DeclareMemType MTYPE_IMAGEBASE;
  88. static DeclareMemType MTYPE_IMAGERAW;
  89. static DeclareMemType MTYPE_IMAGEFORMATTED;
  90. static DeclareMemType MTYPE_APPFMTIMAGE;
  91. static DeclareMemType MTYPE_APPRAWIMAGE;
  92. static DeclareMemType MTYPE_APPAUXRAWIMAGE;
  93. static DeclareMemType MTYPE_DRAWABLE;
  94. static DeclareMemType MTYPE_OBJECT;
  95. static DeclareMemType MTYPE_OBJECT_PROCESS_UPDATE;
  96. static DeclareMemType MTYPE_OBJECT_PROCESS_UPDATE_CORE;
  97. static DeclareMemType MTYPE_DISPLAY;
  98. static DeclareMemType MTYPE_DISPLAY_UPDATE;
  99. static DeclareMemType MTYPE_DISPLAY_UPDATE_CAMERA;
  100. static DeclareMemType MTYPE_DISPLAY_UPDATE_GEOM;
  101. static DeclareMemType MTYPE_DISPLAY_SWAP;
  102. static DeclareMemType MTYPE_DISPLAY_UPDATE_HUD;
  103. static DeclareMemType MTYPE_DISPLAY_GEN_REFLECTION;
  104. static DeclareMemType MTYPE_DISPLAY_IMAGE_UPDATE;
  105. static DeclareMemType MTYPE_DISPLAY_STATE_SORT;
  106. static DeclareMemType MTYPE_DISPLAY_SKY;
  107. static DeclareMemType MTYPE_DISPLAY_RENDER_GEOM;
  108. static DeclareMemType MTYPE_DISPLAY_RENDER_FLUSH;
  109. static DeclareMemType MTYPE_DISPLAY_RENDER_UI;
  110. static DeclareMemType MTYPE_DISPLAY_RENDER_ATTACHMENTS;
  111. static DeclareMemType MTYPE_VERTEX_DATA;
  112. static DeclareMemType MTYPE_VERTEX_CONSTRUCTOR;
  113. static DeclareMemType MTYPE_VERTEX_DESTRUCTOR;
  114. static DeclareMemType MTYPE_VERTEX_CREATE_VERTICES;
  115. static DeclareMemType MTYPE_VERTEX_CREATE_INDICES;
  116. static DeclareMemType MTYPE_VERTEX_DESTROY_BUFFER;
  117. static DeclareMemType MTYPE_VERTEX_DESTROY_INDICES;
  118. static DeclareMemType MTYPE_VERTEX_UPDATE_VERTS;
  119. static DeclareMemType MTYPE_VERTEX_UPDATE_INDICES;
  120. static DeclareMemType MTYPE_VERTEX_ALLOCATE_BUFFER;
  121. static DeclareMemType MTYPE_VERTEX_RESIZE_BUFFER;
  122. static DeclareMemType MTYPE_VERTEX_MAP_BUFFER;
  123. static DeclareMemType MTYPE_VERTEX_MAP_BUFFER_VERTICES;
  124. static DeclareMemType MTYPE_VERTEX_MAP_BUFFER_INDICES;
  125. static DeclareMemType MTYPE_VERTEX_UNMAP_BUFFER;
  126. static DeclareMemType MTYPE_VERTEX_SET_STRIDE;
  127. static DeclareMemType MTYPE_VERTEX_SET_BUFFER;
  128. static DeclareMemType MTYPE_VERTEX_SETUP_VERTEX_BUFFER;
  129. static DeclareMemType MTYPE_VERTEX_CLEANUP_CLASS;
  130. static DeclareMemType MTYPE_SPACE_PARTITION;
  131. static DeclareMemType MTYPE_PIPELINE;
  132. static DeclareMemType MTYPE_PIPELINE_INIT;
  133. static DeclareMemType MTYPE_PIPELINE_CREATE_BUFFERS;
  134. static DeclareMemType MTYPE_PIPELINE_RESTORE_GL;
  135. static DeclareMemType MTYPE_PIPELINE_UNLOAD_SHADERS;
  136. static DeclareMemType MTYPE_PIPELINE_LIGHTING_DETAIL;
  137. static DeclareMemType MTYPE_PIPELINE_GET_POOL_TYPE;
  138. static DeclareMemType MTYPE_PIPELINE_ADD_POOL;
  139. static DeclareMemType MTYPE_PIPELINE_ALLOCATE_DRAWABLE;
  140. static DeclareMemType MTYPE_PIPELINE_ADD_OBJECT;
  141. static DeclareMemType MTYPE_PIPELINE_CREATE_OBJECTS;
  142. static DeclareMemType MTYPE_PIPELINE_UPDATE_MOVE;
  143. static DeclareMemType MTYPE_PIPELINE_UPDATE_GEOM;
  144. static DeclareMemType MTYPE_PIPELINE_MARK_VISIBLE;
  145. static DeclareMemType MTYPE_PIPELINE_MARK_MOVED;
  146. static DeclareMemType MTYPE_PIPELINE_MARK_SHIFT;
  147. static DeclareMemType MTYPE_PIPELINE_SHIFT_OBJECTS;
  148. static DeclareMemType MTYPE_PIPELINE_MARK_TEXTURED;
  149. static DeclareMemType MTYPE_PIPELINE_MARK_REBUILD;
  150. static DeclareMemType MTYPE_PIPELINE_UPDATE_CULL;
  151. static DeclareMemType MTYPE_PIPELINE_STATE_SORT;
  152. static DeclareMemType MTYPE_PIPELINE_POST_SORT;
  153. static DeclareMemType MTYPE_PIPELINE_RENDER_HUD_ELS;
  154. static DeclareMemType MTYPE_PIPELINE_RENDER_HL;
  155. static DeclareMemType MTYPE_PIPELINE_RENDER_GEOM;
  156. static DeclareMemType MTYPE_PIPELINE_RENDER_GEOM_DEFFERRED;
  157. static DeclareMemType MTYPE_PIPELINE_RENDER_GEOM_POST_DEF;
  158. static DeclareMemType MTYPE_PIPELINE_RENDER_GEOM_SHADOW;
  159. static DeclareMemType MTYPE_PIPELINE_RENDER_SELECT;
  160. static DeclareMemType MTYPE_PIPELINE_REBUILD_POOLS;
  161. static DeclareMemType MTYPE_PIPELINE_QUICK_LOOKUP;
  162. static DeclareMemType MTYPE_PIPELINE_RENDER_OBJECTS;
  163. static DeclareMemType MTYPE_PIPELINE_GENERATE_IMPOSTOR;
  164. static DeclareMemType MTYPE_PIPELINE_RENDER_BLOOM;
  165. static DeclareMemType MTYPE_UPKEEP_POOLS;
  166. static DeclareMemType MTYPE_AVATAR;
  167. static DeclareMemType MTYPE_AVATAR_MESH;
  168. static DeclareMemType MTYPE_PARTICLES;
  169. static DeclareMemType MTYPE_REGIONS;
  170. static DeclareMemType MTYPE_INVENTORY;
  171. static DeclareMemType MTYPE_INVENTORY_DRAW;
  172. static DeclareMemType MTYPE_INVENTORY_BUILD_NEW_VIEWS;
  173. static DeclareMemType MTYPE_INVENTORY_DO_FOLDER;
  174. static DeclareMemType MTYPE_INVENTORY_POST_BUILD;
  175. static DeclareMemType MTYPE_INVENTORY_FROM_XML;
  176. static DeclareMemType MTYPE_INVENTORY_CREATE_NEW_ITEM;
  177. static DeclareMemType MTYPE_INVENTORY_VIEW_INIT;
  178. static DeclareMemType MTYPE_INVENTORY_VIEW_SHOW;
  179. static DeclareMemType MTYPE_INVENTORY_VIEW_TOGGLE;
  180. static DeclareMemType MTYPE_ANIMATION;
  181. static DeclareMemType MTYPE_VOLUME;
  182. static DeclareMemType MTYPE_PRIMITIVE;
  183. static DeclareMemType MTYPE_SCRIPT;
  184. static DeclareMemType MTYPE_SCRIPT_RUN;
  185. static DeclareMemType MTYPE_SCRIPT_BYTECODE;
  186. static DeclareMemType MTYPE_IO_PUMP;
  187. static DeclareMemType MTYPE_IO_TCP;
  188. static DeclareMemType MTYPE_IO_BUFFER;
  189. static DeclareMemType MTYPE_IO_HTTP_SERVER;
  190. static DeclareMemType MTYPE_IO_SD_SERVER;
  191. static DeclareMemType MTYPE_IO_SD_CLIENT;
  192. static DeclareMemType MTYPE_IO_URL_REQUEST;
  193. static DeclareMemType MTYPE_DIRECTX_INIT;
  194. static DeclareMemType MTYPE_TEMP1;
  195. static DeclareMemType MTYPE_TEMP2;
  196. static DeclareMemType MTYPE_TEMP3;
  197. static DeclareMemType MTYPE_TEMP4;
  198. static DeclareMemType MTYPE_TEMP5;
  199. static DeclareMemType MTYPE_TEMP6;
  200. static DeclareMemType MTYPE_TEMP7;
  201. static DeclareMemType MTYPE_TEMP8;
  202. static DeclareMemType MTYPE_TEMP9;
  203. static DeclareMemType MTYPE_OTHER; // Special; used by display code
  204. S32 mTypeIndex;
  205. };
  206. //----------------------------------------------------------------------------
  207. #endif