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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2009-04-10 20:30:28 +0400
committerTon Roosendaal <ton@blender.org>2009-04-10 20:30:28 +0400
commit4e81404d7eb00d7373ea8e4c01ae8bdfad287d72 (patch)
treee0414e0bea32707785061910589d173c112756a6 /source/blender/ftfont/intern/FTF_TTFont.cpp
parent61249337817d3699ca961c9e4007cb0cdb232051 (diff)
2.5
Grand cleanup: - removal of FTF and ftfont dir - removal of text.c which wrapped it - wrapped old text drawing code temporarily, need to decide how 'style' will behave per editor when you draw strings outside interface code.... wouldn't be very useful to set fonts locally all over?
Diffstat (limited to 'source/blender/ftfont/intern/FTF_TTFont.cpp')
-rw-r--r--source/blender/ftfont/intern/FTF_TTFont.cpp403
1 files changed, 0 insertions, 403 deletions
diff --git a/source/blender/ftfont/intern/FTF_TTFont.cpp b/source/blender/ftfont/intern/FTF_TTFont.cpp
deleted file mode 100644
index e8f2b82f970..00000000000
--- a/source/blender/ftfont/intern/FTF_TTFont.cpp
+++ /dev/null
@@ -1,403 +0,0 @@
-/**
- * $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 *****
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <locale.h>
-#include "libintl.h"
-#include "BLI_blenlib.h"
-#include "BKE_font.h"
-
-#include "../FTF_Settings.h"
-
-#include "FTF_TTFont.h"
-
-#ifdef __APPLE__
-#include "BKE_utildefines.h"
-#endif
-
-#define DOMAIN_NAME "blender"
-
-#define SYSTEM_ENCODING_DEFAULT "UTF-8"
-#define FONT_SIZE_DEFAULT 12
-//#define FONT_PATH_DEFAULT ".bfont.ttf"
-
-#define FTF_MAX_STR_SIZE 512
-
-FTF_TTFont::FTF_TTFont(void)
-{
-#ifdef __APPLE__
- char *bundlepath;
-#endif
-
- font=NULL;
- fontm= fonts= fontl= NULL;
- font_size=FONT_SIZE_DEFAULT;
- mode = FTF_PIXMAPFONT;
- fsize = 1.0;
- strcpy(encoding_name, SYSTEM_ENCODING_DEFAULT);
-
- //set messagepath directory
-
-#ifndef LOCALEDIR
-#define LOCALEDIR "/usr/share/locale"
-#endif
-
- strcpy(messagepath, ".blender/locale");
-
- if ( !BLI_exist(messagepath) ) { // locale not in current dir
- BLI_make_file_string("/", messagepath, BLI_gethome(), ".blender/locale");
-
- if( !BLI_exist(messagepath) ) { // locale not in home dir
-
-#ifdef WIN32
- BLI_make_file_string("/", messagepath, BLI_gethome(), "/locale");
- if( !BLI_exist(messagepath) ) {
-#endif
-#ifdef __APPLE__
- /* message catalogs are stored inside the application bundle */
- bundlepath = BLI_getbundle();
- strcpy(messagepath, bundlepath);
- strcat(messagepath, "/Contents/Resources/locale");
- if( !BLI_exist(messagepath) ) { // locale not in bundle (now that's odd..)
-#endif
- strcpy(messagepath, LOCALEDIR);
-
- if( !BLI_exist(messagepath) ) { // locale not in LOCALEDIR
- strcpy(messagepath, "message"); // old compatibility as last
- }
-#ifdef WIN32
- }
-#endif
-#ifdef __APPLE__
- }
-#endif
- }
- }
-}
-
-
-FTF_TTFont::~FTF_TTFont(void)
-{
- if (fonts) delete fonts;
- if (fontm) delete fontm;
- if (fontl) delete fontl;
-}
-
-void FTF_TTFont::SetFontSize(char size)
-{
- if(size=='s') font=fonts;
- else if(size=='l') font=fontl;
- else font=fontm;
-}
-
-int FTF_TTFont::SetFont(const unsigned char* str, int datasize, int fontsize)
-{
- int err = 0;
- bool success = 0;
-
- if (fonts) delete fonts;
- if (fontm) delete fontm;
- if (fontl) delete fontl;
- fonts= NULL;
- fontm= NULL;
- fontl= NULL;
-
- if(mode == FTF_PIXMAPFONT) {
-
- if(datasize) font = new FTGLPixmapFont(str, datasize);
- else font = new FTGLPixmapFont( (char *)str);
-
- err = font->Error();
-
- if(err) {
- printf("Failed to open font %s\n", str);
- return 0;
- } else {
-
- fontm= font;
-
- if(datasize) fonts = new FTGLPixmapFont(str, datasize);
- else fonts = new FTGLPixmapFont((char *)str);
- if(datasize) fontl = new FTGLPixmapFont(str, datasize);
- else fontl = new FTGLPixmapFont((char *)str);
-
- success = fonts->FaceSize(fontsize-2<8?8:fontsize-2);
- success = fontm->FaceSize(fontsize-1<8?8:fontsize-1);
- success = fontl->FaceSize(fontsize);
- if(!success) return 0;
-
- success = fonts->CharMap(ft_encoding_unicode);
- success = fontm->CharMap(ft_encoding_unicode);
- success = fontl->CharMap(ft_encoding_unicode);
- if(!success) return 0;
-
- return 1;
- }
-
- } else if(mode == FTF_TEXTUREFONT) {
-
- if(datasize) font = new FTGLTextureFont(str, datasize);
- else font = new FTGLTextureFont( (char *)str);
-
- err = font->Error();
-
- if(err) {
- printf("Failed to open font %s\n", str);
- return 0;
- } else {
-
- fontm= font;
-
- if(datasize) fonts = new FTGLTextureFont(str, datasize);
- else fonts = new FTGLTextureFont((char *)str);
- if(datasize) fontl = new FTGLTextureFont(str, datasize);
- else fontl = new FTGLTextureFont((char *)str);
-
- success = fonts->FaceSize(fontsize-2<8?8:fontsize-2);
- success = fontm->FaceSize(fontsize-1<8?8:fontsize-1);
- success = fontl->FaceSize(fontsize);
-// success = fonts->FaceSize(fontsize/2);
-// success = fontm->FaceSize(fontsize);
-// success = fontl->FaceSize(fontsize*2);
- if(!success) return 0;
-
- success = fonts->CharMap(ft_encoding_unicode);
- success = fontm->CharMap(ft_encoding_unicode);
- success = fontl->CharMap(ft_encoding_unicode);
- if(!success) return 0;
-
- return 1;
- }
- }
- return 0;
-}
-
-void FTF_TTFont::SetLanguage(char* str)
-{
-
-#if defined (_WIN32) || defined(__APPLE__)
- char envstr[12];
-
- sprintf(envstr, "LANG=%s", str);
- envstr[strlen(envstr)]='\0';
-#ifdef _WIN32
- gettext_putenv(envstr);
-#else
- putenv(envstr);
-#endif
-#else
- char *locreturn = setlocale(LC_ALL, str);
- if (locreturn == NULL) {
- char *lang;
-
- lang = (char*)malloc(sizeof(char)*(strlen(str)+7));
-
- lang[0] = '\0';
- strcat(lang, str);
- strcat(lang, ".UTF-8");
-
- locreturn = setlocale(LC_ALL, lang);
- if (locreturn == NULL) {
- printf("could not change language to %s nor %s\n", str, lang);
- }
-
- free(lang);
- }
-
- setlocale(LC_NUMERIC, "C");
-#endif
-
-
- bindtextdomain(DOMAIN_NAME, messagepath);
-// bind_textdomain_codeset(DOMAIN_NAME, encoding_name);
- textdomain(DOMAIN_NAME);
-
- strcpy(language, str);
-}
-
-
-void FTF_TTFont::SetEncoding(char* str)
-{
- strcpy(encoding_name, str);
-// bind_textdomain_codeset(DOMAIN_NAME, encoding_name);
-}
-
-
-void FTF_TTFont::SetSize(int size)
-{
- fonts->FaceSize(size-2<8?8:size-2);
- fontm->FaceSize(size-1<8?8:size-1);
- fontl->FaceSize(size);
-
- font_size = size;
-}
-
-int FTF_TTFont::GetSize(void)
-{
- return font_size;
-}
-
-/*
-int FTF_TTFont::Ascender(void)
-{
- return (int)font->Ascender();
-}
-
-int FTF_TTFont::Descender(void)
-{
- return (int)font->Descender();
-}
-
-*/
-int FTF_TTFont::TransConvString(char* str, char* ustr, unsigned int flag)
-{
- return 0;
-}
-
-
-float FTF_TTFont::DrawString(char* str, unsigned int flag)
-{
- float color[4];
- wchar_t wstr[FTF_MAX_STR_SIZE-1]={'\0'};
-
- /* note; this utf8towchar() function I totally don't understand... without using translations it
- removes special characters completely. So, for now we just skip that then. (ton) */
- if (FTF_USE_GETTEXT & flag)
- utf8towchar(wstr, gettext(str));
- else if (FTF_INPUT_UTF8 & flag)
- utf8towchar(wstr, str);
-
- glGetFloatv(GL_CURRENT_COLOR, color);
-
- if(mode == FTF_PIXMAPFONT) {
-
- glPixelTransferf(GL_RED_SCALE, color[0]);
- glPixelTransferf(GL_GREEN_SCALE, color[1]);
- glPixelTransferf(GL_BLUE_SCALE, color[2]);
-
- if ((FTF_USE_GETTEXT | FTF_INPUT_UTF8) & flag)
- font->Render(wstr);
- else
- font->Render(str);
-
- glPixelTransferf(GL_RED_SCALE, 1.0);
- glPixelTransferf(GL_GREEN_SCALE, 1.0);
- glPixelTransferf(GL_BLUE_SCALE, 1.0);
-
- } else if(mode == FTF_TEXTUREFONT) {
-
- glEnable(GL_BLEND);
- glEnable(GL_TEXTURE_2D);
-
- glPushMatrix();
- glTranslatef(pen_x, pen_y, 0.0);
- glScalef(fsize, fsize, 1.0);
-
- if ((FTF_USE_GETTEXT | FTF_INPUT_UTF8) & flag)
- font->Render(wstr);
- else
- font->Render(str);
-
- glPopMatrix();
-
- glDisable(GL_BLEND);
- glDisable(GL_TEXTURE_2D);
- }
-
- if ((FTF_USE_GETTEXT | FTF_INPUT_UTF8) & flag)
- return font->Advance(wstr);
- else
- return font->Advance(str);
-}
-
-
-float FTF_TTFont::GetStringWidth(char* str, unsigned int flag)
-{
- wchar_t wstr[FTF_MAX_STR_SIZE-1]={'\0'};
- int len=0;
-
- if (strlen(str)==0) return 0.0;
-
- /* note; this utf8towchar() function I totally don't understand... without using translations it
- removes special characters completely. So, for now we just skip that then. (ton) */
-
- if (FTF_USE_GETTEXT & flag) {
- len=utf8towchar(wstr, gettext(str));
-
- if(mode == FTF_PIXMAPFONT) {
- return font->Advance(wstr);
- } else if(mode == FTF_TEXTUREFONT) {
- return font->Advance(wstr);// * fsize;
- }
- }
- else {
- if(mode == FTF_PIXMAPFONT) {
- return font->Advance(str);
- } else if(mode == FTF_TEXTUREFONT) {
- return font->Advance(str);// * fsize;
- }
- }
-
- return 0.0;
-}
-
-
-void FTF_TTFont::GetBoundingBox(char* str, float *llx, float *lly, float *llz, float *urx, float *ury, float *urz, unsigned int flag)
-{
- wchar_t wstr[FTF_MAX_STR_SIZE-1]={'\0'};
- int len=0;
-
- if (FTF_USE_GETTEXT & flag)
- len=utf8towchar(wstr,gettext(str));
- else
- len=utf8towchar(wstr,str);
-
- font->BBox(wstr, *llx, *lly, *llz, *urx, *ury, *urz);
-}
-
-
-void FTF_TTFont::SetPosition(float x, float y)
-{
- pen_x = x;
- pen_y = y;
-}
-
-
-void FTF_TTFont::SetMode(int m)
-{
- mode = m;
-}
-
-
-void FTF_TTFont::SetScale(float size)
-{
- fsize = size;
-}
-
-