Welcome to mirror list, hosted at ThFree Co, Russian Federation.

FTF_TTFont.h « intern « ftfont « blender « source - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 51247a2d2a13b5b52186ecd81430f6f5acd457f0 (plain)
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/**
 * $Id$
 * ***** BEGIN GPL LICENSE BLOCK *****
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software Foundation,
 * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 *
 * Copyright (C) 2002 Blender Foundation. All Rights Reserved.
 *
 * The Original Code is: all of this file.
 *
 * Contributor(s): none yet.
 *
 * ***** END GPL LICENSE BLOCK *****
 */

/**

 * $Id$
 * Copyright (C) 2001 NaN Technologies B.V.
 */

#ifndef __FTF_TRUETYPE_FONT_H
#define __FTF_TRUETYPE_FONT_H

#include "FTGLPixmapFont.h"
#include "FTGLTextureFont.h"

#include <stdio.h>
//#include <iconv.h>


/**
 * Base class for Using FTGL, iconv and gettext Library.
 */
class FTF_TTFont
{
public:
	/**
	 * Default constructor.
	 */
	FTF_TTFont(void);

	/**
	 * Destructor.
	 */
	virtual	~FTF_TTFont(void);


	void SetSize(int size);
	int GetSize(void);

//	int Ascender(void);
//	int Descender(void);

	int TransConvString(char* str, char* ustr, unsigned int flag);

	/**
	 * Draws a string at the current raster position in current opengl color.
	 * @param str	The string to draw.
	 * @param flag	Whether use gettext and UTF8 or system encoding.
	 */
	float DrawString(char* str, unsigned int flag);

	float GetStringWidth(char* str, unsigned int flag);

	/**
	 * Get the bounding box for a string.
	 *
	 * @param str	The string
	 * @param llx   Lower left near x coord
	 * @param lly   Lower left near y coord
	 * @param llz   Lower left near z coord
	 * @param urx   Upper right far x coord
	 * @param ury   Upper right far y coord
	 * @param urz   Upper right far z coord
	 */
	void GetBoundingBox(char* str, float *llx, float *lly, float *llz, float *urx, float *ury, float *urz, unsigned int flag);

	/**
	 * added by phase, ton
	 * functions to communicate with the preference menu
	 */
	void SetFontSize(char size);

	int SetFont(const unsigned char* str, int datasize, int fontsize);

	void SetLanguage(char* str);

	void SetEncoding(char* str);

	/**
	 * functions to communicate with blender ui rasterpos
	 */
	void SetPosition(float x, float y);
	void SetMode(int mode);
	void SetScale(float fsize);

protected:
	char messagepath[1024];

	char language[32];
	char encoding_name[32];
	char font_name[128];
	int font_size;

	int	mode;			// 0 = pixmap, 1 = texture
	float pen_x, pen_y; //rasterpos
	float fsize;

	/** FTGL's */
	FTFont* font;	/* active */
	
	FTFont* fonts;	/* opened, small medium and large */
	FTFont* fontm;
	FTFont* fontl;

	/** from system encoding in .locale to UNICODE */
//	iconv_t cd;

	/** from UTF-8 to UNICODE */
//	iconv_t ucd;
};

#endif // __FTF_TRUETYPE_FONT_H