mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-22 22:27:05 +00:00
43 lines
1.4 KiB
C++
43 lines
1.4 KiB
C++
//========= 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
|