The exact commands to make this commit were: git reset --hard origin/master find -type f | # list all regular files grep -E '\.(h|cpp|fsh|vsh|mm)|LICENSE$' | # filter for text files xargs -n 1 -P $(nproc) sed -i 's:\s*$::' # for each file, trim trailing whitespace including the CR git commit -a
		
			
				
	
	
		
			109 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright (C) 2002-2012 Nikolaus Gebhardt
 | |
| // This file is part of the "Irrlicht Engine".
 | |
| // For conditions of distribution and use, see copyright notice in irrlicht.h
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include "IGUIFontBitmap.h"
 | |
| #include "irrString.h"
 | |
| #include "IReadFile.h"
 | |
| #include "irrArray.h"
 | |
| #include <map>
 | |
| 
 | |
| namespace irr
 | |
| {
 | |
| 
 | |
| namespace video
 | |
| {
 | |
| 	class IVideoDriver;
 | |
| 	class IImage;
 | |
| }
 | |
| 
 | |
| namespace gui
 | |
| {
 | |
| 
 | |
| 	class IGUIEnvironment;
 | |
| 
 | |
| class CGUIFont : public IGUIFontBitmap
 | |
| {
 | |
| public:
 | |
| 
 | |
| 	//! constructor
 | |
| 	CGUIFont(IGUIEnvironment* env, const io::path& filename);
 | |
| 
 | |
| 	//! destructor
 | |
| 	virtual ~CGUIFont();
 | |
| 
 | |
| 	//! loads a font from a texture file
 | |
| 	bool load(const io::path& filename);
 | |
| 
 | |
| 	//! loads a font from a texture file
 | |
| 	bool load(io::IReadFile* file);
 | |
| 
 | |
| 	//! draws an text and clips it to the specified rectangle if wanted
 | |
| 	virtual void draw(const core::stringw& text, const core::rect<s32>& position,
 | |
| 			video::SColor color, bool hcenter=false,
 | |
| 			bool vcenter=false, const core::rect<s32>* clip=0) override;
 | |
| 
 | |
| 	//! returns the dimension of a text
 | |
| 	core::dimension2d<u32> getDimension(const wchar_t* text) const override;
 | |
| 
 | |
| 	//! Calculates the index of the character in the text which is on a specific position.
 | |
| 	s32 getCharacterFromPos(const wchar_t* text, s32 pixel_x) const override;
 | |
| 
 | |
| 	//! Returns the type of this font
 | |
| 	EGUI_FONT_TYPE getType() const override { return EGFT_BITMAP; }
 | |
| 
 | |
| 	//! set an Pixel Offset on Drawing ( scale position on width )
 | |
| 	void setKerningWidth (s32 kerning) override;
 | |
| 	void setKerningHeight (s32 kerning) override;
 | |
| 
 | |
| 	//! set an Pixel Offset on Drawing ( scale position on width )
 | |
| 	s32 getKerningWidth(const wchar_t* thisLetter=0, const wchar_t* previousLetter=0) const override;
 | |
| 	s32 getKerningHeight() const override;
 | |
| 
 | |
| 	//! gets the sprite bank
 | |
| 	IGUISpriteBank* getSpriteBank() const override;
 | |
| 
 | |
| 	//! returns the sprite number from a given character
 | |
| 	u32 getSpriteNoFromChar(const wchar_t *c) const override;
 | |
| 
 | |
| 	void setInvisibleCharacters( const wchar_t *s ) override;
 | |
| 
 | |
| private:
 | |
| 
 | |
| 	struct SFontArea
 | |
| 	{
 | |
| 		SFontArea() : underhang(0), overhang(0), width(0), spriteno(0) {}
 | |
| 		s32				underhang;
 | |
| 		s32				overhang;
 | |
| 		s32				width;
 | |
| 		u32				spriteno;
 | |
| 	};
 | |
| 
 | |
| 	//! load & prepare font from ITexture
 | |
| 	bool loadTexture(video::IImage * image, const io::path& name);
 | |
| 
 | |
| 	void readPositions(video::IImage* texture, s32& lowerRightPositions);
 | |
| 
 | |
| 	s32 getAreaFromCharacter (const wchar_t c) const;
 | |
| 	void setMaxHeight();
 | |
| 
 | |
| 	void pushTextureCreationFlags(bool(&flags)[3]);
 | |
| 	void popTextureCreationFlags(const bool(&flags)[3]);
 | |
| 
 | |
| 	core::array<SFontArea>		Areas;
 | |
| 	std::map<wchar_t, s32>		CharacterMap;
 | |
| 	video::IVideoDriver*		Driver;
 | |
| 	IGUISpriteBank*			SpriteBank;
 | |
| 	IGUIEnvironment*		Environment;
 | |
| 	u32				WrongCharacter;
 | |
| 	s32				MaxHeight;
 | |
| 	s32				GlobalKerningWidth, GlobalKerningHeight;
 | |
| 
 | |
| 	core::stringw Invisible;
 | |
| };
 | |
| 
 | |
| } // end namespace gui
 | |
| } // end namespace irr
 |