でらうま倶楽部

バカってゆうか、ゲームを作る事しか能の無いプログラマの、面白おかしな日々を綴ってみる実験。

2014年03月

OpenGL GLSL環境のフォント描画ならSDL_ttfがいいかも

metrics
コード書いとる??

OpenGLでフォント描画をおこなう場合、FTGLが便利だったのですが、シェーダーに対応させようとするとかなり厳しい…

ので、拙作ういろうではFTGLはあきらめて、ごく簡単な文字表示を自前で実装してました。

でも次回作は日本語フォントで表示したいなぁ!!って思っていたら、先輩から「SDLを利用したSDL_ttfなるフォント描画ライブラリがあるよ」と教えてもらいました。

これ、試してみたらあまりにもあっけなく使えてしまった!! OpenGL GLSL環境ならSDL_ttfオススメ。


以下、導入メモ。

  • FreeTypeを用意
  • SDLを用意
  • SDL_ttfに含まれるSDL_ttf.hとSDL_ttf.cを自前のプロジェクトに追加

初期化と後始末
#include "SDL_ttf.h"

// 初期化
TTF_Init();

// フォントを読み込む
TTF_Font* font = TTF_OpenFont("hoge.ttf", 32);

// フォントを破棄
TTF_CloseFont(font_);

// 後始末
TTF_Quit();

文字列のラスタライズ
// ラスタライズしたビットマップを取得
SDL_Color font_color = { 255, 255, 255 };
SDL_Surface* text_surface = TTF_RenderUTF8_Blended(font, "ほげほげ", font_color);

あとは自前でテクスチャにしてGLSLで描画するだけ〜。素晴らしい!!

VisualStudio2013は
#pragma execution_character_set("utf-8")

で、文字リテラルを強制的にUTF-8にできて、OSXと同じくUTF-8な文字列をソースコードに書けばオッケイ。素晴らしい!!

SDLの初期化を行わなくても問題はなく、SDL_ttf単体で動きます。素晴らしい!!

OSX、Windows、iOSと、環境の違いを気にせず同じコードで文字表示。素晴らしい!!

詳しくはSDL_ttfのチュートリアルを読めばオッケィ。

ただし、現状サロゲートペアには対応していないのでご注意ください!!
例) 𠮷野屋の「𠮷(土に口)」の字が正しく表示されない


ではまた次回!!

C++ で始める OpenAL [iBooks編]

title


コード書いとる??

という訳で拙書「チュートリアル形式で始めるOpenAL」iBooks版も無事、配信が始まっております。Kindle版共々、「さいきんC++でサウンドを扱う事になったんだけど、いい感じにまとまったOpenALの資料を探せす時間がなくて…」という方は是非手に取ってみてください。かさばらないし、無料サンプル版もあるのでちょっと覗いてみるぶんにはほぼノーリスクなのが電子書籍の素晴らしいところ!!
 
KindleやiBooks版の制作工程は過去の記事(⇒1 ⇒2 ⇒3)にまとめてありますので「オレも本を書いてみたい」と思っている方の参考になれば。

iBooks版は日本語で出版しようとすると「日本語のはepub3じゃないとダメですよ〜」と言われるので、とりあえず英語で申請しておくと、審査後に日本語になっているという裏わ…(ry


ではまた次回!!
記事検索
電子書籍発売中

「チュートリアル形式で始めるOpenAL」
サウンド怖くない。C++による8つのチュートリアルで始めるOpenALプログラミング。さああなたも、自作アプリに魅力的な音効を添えてみませんか??
⇒Kindle版 ⇒iBooks版


「iPhoneアプリ『ういろう』のレシピ」
ゲームってどうやって作ってるの?? 拙アプリ『ういろう』の製作過程を本にまとめました。もちろんソースコードつき
⇒Kindle版 ⇒iBooks版


『チュートリアル形式で始めるOpenGL[2D編]』
OpenGL怖くない。C++による16のチュートリアルで始めるOpenGLプログラミング[2D編]。さああなたも、ゲーム作りを始めてみませんか?
⇒Kindle版 ⇒iBooks版
自作ゲーム配信中

『Puzzle & Monarch』
「君主候補となって国作り!! ただし制限時間は90秒。」森を作って道をつないで...あなただけの国を作ってみませんか??
⇒AppStore


『BRICK & TRIP』
咄嗟の判断に、あなたの指先はついてこれるか?! 爽快フリックアクション!! 様々な難関をくぐり抜けて旅の終着点を目指そう!!
⇒AppStore


『ういろう』
名古屋土産ういろうがiPhoneで大活躍?! 白ういろうを守れるのはあなただけ。ひゅーん、ぼよよーん!!
⇒AppStore ⇒LITE版


『こなへん』
ヒマラヤ山脈、大西洋、世界で一番深い湖… それって地球のどこにあるのか知ってるかな?『全方位直感地理クイズ』という新ジャンルに挑戦!あ、それ。地球をくーるくるw
⇒AppStore ⇒LITE版


『GEOSPOT』
ヒマラヤ山脈、大西洋、世界で一番深い湖… それって地球のどこにあるのか知ってるかな?『全方位直感地理クイズ』という新ジャンルに挑戦!あ、それ。地球をくーるくるw
⇒Windows ⇒Mac


『TieGunner』
マウス片手に大宇宙へ飛び立とう!『しっぽシューティング』というジャンルを作って頂きました^^; WinでもMacでも動きます。ソースもあるでよw
⇒Windows ⇒Mac
QRコード
QRコード
  • ライブドアブログ