253 lines
8.8 KiB
C++
253 lines
8.8 KiB
C++
/**
|
|
* @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:
|
|
|
|
#if !MEM_TRACK_TYPE
|
|
DeclareMemType(char const * st) {}; //Do nothing
|
|
#else
|
|
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;
|
|
#endif
|
|
};
|
|
|
|
#if !MEM_TRACK_TYPE
|
|
LLMemType(DeclareMemType& dt){} //Do nothing
|
|
#else
|
|
LLMemType(DeclareMemType& dt);
|
|
~LLMemType();
|
|
|
|
static char const * getNameFromID(S32 id);
|
|
#endif
|
|
|
|
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_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
|
|
|
|
#if MEM_TRACK_TYPE
|
|
S32 mTypeIndex;
|
|
#endif
|
|
};
|
|
|
|
//----------------------------------------------------------------------------
|
|
|
|
#endif
|
|
|