ITexture
This interface provides access to individual textures.
//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ // //=============================================================================// #ifndef ITEXTURE_H #define ITEXTURE_H #ifdef _WIN32 #pragma once #endif enum ImageFormat; class IVTFTexture; class ITexture; struct Rect_t; class ITexture { public: // Various texture polling methods virtual const char *GetName( void ) const = 0; virtual int GetMappingWidth() const = 0; virtual int GetMappingHeight() const = 0; virtual int GetActualWidth() const = 0; virtual int GetActualHeight() const = 0; virtual int GetNumAnimationFrames() const = 0; virtual bool IsTranslucent() const = 0; virtual bool IsMipmapped() const = 0; virtual void GetLowResColorSample( float s, float t, float *color ) const = 0; // Methods associated with reference count virtual void IncrementReferenceCount( void ) = 0; virtual void DecrementReferenceCount( void ) = 0; // Used to modify the texture bits (procedural textures only) virtual void SetTextureRegenerator( ITextureRegenerator *pTextureRegen ) = 0; // Reconstruct the texture bits in HW memory // If rect is not specified, reconstruct all bits, otherwise just // reconstruct a subrect. virtual void Download( Rect_t *pRect = 0 ) = 0; // Uses for stats. . .get the approximate size of the texture in it's current format. virtual int GetApproximateVidMemBytes( void ) const = 0; // Returns true if the texture data couldn't be loaded. virtual bool IsError() const = 0; }; inline bool IsErrorTexture( ITexture *pTex ) { return !pTex || pTex->IsError(); } #endif // ITEXTURE_H