HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0615
しまくろねこHSP3Dish(ベータ5)で、font命令でフォントサイズを指定してもAndroid実機でmes命令にサイズが反映されない8解決


しまくろねこ

リンク

2014/6/15(Sun) 22:16:42|NO.62450

こんにちは。

HSP3Dishの開発お疲れ様です。
おにたま(オニオンソフト)のおぼえがきにも報告致しましたが、こちらでも報告させて頂きます。

β5になってAndroid上でmes命令にて日本語表示ができるのを確認しましたが、Android版プログラミングガイドにて標準のfont命令にてフォントサイズが変更可能とありますが、フォントサイズを変更してもAndroid実機上ではフォントの大きさが反映されていないようです。(Windows上では反映されています)
環境は、Nexus7(2012) Android 4.3 です。

;―――――――――――――――― テストソース #include "hsp3dish.as" redraw 0 color 0, 0, 0 : boxf font "", 9 : color 255, 255, 255 : mes "123ABCDあいうえお愛上尾" font "", 12 : color 0, 255, 255 : mes "123ABCDあいうえお愛上尾" font "", 20 : color 255, 0, 255 : mes "123ABCDあいうえお愛上尾" font "", 32 : color 255, 255, 0 : mes "123ABCDあいうえお愛上尾" redraw 1 stop



この記事に返信する


しまくろねこ

リンク

2014/6/22(Sun) 22:57:14|NO.62571

書き込みに少し誤りがありました。
Android実機上で、font命令で指定したフォントサイズには反映されていることはされていますが、一番最初に使用したfont命令のフォントサイズだけが反映され、それ以降のfont命令で指定したフォントサイズは最初に指定した大きさになってしまい反映されていないようです。


;―――――――――――――――― テストソース #include "hsp3dish.as" redraw 0 color 0, 0, 0 : boxf font "", 9 : color 255, 255, 255 : mes "123ABCDあいうえお愛上尾" ; 最初の9ポイントは有効。反映されている。 font "", 12 : color 0, 255, 255 : mes "123ABCDあいうえお愛上尾" ; 指定した大きさに反映されていない。表示されている大きさは9ポイントのまま。 font "", 20 : color 255, 0, 255 : mes "123ABCDあいうえお愛上尾" ; 指定した大きさに反映されていない。表示されている大きさは9ポイントのまま。 font "", 32 : color 255, 255, 0 : mes "123ABCDあいうえお愛上尾" ; 指定した大きさに反映されていない。表示されている大きさは9ポイントのまま。 redraw 1 stop



やたか

リンク

2014/6/23(Mon) 16:49:49|NO.62579

私もandroid4.03 実機でfontサイズ24指定のとき (dish hlper v0.98)
続けて同じ文字列を2行分 mes2行で表示したとき
1行目と2行目のサイズが違いました。fontサイズ20にすると正常でした。

別に投稿してますが、mesが 黒塗りで表示されることもあります。



Tetr@pod

リンク

2014/6/23(Mon) 19:48:54|NO.62582

このソースではどのような表示になりますか?


;―――――――――――――――― テストソース #include "hsp3dish.as" redraw 0 color 0, 0, 0 : boxf font "", 9 : color 255, 255, 255 : mes "123ABCDあいうえお愛上尾A" ; 最初の9ポイントは有効。反映されている。 font "", 12 : color 0, 255, 255 : mes "123ABCDあいうえお愛上尾B" ; 指定した大きさに反映されていない。表示されている大きさは9ポイントのまま。 font "", 20 : color 255, 0, 255 : mes "123ABCDあいうえお愛上尾C" ; 指定した大きさに反映されていない。表示されている大きさは9ポイントのまま。 font "", 32 : color 255, 255, 0 : mes "123ABCDあいうえお愛上尾D" ; 指定した大きさに反映されていない。表示されている大きさは9ポイントのまま。 redraw 1 stop



kanahiron

リンク

2014/6/23(Mon) 20:22:49|NO.62584

Nexus7 2013 android 4.4.4(kitkat)です

しろくまねこさんのSS
http://i.imgur.com/QmzraP3.png

Tetr@podさんのSS
http://i.imgur.com/NnAOj4D.png

これは一体…?



Tetr@pod

リンク

2014/6/23(Mon) 20:55:33|NO.62586

hgtex.cpp 364行目 の GetCacheMesTextureID 関数に問題があるっぽいです。

この関数は以前に同じものをmesで描画していた場合に以前のものを使い回す
といった機能を含んでいるようなのですが、fontのサイズやスタイルの指定
が異なっていても「同じもの」として認識し、使い回してしまうようです。

対処法としては、mesで出力する際に後ろに空白を足していくといったものが
あります。


以下、メモ

hgtex.h #27 + int font_size; + int font_style; hgtex.cpp #394 + t->font_size = font_size; + t->font_style = font_style; #382 - texid = getCache( msg, mycache ); + texid = getCache( msg, mycache, font_size, font_style ); #321 - if ( t->hash == mycache ) { + if ( t->hash == mycache && t->font_size == font_size && t->font_style == font_style ) { #311 - static int getCache( char *msg, short mycache ) + static int getCache( char *msg, short mycache, int font_size, int font_style )



しまくろねこ

リンク

2014/6/23(Mon) 21:38:59|NO.62587

>Tetr@podさん
そこまで調べて下さってありがとうございます。
対処法の通りに後ろにスペースを付け足していった結果、Android実機上でフォントサイズが全て反映されました。
これが仕様ということであれば仕方のないことですが、大きさの異なる同じ文字を表示させたい場合は少し面倒なことになりそうですね。

>やたかさん
>kanahironさん
>Tetr@podさん
書き込みありがとうございました。



やたか

リンク

2014/6/23(Mon) 22:32:23|NO.62589

NO.62582のソースで android4.03 実機の結果は
順々にサイズが大きくなり色も白、青、紫、黄で 正常のようです。
(縦横設定 横長にしています)



おにたま(管理人)

リンク

2014/6/24(Tue) 08:33:28|NO.62595

ご報告ありがとうございます。
同じ文字列はすでに作成済みのテクスチャを再利用するキャッシュ機能による不具合ですね。
次のバージョンでは修正したいと思います。



ONION software Copyright 1997-2023(c) All rights reserved.