//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // //============================================================================= #ifndef TEXTUREHEAP_H #define TEXTUREHEAP_H #if defined( _X360 ) #include "locald3dtypes.h" class CTextureHeap { public: IDirect3DTexture *AllocTexture( int width, int height, int levels, DWORD usage, D3DFORMAT format, bool bFallback, bool bNoD3DMemory ); IDirect3DCubeTexture *AllocCubeTexture( int width, int levels, DWORD usage, D3DFORMAT format, bool bFallback, bool bNoD3DMemory ); IDirect3DVolumeTexture *AllocVolumeTexture( int width, int height, int depth, int levels, DWORD usage, D3DFORMAT format ); IDirect3DSurface *AllocRenderTargetSurface( int width, int height, D3DFORMAT format, bool bMultiSample = false , int base = -1); // Perform the real d3d allocation, returns true if succesful, false otherwise. // Only valid for a texture created with no d3d bits, otherwise no-op. bool AllocD3DMemory( IDirect3DBaseTexture *pTexture ); // Release header and d3d bits. void FreeTexture( IDirect3DBaseTexture *pTexture ); // Returns the amount of memory needed or allocated for the texture. int GetSize( IDirect3DBaseTexture *pTexture ); // Crunch the heap. void Compact(); // Get current backbuffer multisample type D3DMULTISAMPLE_TYPE GetBackBufferMultiSampleType(); }; extern CTextureHeap g_TextureHeap; #endif #endif // TEXTUREHEAP_H