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.
94 lines
3.0 KiB
94 lines
3.0 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#ifndef VGUI_BITMAPIMAGE_H |
|
#define VGUI_BITMAPIMAGE_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include <vgui_controls/Image.h> |
|
|
|
namespace vgui |
|
{ |
|
class Panel; |
|
} |
|
|
|
class KeyValues; |
|
struct Bitmap_t; |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: Bitmap image |
|
//----------------------------------------------------------------------------- |
|
class BitmapImage : public vgui::Image |
|
{ |
|
public: |
|
BitmapImage(); |
|
BitmapImage( vgui::VPANEL pPanelSize, const char *pFileName ); |
|
virtual ~BitmapImage(); |
|
bool Init( vgui::VPANEL pParent, const char *pFileName ); |
|
bool Init( vgui::VPANEL pParent, KeyValues* pInitData ); |
|
|
|
/* FIXME: Bleah!!! Don't want two different KeyValues |
|
bool Init( vgui::VPANEL pParent, KeyValues* pInitData ); */ |
|
|
|
void DoPaint( vgui::VPANEL panel, float yaw = 0, float flAlphaModulate = 1.0f ); |
|
void DoPaint( int x, int y, int w, int h, float yaw = 0, float flAlphaModulate = 1.0f ); |
|
void Paint( ); |
|
void SetColor( const Color& clr ); |
|
Color GetColor( ); |
|
void GetColor( int& r,int& g,int& b,int& a ); |
|
void GetSize( int& wide, int& tall ); |
|
void SetPos( int x, int y ); |
|
void SetRenderSize( int x, int y ); |
|
|
|
void SetImageFile( const char *newImage ); |
|
|
|
// Pass NULL in to use the size set in SetSize |
|
// otherwise it'll use the size of the panel |
|
void UsePanelRenderSize( vgui::VPANEL pPanel ); |
|
vgui::VPANEL GetRenderSizePanel( void ); |
|
|
|
void SetViewport( bool use, float left, float top, float right, float bottom ); |
|
|
|
/// Set raw bitmap data |
|
void SetBitmap( const Bitmap_t &bitmap ); |
|
|
|
/// Clean up vgui resources |
|
void DestroyTexture(); |
|
|
|
private: |
|
int m_nTextureId; |
|
Color m_clr; |
|
int m_pos[2]; |
|
int m_Size[2]; |
|
vgui::VPANEL m_pPanelSize; |
|
|
|
bool m_bUseViewport; |
|
float m_rgViewport[ 4 ]; |
|
bool m_bProcedural; |
|
}; |
|
|
|
|
|
//----------------------------------------------------------------------------- |
|
// Helper method to initialize a bitmap image from KeyValues data.. |
|
// KeyValues contains the bitmap data. pSectionName, if it exists, |
|
// indicates which subsection of pInitData should be looked at to get at the |
|
// image data. The parent argument specifies which panel to use as parent, |
|
// and the final argument is the bitmap image to initialize. |
|
// The function returns true if it succeeded. |
|
// |
|
// NOTE: This function looks for the key values 'material' and 'color' |
|
// and uses them to set up the material + modulation color of the image |
|
//----------------------------------------------------------------------------- |
|
bool InitializeImage( KeyValues *pInitData, const char* pSectionName, vgui::Panel *pParent, BitmapImage* pBitmapImage ); |
|
|
|
/* FIXME: How sad. We need to make KeyValues + vgui::KeyValues be the same. Bleah |
|
bool InitializeImage( KeyValues *pInitData, const char* pSectionName, vgui::Panel *pParent, BitmapImage* pBitmapImage ); */ |
|
|
|
|
|
#endif // VGUI_BITMAPIMAGE_H
|
|
|