PSP xvi

PSPプログラミングを教えるブログ(本気で頑張る人アクセス大歓迎サイト)

PSP-X.gif

記事の間違いを報告  新アップローダー
記事修正情報 PSPプログラミング資料 自作ゲーム PSP用エミュレータ リンク

公認リンク
公式PSP専科 公式PSVita専科 はじめるPSPSDK PSP EXEC GAME M@STER PSP 猫山のYouTubeチャンネル

TAG
全記事にタグをつけています  http://nekoyama2gillien.blog36.fc2.com/?tag=タグ
PSP PSPプログラミング DXライブラリPortable OSLib ショートプログラム ハローワールド
PSP自作ゲーム PSP自作ソフト エミュレータ ゲームアーカイブス PSP動画
動画 初音ミク ミクミクダンス MMDドラマ ゲーム 魔法少女まどか☆マギカ 侵略!イカ娘
アイドルマスター

このブログについて

このブログでは、非公式のPSPソフト、いわゆる自作ソフト( PSP Homebrew )を作る事を目的とします。

著作権などの こまかい利用規約については、こちらを開いてお読み下さい

このブログについて知りたい方、初めて来訪された方はこちらを開いてお読みください
お問い合わせは 猫山猫宗(nekomune@gmail.com)までどうぞ


当ブログはリンクフリーです。ブログ名は、アルファベットで「PSP xvi」と書いて『ピーエスピー・エクシビ』とお読みください。
相互リンクを希望されるブログ運営者様は、ココで申請して下さい。


このブログで全記事から探し物の方は、ここをクリックして下さい。
http://nekoyama2gillien.blog36.fc2.com/?all

スポンサーサイト 

--/--/--
--. --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[edit]

CM: --
TB: --

page top

2011年05月13日更新

システムソフトウェア6.xx以降では、どうやらUNICODE文字のみのサポートになったらしく、DXライブラリPortableが採用していたシフトJIS文字コードでの描画が出来ません。よって、このブログで配布しているDXライブラリPortable v0.5.7 UTF-8版 を使用して文字描画を行うことを推奨します。


PSPは世界中に販売されている訳で、当然 世界中のフォントが入っています。
PSPが標準で持っている、その内蔵フォントを扱えるライブラリをイントラフォントと呼び、DXライブラリPortable には、そのイントラフォントが組み込まれているので、PSP内蔵フォントで文字列表示(描画)が出来ます。


PSP内蔵フォントで描画するライブラリ = イントラフォント

● フォントサイズを設定する(本家互換)
int SetFontSize( int size );

サイズは、縦のピクセル数値です。
縦=10ピクセルのフォントは、フォントサイズ10です。
縦=24ピクセルのフォントは、フォントサイズ24です。
20100604135322.jpg
↑↑ スクリーンショット prx で撮影した画像(実寸 480x272)


● 文字列描画関数その1
そのままの文字列を描画します。
int DrawString(X座標, Y座標, 文字列, 色コード, エッジの色コード);

[ 使用例 ]
DrawString(150, 100, "Hello", DXP_COLOR_GREEN, 0);

エッジの色コードを有効にするには、フォントのタイプを変更する関数(int ChangeFontType(int FontType);) で DX_FONTTYPE_EDGE を指定しておく必要があります(デフォルト)。
20100604185202.jpg
↑上から順に、エッジの色に 黒色、灰色、黄緑 を適用してみました。
フォントのタイプを「ノーマルフォント」にするとエッジは目立たなくなります。
> ChangeFontType(DX_FONTTYPE_NORMAL);


● 文字列描画関数その2
数値変数の値や文字列変数の文字列なども描画できます。
int DrawFormatString(X座標, Y座標, 色コード, 書式付き文字列,…);

[ 使用例 ]
int  NEDAN=15;
char *STR="パソコン\0x00";
DrawFormatString(100, 120, DXP_COLOR_WHITE, "この%sは%d万円です。",STR ,NEDAN);

この関数の前に、フォントのタイプを「エッジつきフォント」にするとエッジが有効になります。
> ChangeFontType(DX_FONTTYPE_EDGE);
20100604191527.jpg


● フォントのタイプを変更する(フォントにエッジを添えたりする)
int ChangeFontType( int FontType );

フォントのタイプ
・DX_FONTTYPE_NORMAL       : ノーマルフォント
・DX_FONTTYPE_EDGE        : エッジつきフォント
・DX_FONTTYPE_ANTIALIASING    : アンチエイリアスフォント
・DX_FONTTYPE_ANTIALIASING_EDGE : アンチエイリアス&エッジ付きフォント

「エッジ」…… 端(はし)、縁(へり)のこと
「アンチエイリアス」…… ピクセルのギザギザが目立たなく加工する為の処理
DXライブラリPortable では、アンチエイリアス処理は されません。


● イントラフォントのフォントを変更する
int ChangeFont(フォント名, 文字コード);

