These pages are written by only Japanese.

Welcom to My Diary.com
最新の日記タイトル一覧カテゴリ別タイトル一覧トップへ戻る〜

おはようございます♪ 現在は5月10日(金)7時31分。 朝御飯のお時間です。


hns - 日記自動生成システム - Version 2.19.5 (色々 Fixed)

先月 2011年08月 来月
1 02 3 4 5 06
07 08 09 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Namazu for hns による簡易全文検索です。
詳細は 詳細指定/ヘルプをご参照下さい。
検索式:

2011年08月02日(火)

PHP OpenGL Forums への返信

PHP OpenGL Forums にメッセージがありました。
ichevc00  2011-08-02 01:07:06 JST
Hi Yoya, could you release windows binaires for php5 ? I'm realy interest in your project.
期待されてる。これはやるっきゃない。
yoya  2011-08-03 01:38:45 JST
Hi Ichevc.
My development and testing platforms are mainly Linux and MacOSX.
I'll trying to build PHP5 Windows DLL from https://github.com/yoya/phpopengl
Please wait a little.
little 言い切っちゃいました。背水の陣です。
PHP4 で動いていた(はずの) config.w32 があるので何とかなると楽観視してます。
Windows は得意でないので茨の道だけど頑張ろう。頑張りどき。何か変われる気がする。

と軽く言ってみたけれど。:

OpenGL のライブラリに手を出すという事は、サポート的にあらゆるビデオカードやそのドライバの癖を知らなければならない。
OpenGL や GLUT 自体もプラットフォームによって微妙に動作が違うらしい。
なので、バッドノウハウを沢山集める必要がある。集めよう。

2011年08月06日(土)

Windows 版 PHP extension の作成に挑戦

現状:

  • --disable-all だと PHP.exe が生成される所まで成功する
    • ext/calender/jewish.c にヘブライ語っぽい文字が混ざってるので、それを変換する必要あり。
  • デフォルトの build だと build の途中で失敗。
  • ライブラリが必要なので、deps-5.3-vc9-x86.7z を c:\php-sdk\php53dev\vc9\x86\deps に展開してみましたが、それだけじゃダメみたい
  • --disable-all --enable-mbstring のように特定の extension を含めてコンパイルする事はできる!
  • でも、以上の方法は static で作られるんだよね。.dll を別にする方法を知りたい。

失敗ログ:

Type 'nmake' to build PHP

c:\php-sdk\php53dev\vc9\x86\php-5.3.6>nmake

