/** * @file llmemtype.h * @brief Runtime memory usage debugging utilities. * * $LicenseInfo:firstyear=2005&license=viewergpl$ * * Copyright (c) 2005-2009, Linden Research, Inc. * * Second Life Viewer Source Code * The source code in this file ("Source Code") is provided by Linden Lab * to you under the terms of the GNU General Public License, version 2.0 * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or * online at * http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, * and agree to abide by those obligations. * * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ */ #ifndef LL_MEMTYPE_H #define LL_MEMTYPE_H //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- #include "linden_common.h" //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // WARNING: Never commit with MEM_TRACK_MEM == 1 //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #define MEM_TRACK_MEM (0 && LL_WINDOWS) #include #define MEM_TYPE_NEW(T) class LL_COMMON_API LLMemType { public: // class we'll initialize all instances of as // static members of MemType. Then use // to construct any new mem type. class LL_COMMON_API DeclareMemType { public: DeclareMemType(char const * st); ~DeclareMemType(); S32 mID; char const * mName; // array so we can map an index ID to Name static std::vector mNameList; }; LLMemType(DeclareMemType& dt); ~LLMemType(); static char const * getNameFromID(S32 id); static DeclareMemType MTYPE_INIT; static DeclareMemType MTYPE_STARTUP; static DeclareMemType MTYPE_MAIN; static DeclareMemType MTYPE_FRAME; static DeclareMemType MTYPE_GATHER_INPUT; static DeclareMemType MTYPE_JOY_KEY; static DeclareMemType MTYPE_IDLE; static DeclareMemType MTYPE_IDLE_PUMP; static DeclareMemType MTYPE_IDLE_NETWORK; static DeclareMemType MTYPE_IDLE_UPDATE_REGIONS; static DeclareMemType MTYPE_IDLE_UPDATE_VIEWER_REGION; static DeclareMemType MTYPE_IDLE_UPDATE_SURFACE; static DeclareMemType MTYPE_IDLE_UPDATE_PARCEL_OVERLAY; static DeclareMemType MTYPE_IDLE_AUDIO; static DeclareMemType MTYPE_CACHE_PROCESS_PENDING; static DeclareMemType MTYPE_CACHE_PROCESS_PENDING_ASKS; static DeclareMemType MTYPE_CACHE_PROCESS_PENDING_REPLIES; static DeclareMemType MTYPE_MESSAGE_CHECK_ALL; static DeclareMemType MTYPE_MESSAGE_PROCESS_ACKS; static DeclareMemType MTYPE_RENDER; static DeclareMemType MTYPE_SLEEP; static DeclareMemType MTYPE_NETWORK; static DeclareMemType MTYPE_PHYSICS; static DeclareMemType MTYPE_INTERESTLIST; static DeclareMemType MTYPE_IMAGEBASE; static DeclareMemType MTYPE_IMAGERAW; static DeclareMemType MTYPE_IMAGEFORMATTED; static DeclareMemType MTYPE_APPFMTIMAGE; static DeclareMemType MTYPE_APPRAWIMAGE; static DeclareMemType MTYPE_APPAUXRAWIMAGE; static DeclareMemType MTYPE_DRAWABLE; static DeclareMemType MTYPE_OBJECT; static DeclareMemType MTYPE_OBJECT_PROCESS_UPDATE; static DeclareMemType MTYPE_OBJECT_PROCESS_UPDATE_CORE; static DeclareMemType MTYPE_DISPLAY; static DeclareMemType MTYPE_DISPLAY_UPDATE; static DeclareMemType MTYPE_DISPLAY_UPDATE_CAMERA; static DeclareMemType MTYPE_DISPLAY_UPDATE_GEOM; static DeclareMemType MTYPE_DISPLAY_SWAP; static DeclareMemType MTYPE_DISPLAY_UPDATE_HUD; static DeclareMemType MTYPE_DISPLAY_GEN_REFLECTION; static DeclareMemType MTYPE_DISPLAY_IMAGE_UPDATE; static DeclareMemType MTYPE_DISPLAY_STATE_SORT; static DeclareMemType MTYPE_DISPLAY_SKY; static DeclareMemType MTYPE_DISPLAY_RENDER_GEOM; static DeclareMemType MTYPE_DISPLAY_RENDER_FLUSH; static DeclareMemType MTYPE_DISPLAY_RENDER_UI; static DeclareMemType MTYPE_DISPLAY_RENDER_ATTACHMENTS; static DeclareMemType MTYPE_VERTEX_DATA; static DeclareMemType MTYPE_VERTEX_CONSTRUCTOR; static DeclareMemType MTYPE_VERTEX_DESTRUCTOR; static DeclareMemType MTYPE_VERTEX_CREATE_VERTICES; static DeclareMemType MTYPE_VERTEX_CREATE_INDICES; static DeclareMemType MTYPE_VERTEX_DESTROY_BUFFER; static DeclareMemType MTYPE_VERTEX_DESTROY_INDICES; static DeclareMemType MTYPE_VERTEX_UPDATE_VERTS; static DeclareMemType MTYPE_VERTEX_UPDATE_INDICES; static DeclareMemType MTYPE_VERTEX_ALLOCATE_BUFFER; static DeclareMemType MTYPE_VERTEX_RESIZE_BUFFER; static DeclareMemType MTYPE_VERTEX_MAP_BUFFER; static DeclareMemType MTYPE_VERTEX_MAP_BUFFER_VERTICES; static DeclareMemType MTYPE_VERTEX_MAP_BUFFER_INDICES; static DeclareMemType MTYPE_VERTEX_UNMAP_BUFFER; static DeclareMemType MTYPE_VERTEX_SET_STRIDE; static DeclareMemType MTYPE_VERTEX_SET_BUFFER; static DeclareMemType MTYPE_VERTEX_SETUP_VERTEX_BUFFER; static DeclareMemType MTYPE_VERTEX_CLEANUP_CLASS; static DeclareMemType MTYPE_SPACE_PARTITION; static DeclareMemType MTYPE_PIPELINE; static DeclareMemType MTYPE_PIPELINE_INIT; static DeclareMemType MTYPE_PIPELINE_CREATE_BUFFERS; static DeclareMemType MTYPE_PIPELINE_RESTORE_GL; static DeclareMemType MTYPE_PIPELINE_UNLOAD_SHADERS; static DeclareMemType MTYPE_PIPELINE_LIGHTING_DETAIL; static DeclareMemType MTYPE_PIPELINE_GET_POOL_TYPE; static DeclareMemType MTYPE_PIPELINE_ADD_POOL; static DeclareMemType MTYPE_PIPELINE_ALLOCATE_DRAWABLE; static DeclareMemType MTYPE_PIPELINE_ADD_OBJECT; static DeclareMemType MTYPE_PIPELINE_CREATE_OBJECTS; static DeclareMemType MTYPE_PIPELINE_UPDATE_MOVE; static DeclareMemType MTYPE_PIPELINE_UPDATE_GEOM; static DeclareMemType MTYPE_PIPELINE_MARK_VISIBLE; static DeclareMemType MTYPE_PIPELINE_MARK_MOVED; static DeclareMemType MTYPE_PIPELINE_MARK_SHIFT; static DeclareMemType MTYPE_PIPELINE_SHIFT_OBJECTS; static DeclareMemType MTYPE_PIPELINE_MARK_TEXTURED; static DeclareMemType MTYPE_PIPELINE_MARK_REBUILD; static DeclareMemType MTYPE_PIPELINE_UPDATE_CULL; static DeclareMemType MTYPE_PIPELINE_STATE_SORT; static DeclareMemType MTYPE_PIPELINE_POST_SORT; static DeclareMemType MTYPE_PIPELINE_RENDER_HUD_ELS; static DeclareMemType MTYPE_PIPELINE_RENDER_HL; static DeclareMemType MTYPE_PIPELINE_RENDER_GEOM; static DeclareMemType MTYPE_PIPELINE_RENDER_GEOM_DEFFERRED; static DeclareMemType MTYPE_PIPELINE_RENDER_GEOM_POST_DEF; static DeclareMemType MTYPE_PIPELINE_RENDER_GEOM_SHADOW; static DeclareMemType MTYPE_PIPELINE_RENDER_SELECT; static DeclareMemType MTYPE_PIPELINE_REBUILD_POOLS; static DeclareMemType MTYPE_PIPELINE_QUICK_LOOKUP; static DeclareMemType MTYPE_PIPELINE_RENDER_OBJECTS; static DeclareMemType MTYPE_PIPELINE_GENERATE_IMPOSTOR; static DeclareMemType MTYPE_PIPELINE_RENDER_BLOOM; static DeclareMemType MTYPE_UPKEEP_POOLS; static DeclareMemType MTYPE_AVATAR; static DeclareMemType MTYPE_AVATAR_MESH; static DeclareMemType MTYPE_PARTICLES; static DeclareMemType MTYPE_REGIONS; static DeclareMemType MTYPE_INVENTORY; static DeclareMemType MTYPE_INVENTORY_DRAW; static DeclareMemType MTYPE_INVENTORY_BUILD_NEW_VIEWS; static DeclareMemType MTYPE_INVENTORY_DO_FOLDER; static DeclareMemType MTYPE_INVENTORY_POST_BUILD; static DeclareMemType MTYPE_INVENTORY_FROM_XML; static DeclareMemType MTYPE_INVENTORY_CREATE_NEW_ITEM; static DeclareMemType MTYPE_INVENTORY_VIEW_INIT; static DeclareMemType MTYPE_INVENTORY_VIEW_SHOW; static DeclareMemType MTYPE_INVENTORY_VIEW_TOGGLE; static DeclareMemType MTYPE_ANIMATION; static DeclareMemType MTYPE_VOLUME; static DeclareMemType MTYPE_PRIMITIVE; static DeclareMemType MTYPE_SCRIPT; static DeclareMemType MTYPE_SCRIPT_RUN; static DeclareMemType MTYPE_SCRIPT_BYTECODE; static DeclareMemType MTYPE_IO_PUMP; static DeclareMemType MTYPE_IO_TCP; static DeclareMemType MTYPE_IO_BUFFER; static DeclareMemType MTYPE_IO_HTTP_SERVER; static DeclareMemType MTYPE_IO_SD_SERVER; static DeclareMemType MTYPE_IO_SD_CLIENT; static DeclareMemType MTYPE_IO_URL_REQUEST; static DeclareMemType MTYPE_DIRECTX_INIT; static DeclareMemType MTYPE_TEMP1; static DeclareMemType MTYPE_TEMP2; static DeclareMemType MTYPE_TEMP3; static DeclareMemType MTYPE_TEMP4; static DeclareMemType MTYPE_TEMP5; static DeclareMemType MTYPE_TEMP6; static DeclareMemType MTYPE_TEMP7; static DeclareMemType MTYPE_TEMP8; static DeclareMemType MTYPE_TEMP9; static DeclareMemType MTYPE_OTHER; // Special; used by display code S32 mTypeIndex; }; //---------------------------------------------------------------------------- #endif