/** * @file llmemtype.h * @brief Runtime memory usage debugging utilities. * * $LicenseInfo:firstyear=2005&license=viewerlgpl$ * Second Life Viewer Source Code * Copyright (C) 2010, Linden Research, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License only. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/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 <vector> #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<char const *> 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