Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Implementation of the IEditorTexture interface for WAD textures.
//
//=============================================================================//
#ifndef WADTEXTURE_H
#define WADTEXTURE_H
#ifdef _WIN32
#pragma once
#endif
#include <afxtempl.h>
#include "BlockArray.h"
#include "IEditorTexture.h"
class IMaterial;
class CWADTexture : public IEditorTexture { public:
CWADTexture(void); virtual ~CWADTexture(void);
static bool Initialize(void); static void ShutDown(void);
BOOL Init(int, DWORD, BOOL, LPCTSTR);
BOOL AdjustTexture(char *pLoadBuf);
inline const char *GetName(void) const { return(m_szName); } int GetShortName(char *pszName) const;
int GetKeywords(char *pszKeywords) const;
void Draw(CDC *pDC, RECT &rect, int iFontHeight, int iIconHeight, DrawTexData_t &DrawTexData);//, DWORD dwFlags = (drawCaption|drawIcons));
void GetSize(SIZE &size);
const char *GetFileName(void) const;
int GetImageDataRGB( void *pImageRGB ); int GetImageDataRGBA( void *pImageRGBA );
inline int GetImageWidth() const { return( m_datawidth ); }
inline int GetImageHeight() const { return( m_dataheight ); }
inline int GetWidth() const { return(m_nWidth); }
inline int GetHeight() const { return(m_nHeight); }
inline float GetDecalScale() const { return( 1.0f ); } CPalette *GetPalette() const;
inline int GetTextureID() const { return( m_nTextureID ); } inline TEXTUREFORMAT GetTextureFormat() const { return(format); }
inline int GetSurfaceAttributes() const { return(m_WALsurface); }
inline int GetSurfaceContents() const { return(m_WALcontents); }
inline int GetSurfaceValue() const { return(m_WALvalue); }
inline bool HasAlpha() const { return( false ); }
inline bool HasData( void ) const { return(m_pData != NULL); }
inline bool HasPalette() const { return(m_bLocalPalette == TRUE); }
inline bool IsDummy( void ) const { return( false ); }
bool Load( void ); void Reload( bool bFullReload ) {} bool IsLoaded() const;
inline void SetTextureFormat(TEXTUREFORMAT eFormat) { format = eFormat; }
inline void SetTextureID( int nTextureID ) { m_nTextureID = nTextureID; }
bool IsWater( void ) const { return false; }
protected:
BOOL Load(int fd, HANDLE hFile); void DrawNoImage(CDC *pDC, RECT &rect, int iFontHeight);
char m_szName[MAX_PATH]; char m_szFileName[MAX_PATH];
// additional data for new .WAL textures:
int m_WALsurface; int m_WALvalue; int m_WALcontents;
// Used when the texture is in a .WAD or a .PAK file.
// Otherwise, texture is loaded automatically.
DWORD m_ulFileOffset; // Offset to texture in WAD file.
DWORD m_ulFileID; // ID of WAD file the texture is in.
TEXTUREFORMAT format;
LOGPALETTE *m_pPalette; // This texture's palette.
BOOL m_bLocalPalette; // Use m_pPalette?
int m_nTextureID; // Uniquely identifies this texture in all 3D renderers.
int m_datawidth; int m_dataheight;
int m_nWidth; int m_nHeight;
void *m_pData; // Loaded pixel data (NULL if not loaded)
};
#endif // WADTEXTURE_H
|