GLUTによる文字描画 glut.h
・glutStrokeCharacter
関数の定義-参考HP1より
void drawStrokeString(GLfloat x, GLfloat y, float xscl, float yscl,void *font, char *string)
{
glPushMatrix();
glTranslatef(x, y, 0);
glScalef(xscl, yscl, 1.0f);
while (*string)
glutStrokeCharacter(font, *string++);
glPopMatrix();
}
使用例
case WM_PAINT:
glClearColor((GLclampf)0.7, (GLclampf)0.8, (GLclampf)0.8, 0.0);
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
//視点の変換行列の初期化
glLoadIdentity();
CalcCameraPosition(camera_theta,camera_phi,camera_distance,camera_centerX,camera_centerY,camera_centerZ,&camera_positionX,&camera_positionY,&camera_positionZ,&camera_upY);
//視点の決定
gluLookAt(camera_positionX, camera_positionY, camera_positionZ,0.0,0.0,0.0,0.0,camera_upY,0.0);// camera_centerX,camera_centerY,camera_centerZ, 0.0,1.0,0.0);
glPushMatrix();
glTranslated(5.0,0.0,0.0);
drawStrokeString(1.0f,1.0f,0.02f,0.02f,GLUT_STROKE_ROMAN,"5");
glPopMatrix();
glFlush();
mygraph.Draw(hMemDC,0,0,MEM_WIDTH,MEM_HEIGHT);
hdc = BeginPaint(hWnd, &ps);
// TODO: 描画コードをここに追加してください...
BitBlt(hdc,0,0,WINDOW_WIDTH,WINDOW_HEIGHT,hMemDC,0,0,SRCCOPY);//ここでhMemDCに書き込んだ内容を一気hdcに転送する
EndPaint(hWnd, &ps);
break;
FTGLによる文字描画
・FTGLPolygonFont
#include <FTGLPolygonFont.h>
#define FONT "C:\\WINDOWS\\Fonts\\meiryo.ttc"//sazanami-mincho.ttf"//sazanami-gothic.ttf
#define SIZE 5.0
#define DEPTH 1.5
FTFont *font;
使用例
case WM_CREATE:
font = new FTGLPolygonFont(FONT);
if (font->Error()) exit(1); // can't open font file
if (!font->FaceSize(SIZE)) exit(1); // can't set font size
if (!font->CharMap(ft_encoding_unicode)) exit(1); // can't set charmap
break;
case WM_PAINT:
glClearColor((GLclampf)0.7, (GLclampf)0.8, (GLclampf)0.8, 0.0);
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
//視点の変換行列の初期化
glLoadIdentity();
CalcCameraPosition(camera_theta,camera_phi,camera_distance,camera_centerX,camera_centerY,camera_centerZ,&camera_positionX,&camera_positionY,&camera_positionZ,&camera_upY);
//視点の決定
gluLookAt(camera_positionX, camera_positionY, camera_positionZ,0.0,0.0,0.0,0.0,camera_upY,0.0);// camera_centerX,camera_centerY,camera_centerZ, 0.0,1.0,0.0);
glPushMatrix();
glColor3d(0.0, 0.0, 0.0);
glTranslated(0.0, 5.0, 0.0);
font->Render(TEXT("こんにちわ"));
glPopMatrix();
glFlush();
mygraph.Draw(hMemDC,0,0,MEM_WIDTH,MEM_HEIGHT);
hdc = BeginPaint(hWnd, &ps);
// TODO: 描画コードをここに追加してください...
BitBlt(hdc,0,0,WINDOW_WIDTH,WINDOW_HEIGHT,hMemDC,0,0,SRCCOPY);//ここでhMemDCに書き込んだ内容を一気hdcに転送する
EndPaint(hWnd, &ps);
break;
参考HP
Microsoft VisualStudio2005 Professional Editionにてのビルド方法
1.sourceforgeからFTGLとfreetypeとcppunitをダウンロードし、それらを展開してProgram Filesにおく
ダウンロードしたファイル名
- ftgl-2.1.2.tar.gz
- ft235.zip
- cppunit-1.12.0.tar.gz
2.ツール-オプション-プロジェクトおよびソリューション-VC++ディレクトリ にて
FreeTypeとFTGLおよびcppunitの インクルードディレクトリ および ライブラリディレクトリ を指定する
ディレクトリを表示するプロジェクト:インクルードファイルの項目を以下のように設定する
C:\Program Files\cppunit-1.12.0\include
C:\Program Files\FTGL\include
C:\Program Files\freetype-2.3.5\include
ディレクトリを表示するプロジェクト:ライブラリファイルの項目を以下のように設定する
C:\Program Files\cppunit-1.12.0\lib
C:\Program Files\FTGL\win32_vcpp\build
C:\Program Files\freetype-2.3.5\objs
3.C:\Program Files\FTGL\win32_vcpp\のなかのftgl.dswを開く
4.freetype204MT_D.libの数字などを実際のものに書き換えてあげる。
ここでは,ftgl_static_libプロジェクト以外の以下のプロジェクトの
プロパティ-構成プロパティ-リンカ-入力-追加の依存ファイルの の項目を以下のように修正する
Debug
ftgl_demo freetype235MT_D.lib ftgl_static_MT_d.lib
ftgl_demo2 freetype235MT_D.lib ftgl_static_MT_d.lib
ftgl_dll freetype235MT_D.lib
unit_tests freetype235MT_D.lib ftgl_static_MT_d.lib cppunitd_dll.lib
Debug DLL
ftgl_demo freetype235_D.lib ftgl_dynamic_MT_d.lib
ftgl_demo2 freetype235_D.lib ftgl_dynamic_MT_d.lib
ftgl_dll freetype235_D.lib
unit_tests freetype235MT_D.lib ftgl_static_MT_d.lib cppunitd_dll.lib
Debug MT
ftgl_demo freetype235_D.lib ftgl_dynamic_MT_d.lib
ftgl_demo2 freetype235_D.lib ftgl_dynamic_MT_d.lib
ftgl_dll freetype235_D.lib
unit_tests freetype235MT_D.lib ftgl_static_MT_d.lib cppunitd_dll.lib
5.参考HP6のようにプロジェクトプロパティ-リンカ-入力-特定のライブラリを無視 MSVCRTD.lib を追加
6.cppunit-1.12.0\examples\cppunittest\CppUnitTestMain.dsw をビルド
7.C:\Program Files\freetype-2.3.5\builds\win32\visualc\freetype.sln をビルド
glutの設定
1.参考HP5にてglut-3.7.6-bin.zipをダウンロードして展開すると以下のファイルが含まれている
glut.h
glut32.dll
glut32.lib
2.C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include\glのなかに
glut.hをいれる
3.C:\WINDOWS\system32 内にglut32.dllがなければ入れておく
4.C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib 内にglut32.libを同様に入れておく
FTGL使用のためのVisualStudioの設定
1.プロジェクト-プロパティ-リンカ-入力-追加の依存ファイル に
freetype235MT_D.lib ftgl_dynamic_MT_d.libを追加
2.C:\WINDOWS\system32 内に以下のDLLを追加
ftgl_dynamic_MT_d.dll
ftgl_dynamic_MTD.dll
ftgl_dynamic_MTD_d.dll
最終更新:2007年11月22日 15:43