フォント名の詳細
DXライブラリPortable には font.h で2つだけ定義されています
#define DXP_FONTNAME_JPN  "flash0:/font/jpn0.pgf"
#define DXP_FONTNAME_DEFAULT DXP_FONTNAME_JPN

フォントを全部書き出してみます
flash0:/font/arib.pgf シンボル
flash0:/font/imagefont.bin 何だろう?
flash0:/font/jpn0.pgf  日本語
flash0:/font/gb3s1518.bwfon 中国語
flash0:/font/kr0.pgf  韓国語
flash0:/font/ltn0.pgf  ラテン語 ゴシック体(ニューロダン Pro)
flash0:/font/ltn1.pgf  ラテン語 明朝体(マティス Pro)
flash0:/font/ltn2.pgf  ラテン語 ゴシック体(ニューロダン Pro)斜体
flash0:/font/ltn3.pgf  ラテン語 明朝体(マティス Pro)斜体
flash0:/font/ltn4.pgf  ラテン語 ゴシック体(ニューロダン Pro)太字
flash0:/font/ltn5.pgf  ラテン語 明朝体(マティス Pro)太字
flash0:/font/ltn6.pgf  ラテン語 ゴシック体(ニューロダン Pro)太字斜体
flash0:/font/ltn7.pgf  ラテン語 明朝体(マティス Pro)太字斜体
flash0:/font/ltn8.pgf  ラテン語 ゴシック体(ニューロダン Pro)
flash0:/font/ltn9.pgf  ラテン語 明朝体(マティス Pro)
flash0:/font/ltn10.pgf ラテン語 ゴシック体(ニューロダン Pro)斜体
flash0:/font/ltn11.pgf ラテン語 明朝体(マティス Pro)斜体
flash0:/font/ltn12.pgf ラテン語 ゴシック体(ニューロダン Pro)太字
flash0:/font/ltn13.pgf ラテン語 明朝体(マティス Pro)太字
flash0:/font/ltn14.pgf ラテン語 ゴシック体(ニューロダン Pro)太字斜体
flash0:/font/ltn15.pgf ラテン語 明朝体(マティス Pro)太字斜体

文字コード全種類
INTRAFONT_STRING_ASCII  アスキー
INTRAFONT_STRING_CP437
INTRAFONT_STRING_CP850
INTRAFONT_STRING_CP866
INTRAFONT_STRING_SJIS  シフトJIS
INTRAFONT_STRING_GBK
INTRAFONT_STRING_KOR
INTRAFONT_STRING_BIG5
INTRAFONT_STRING_CP1251
INTRAFONT_STRING_CP1252
INTRAFONT_STRING_UTF8  UTF-8



関連記事
スポンサーサイト

[edit]

CM: 5
TB: 0

page top

この記事に対するコメント

DXライブラリPortableでDrawString関数を使った場合と
intraFontの関数(具体的にはintraFontPrintですが)を使った場合ではどちらが負荷が重いのでしょうか?

直接使ったら軽いのならそうするのですが・・・

それとprxにしてから使うのとではどちらが負荷が掛からないのでしょうか

分かる範囲でお願いします

aja #- | URL | 2010/05/25 20:09 * edit *

ん?

DXライブラリPortable での DrawString(); は 色々前置き処理があって終わりかけの方で
intraFontPrint();発行してるので、前置き処理を自分で行なうとか必要無いのであれば、
ダイレクトに intraFontPrint();使えばいいかと。

prx にするのはどうなんだか。
イントラフォントデータがメインメモリに読み込まれるのでメインメモリが圧迫されて誤動作する可能性とか調べないと。

なんか日本語フォントだけでもメインメモリを2MBくらい圧迫する容量があるらしいです<イントラフォントデータ
日本語って、文字数多いし(英数記号かなカナ漢字)

猫山猫宗 #jjrqi.Ao | URL | 2010/05/26 02:09 * edit *

最近はDXLの解説が多いですね
できればSDKの方の解説もあったりすると汎用性が高くなって
ありがたいんですが…

pppm #rkzq7EIc | URL | 2010/06/06 15:13 * edit *

↑禿同です

Dadrfy #- | URL | 2010/06/08 22:03 * edit *

PSPSDKのAPI 解説なら・・・

「俺のPSP PSPSDKプログラミング」さん
http://yutanmen.web.fc2.com/pspsdkprog/

でやっておられるので、勉強しに行くといいです


DXライブラリPortable の使い方を学んで、ソースを解析して流用してみる、という事をする人向けの、このブログ

猫山 #jjrqi.Ao | URL | 2010/06/08 22:14 * edit *

page top

コメントの投稿

Secret

page top

トラックバック

トラックバックURL
→http://nekoyama2gillien.blog36.fc2.com/tb.php/272-0453bbf1
この記事にトラックバックする(FC2ブログユーザー)

page top


h o m e |


 

2017-04