Microsoft(R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.

Recreating build dirs
gd.c
<略>
libiconv_a.lib(iconv1.obj) : MSIL .netmodule または /GL を伴ってコンパイルされた
モジュールが見つかりました。/LTCG を使用して再開始してください。リンカーのパフォ
ーマンスを向上させるためには、コマンドラインに /LTCG を追加してください。
   ライブラリ Release_TS\php5ts.lib とオブジェクト Release_TS\php5ts.exp を作成
中
コード生成しています。
コード生成が終了しました。
php_xmlreader.obj : warning LNK4049: ローカルで定義されたシンボル _php_dom_creat
e_object がインポートされました。
php_xmlreader.obj : warning LNK4049: ローカルで定義されたシンボル _dom_node_clas
s_entry がインポートされました。
        rc /n /fo Release_TS\php_gd2.dll.res /d FILE_DESCRIPTION="\"GD imaging\"
" /d FILE_NAME="\"php_gd2.dll\"" /d URL="\"http://www.php.net\"" /d INTERNAL_NAM
E="\"GD extension\"" /d THANKS_GUYS="\"Thanks to Rasmus Lerdorf, Stig Bakken, Ji
m Winstead, Jouni Ahto, Ilia Alshanetsky, Pierre-Alain Joye, Marcus Boerger\"" w
in32\build\template.rc
Microsoft (R) Windows (R) Resource Compiler Version 6.1.7600.16385
Copyright (C) Microsoft Corporation.  All rights reserved.

libiconv_a.lib(iconv1.obj) : MSIL .netmodule または /GL を伴ってコンパイルされた
モジュールが見つかりました。/LTCG を使用して再開始してください。リンカーのパフォ
ーマンスを向上させるためには、コマンドラインに /LTCG を追加してください。
   ライブラリ Release_TS\php_gd2.lib とオブジェクト Release_TS\php_gd2.exp を作
成中
 LINK : warning LNK4098: defaultlib 'LIBCMT' は他のライブラリの使用と競合していま
す。/NODEFAULTLIB:library を使用してください。
gd_gd2.obj : error LNK2001: 外部シンボル "_uncompress" は未解決です。
gd_gd2.obj : error LNK2001: 外部シンボル "_compress" は未解決です。
libpng_a.lib(png.obj) : error LNK2001: 外部シンボル "_crc32" は未解決です。
libpng_a.lib(png.obj) : error LNK2001: 外部シンボル "_inflateReset" は未解決です
。
libpng_a.lib(pngrutil.obj) : error LNK2001: 外部シンボル "_inflateReset" は未解
決です。
libpng_a.lib(pngread.obj) : error LNK2001: 外部シンボル "_inflateInit_" は未解決
です。
libpng_a.lib(pngread.obj) : error LNK2001: 外部シンボル "_inflate" は未解決です
。
libpng_a.lib(pngrutil.obj) : error LNK2001: 外部シンボル "_inflate" は未解決です
。
libpng_a.lib(pngread.obj) : error LNK2001: 外部シンボル "_inflateEnd" は未解決で
す。
libpng_a.lib(pngwrite.obj) : error LNK2001: 外部シンボル "_deflate" は未解決です
。
libpng_a.lib(pngwutil.obj) : error LNK2001: 外部シンボル "_deflate" は未解決です
。
libpng_a.lib(pngwrite.obj) : error LNK2001: 外部シンボル "_deflateEnd" は未解決
です。
libpng_a.lib(pngwutil.obj) : error LNK2001: 外部シンボル "_deflateInit2_" は未解
決です。
libpng_a.lib(pngwutil.obj) : error LNK2001: 外部シンボル "_deflateReset" は未解
決です。
Release_TS\php_gd2.dll : fatal error LNK1120: 外部参照 11 が未解決です。
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 10.0\VC\Bi
n\cl.exe"' : リターン コード '0x2'
Stop.

c:\php-sdk\php53dev\vc9\x86\php-5.3.6>

2011年08月07日(日)

Windows 版 PHP extension の作成に挑戦(2)

これの続き。
zlib extension は組み込めていたので、そっちの config.w32 を見たら、
if (!PHP_ZLIB_SHARED) {
   ADD_DEF_FILE("ext\\zlib\\php_zlib.def");
}
という記述がありました。
php_zlib.def をエディタで開くと関数名が表示されて、 これかなと ext/gd/config.w32 に同じ記述を追加した所、build に成功しました。 *1
これ、本家はどうやってるんだろう…
デフォルトだと static 組み込みになるので、Windows 版 DLL 作成の入口でさえないんですよね。
先は長そうです。

shared のメモ:

Try
configure.js --enable-myextension=shared  
edit: might also be
configure.js --with-myextension=shared 

*1: buildconf し直してもダメで、nmake clean が必要でした

2011年08月09日(火)

SWFEditor 0.46 をリリースしました

0.46 の主目的は JPEG 処理の不具合対処&改善です。

replaceJpegData 不具合修正:

以前から以下のエラーがたまに発生していたのですが、
jpeg_segment_parse: marker1=0x00
replaceJpegData に(偽装ツール等で) EOI の後ろにゴミを付けた JPEG を渡すと入れ替えに失敗する不具合に気付きました。
本来、JPEG は EOI の後を読み捨てるべきですが、SWF 中の JPEG は EOI で終端するとは限らないので JPEG の chunk 分解の処理で無条件に EOI の後を無視出来ない。
というのが、不具合の言い訳です。
  • JPEG の chunk 分解で EOI の後に不正なデータがある場合は読み捨てる。(ちょっと微妙な対応)
  • SWF JPEG の処理で SOS,RST の後ろを並び変える必要はないので、SOS,RST から後ろは EOI やその後ろのゴミも含めて、ひと固まりとして処理する事にしました。
  • 但し、JPEG の最後2byte が EOI 出ないといったあからさまにゴミが付いている場合は、今まで通り EOI まで chunk 切り出しの処理を行います。

getPNGData:

getPNGData で取得した画像が本来より白みがかっていたり、逆に暗い事がありました。 明示的にガンマ値を 1.0 に設定していたのが悪さをしていたので消しました。素直に生きよう。

ちょっぴり(?)高速化:

  • 本来、RST は len フィールドが無く、終端マーカ2byte を scan する必要がありますが、基本的には EOI までひと塊で処理する事にしたので、scan の頻度が減ります。
  • tag から CID を抽出する際に、今までは tag を真面目に parse してましたが、特定の tag に関しては生データから offset で抽出するので、処理が減ります。- bitstream の bit shift width 算出で *8 を <<3 にしたので、もしかしたら速くなるかも。(乗算の方が速かったらゴメンナサイ)

IO_SWF 2.0.9 をリリースしました

ビットマップ系のタグ(Lossless, Jpeg) の parse/dump/build に対応しました。 これが無いと、SWF 中のビットマップの CID を調べられないので。
SWF/Lossless.php や SWF/JPEG.php にある処理のいくつかは、この Tag/〜.php に移動するかもしれません。
これのテスト中に SWF に含まれるデータ要素の組み合わせによって require が出来ずに動作しない事があったので、気付いた分は修正しました。
あと、SWF 情報要素を格納する Class プロパティ名の naming convension を少し変えました。($this->_hoge から $this->_Hoge に) こっちの方が見やすかったので。 少しずつ統一していきます。

これで、4 日分だよ〜。

タイトル一覧
カテゴリ分類
Database
JXTA
Java
XML
awm
bookmark
keyword
memo
news
research
Powered by hns-2.19.5, HyperNikkiSystem Project