summaryrefslogtreecommitdiff
path: root/vgui2/src/bitmap.h
blob: f75275d6762473396e83a67fc58550b6eb977a1d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
// $NoKeywords: $
//=============================================================================//

#ifndef BITMAP_H
#define BITMAP_H

#ifdef _WIN32
#pragma once
#endif

#include <vgui/IImage.h>
#include <Color.h>

namespace vgui
{

//-----------------------------------------------------------------------------
// Purpose: Holds a single image, internal to vgui only
//-----------------------------------------------------------------------------
class Bitmap : public IImage
{
public:
	Bitmap( const char *filename, bool hardwareFiltered );
	~Bitmap();

	// IImage implementation
	virtual void		Paint();
	virtual void		GetSize( int &wide, int &tall );
	virtual void		GetContentSize( int &wide, int &tall );
	virtual void		SetSize( int x, int y );
	virtual void		SetPos( int x, int y );
	virtual void		SetColor( Color col );
	virtual bool		Evict();
	virtual int			GetNumFrames();
	virtual void		SetFrame( int nFrame );
	virtual HTexture	GetID();		// returns the texture id
	virtual void		SetRotation( int iRotation ) { _rotation = iRotation; }

	// methods
	void			ForceUpload();	// ensures the bitmap has been uploaded
	const char		*GetName();
	bool			IsValid() { return _valid; }

private:
	HTexture		_id;
	bool			_uploaded;
	bool			_valid;
	char			*_filename;
	int				_pos[2];
	Color			_color;
	bool			_filtered;
	int				_wide,_tall;
	bool			_bProcedural;
	unsigned int	nFrameCache;
	int				_rotation;
};

} // namespace vgui

#endif // BITMAP_H