//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: Simple texture object used for sprites. Handed to the renderer // for binding. May become a general purpose texture object. // //=============================================================================// #ifndef TEXTURE_H #define TEXTURE_H #ifdef _WIN32 #pragma once #endif #include "IEditorTexture.h" enum { TEXTURE_HAS_ALPHA = 0x01 }; class CTexture : public IEditorTexture { public: CTexture( void ); virtual ~CTexture( void ); bool Allocate( int nWidth, int nHeight, int nFlags ); void Draw(CDC *pDC, RECT &rect, int iFontHeight, int iIconHeight, DrawTexData_t &DrawTexData); inline void *GetImageDataPtr( void ) { return( m_pImageData ); } const char *GetFileName(void) const; inline const char *GetName(void) const { return(m_szName); } int GetShortName(char *pszName) const; int GetKeywords(char *pszKeywords) const; int GetImageDataRGB( void *pData = NULL ); int GetImageDataRGBA( void *pData = NULL ); inline int GetImageWidth( void ) const { return( m_nWidth ); } inline int GetImageHeight( void ) const { return( m_nHeight ); } inline int GetWidth( void ) const { return( m_nWidth ); } inline int GetHeight( void ) const { return( m_nHeight ); } inline float GetDecalScale( void ) const { return( 1.0f ); } inline CPalette *GetPalette( void ) const { return( NULL ); } inline int GetSurfaceAttributes( void ) const { return(0); } inline int GetSurfaceContents(void ) const { return(0); } inline int GetSurfaceValue( void ) const { return(0); } inline TEXTUREFORMAT GetTextureFormat( void ) const { return(tfSprite); } inline int GetTextureID( void ) const { return( m_nTextureID ); } inline bool HasAlpha( void ) const { return( m_bHasAlpha ); } inline bool HasData( void ) const { return( m_pImageData != NULL ); } inline bool HasPalette( void ) const { return( false ); } inline bool IsDummy( void ) const { return(( m_nWidth == 0) || ( m_nHeight == 0) || ( m_pImageData == NULL )); } bool Load( void ); inline bool IsLoaded() const { return true; } inline void SetTextureID( int nTextureID ) { m_nTextureID = nTextureID; } protected: int m_nTextureID; // Uniquely identifies this texture in all 3D renderers. int m_nWidth; int m_nHeight; bool m_bHasAlpha; char m_szName[MAX_PATH]; void *m_pImageData; }; #endif // TEXTURE_H