游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1958|回复: 0

FTGL字体大小的问题

[复制链接]

2

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2009-4-17 01:16:00 | 显示全部楼层 |阅读模式
请大家看一下 下面的这一段的程序
#include <stdlib.h>
#include <stdio.h>
#include <GL/glut.h>
#include <iostream>

using namespace std;
//注意,编译器的搜索路径中必须包括 FTGL freetype两个文件夹
//而且附加库中也要有ftgl和freetype两个库才行
//工程属性中添加ftgl_dynamic_MTD_d.lib(Debug版本)或者ftgl_dynamic_MTD.lib(Release版本)
#include <FTGL/FTGLPixmapFont.h>

FTGLPixmapFont  *freeTypeFont = NULL;

void init(void)
{
glShadeModel(GL_SMOOTH); // 启用阴影平滑
glClearDepth(1.0f); // 设置深度缓存
glEnable(GL_DEPTH_TEST); // 启用深度测试
glDepthFunc(GL_LEQUAL); // 所作深度测试的类型

//FTGL初始化
char filePath[256]={0};
sprintf(filePath, "C:\\WINDOWS\\Fonts\\simhei.ttf");

freeTypeFont = new FTGLPixmapFont(filePath);
if(freeTypeFont == NULL)
{
char buf[] = "Font C:\\WINDOWS\\Fonts\\simhei.ttf can not be fond.\r\n";
printf("%s", buf);
exit(0);
}
else
{
freeTypeFont->FaceSize(24); // 必须
// freeTypeFont->CharMap(ft_encoding_unicode);
}
}

wchar_t str[128]=L"景色真是不错。。。";

void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕和深度缓存

glMatrixMode(GL_PROJECTION); // 切换到投影矩阵
glLoadIdentity(); // 重置投影矩阵
glOrtho(0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 10.0f);

glMatrixMode(GL_MODELVIEW); // 切换到模型视图矩阵
glLoadIdentity(); // 重置模型视图矩阵

//FTGL 输出测试,
glColor4f(1.0f, 0.0f, 0.0f, 1.0f);
glRasterPos2f(0.2, 0.5);
freeTypeFont->Render(str);

    cout < <"sdsadsadasd";

glutSwapBuffers();
}

void reshape(int w, int h)
{
  glViewport(0, 0, (GLsizei) w, (GLsizei) h);
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
  gluPerspective (45.0, (GLdouble)w/(GLdouble)h, 1.0, 10.0);
  glMatrixMode(GL_MODELVIEW);
  glLoadIdentity();
  glutPostRedisplay();
}


int main(int argc, char** argv)
{
  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
  glutInitWindowSize (600, 600);
  glutInitWindowPosition (100, 100);
  glutCreateWindow("FTGL 中文输出测试");
  init();
  glutReshapeFunc(reshape);
  glutDisplayFunc(display);
  glutMainLoop();
  return 0;
}

运行是没有问题的  可是如果我改变字体的大小 就会出现问题
例如我把
freeTypeFont->FaceSize(24);
这句改为
freeTypeFont->FaceSize(18);
运行是就会出现问题 也不知道为什么 请大家帮帮忙
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-20 17:26

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表