35 lines
1.2 KiB
C
35 lines
1.2 KiB
C
//===== Copyright © 1996-2007, Valve Corporation, All rights reserved. ======//
|
|
//
|
|
// Purpose: tracks VB allocations (and compressed/uncompressed vertex memory usage)
|
|
//
|
|
//===========================================================================//
|
|
|
|
#ifndef IVBALLOCTRACKER_H
|
|
#define IVBALLOCTRACKER_H
|
|
|
|
#include "materialsystem/imaterialsystem.h"
|
|
|
|
// By default, only enable this alloc tracking for a debug shaderapidx*.dll
|
|
// (it uses about 0.25MB to track ~7000 allocations)
|
|
#if defined(_DEBUG)
|
|
#define ENABLE_VB_ALLOC_TRACKER 1
|
|
#else
|
|
#define ENABLE_VB_ALLOC_TRACKER 0
|
|
#endif
|
|
|
|
// This interface is actually exported by the shader API DLL.
|
|
|
|
// Interface to the VB mem alloc tracker
|
|
abstract_class IVBAllocTracker
|
|
{
|
|
public:
|
|
// This should be called wherever VertexBuffers are allocated
|
|
virtual void CountVB( void * buffer, bool isDynamic, int bufferSize, int vertexSize, VertexFormat_t fmt ) = 0;
|
|
// This should be called wherever VertexBuffers are freed
|
|
virtual void UnCountVB( void * buffer ) = 0;
|
|
// Track mesh allocations (set this before an allocation, clear it after)
|
|
virtual void TrackMeshAllocations( const char * allocatorName ) = 0;
|
|
};
|
|
|
|
#endif // IVBALLOCTRACKER_H
|