mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-22 14:16:50 +00:00
36 lines
1.2 KiB
C++
36 lines
1.2 KiB
C++
//========= Copyright 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.
|
|
#define VB_ALLOC_TRACKER_INTERFACE_VERSION "VBAllocTracker001"
|
|
|
|
// 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 bool TrackMeshAllocations( const char * allocatorName ) = 0;
|
|
};
|
|
|
|
#endif // IVBALLOCTRACKER_H
|