C++ ときどき ごはん、わりとてぃーぶれいく☆

USAGI.NETWORKのなかのひとのブログ。主にC++。

NaCl

openSUSE-12.2にnative-client開発環境を入れる

これはリポジトリもへったくれも無いのだけど、https://developers.google.com/native-client/sdk/downloadまあ、native-clientの公式サイトの手順通りにごにょごにょすれば簡単に準備できる。以下、うちの方法。 % cd ~ % mkdir opt % cd opt % wget http:/…

NaCl tips; 開発環境のPepper APIを更新した後のChromiumの.nmf のリフレッシュ、特にglibc版を扱う際の注意

開発環境のPepper APIのバージョンを差し替えてもnewlibなら.nexeが更新されるだけで.nmfは変更が無い。しかし、glibc版を使っている場合にはrunnable-ld.soがリンクする.soのリビジョンがちまちまと変わる(hoge.so.12345がhoge.so.23456になるとか)のに追従…

NaCl tips; Pepper_20とEmbedded Mono

NaClのSDK、Pepper_20のアップデートが来ていた。 % ./naclsdk update pepper_20 とかすると導入できる。少々驚いた事に、どうやらこのPepper_20ではMonoをサポートしたらしい。Monoと言ってもEmbedded Monoらしいのだが、C++に加えてMonoで稼動するマネージ…

NaCl tips; 標準出力でログが取れると言ったな、あれは一般的な自由なOSでの話だ・x・

今回は主にコラムみたいな感じ・w・;そういえば、と思って一般的な不自由なOSであるMicrosoft Windows 8(NT6.2) CP (on VBox)でcmd.exeからchrome.exeをstartしてみたならばやはり標準出力たるコンソールに見えるそれには何も出力が得られなかった。(本題…

NaCl tips; 標準出力でのログ採りが利く様なので

先日NaClでstd::coutするとホストしたウェブブラウザーのコンソールに出力が得られる事を確認しました。JavaScriptへメッセージングしてconsole.logへ出す方法も考えて居たのですが、只でさえ負荷を掛けたくないJavaScriptに大量のデバッグログをメッセージ…

NaCl tips; <fstream>は事実上使えないみたい。ついでにstd::endlについておまけ記載

std::cout/std::cerrを使えるのはわかったけどログをファイル出力したいなと思って一応試してみた。やはりPepper APIのファイルシステムしか使えないらしくstd::cin同様にコンパイルは通るが実行時に何も処理しないっぽい。 std::ofstream o("nacl-test.log"…

NaCl tips; <embed>のパラメーターをpp::Instanceで取得

NaClインスタンスをホストしたHTMLの<embed>のパラメーター群をホストされたNaClインスタンスで得られる。設置する人がニーズに併せて設置に応じたコンフィグレーションを適用できるようにする簡単な方法としては良い選択肢の1つですね。 得られるのはNaClをホスト</embed>…

NaCl tips; 入力イベントを捉える

NaClではPepper APIでキーボードやマウスからの入力の面倒を見てくれる。(JavaScriptで受けてメッセージングで飛ばすなんてダサい事は必要ないよ!やったね!!)ポイントは2つ。 pp::Instance::RequestInputEvents/pp::Instance::RequestFilteringInputEv…

NaCl tips; NaClの標準出力、標準エラー出力はどこに繋がっている?

NaClの標準出力、標準エラー出力はどこに繋がっているのか試したら手っ取り早く把握できた。 C++ source なんという事は無くどっかにstd::coutとstd::cerrを仕込んで試しただけ。 std::cout << "std::cout" << std::endl; std::cerr << "std::cerr\n"; std::…

NaCl tips; glibc使用で.nmfから複数ファイルをロードする様な場合のプログレスイベントの発生について

先の記事の様にnewlib→glibcにして.nmfから複数ファイルをロードする様になったなら、プログレスイベントの発生がnewlibと単一ファイルだった頃では想定外の状況が発生した。 問題 newlib仕様で単一の.nexeをロードすれば良いだけの場合ならば次の様にロード…

NaCl tips; newlib → glibc

NaClのツールチェインはnewlibとglibcを使える。これまではとりあえずnewlibを使ってた。でも、boost::lexical_castを使おうかと思ったらnewlibではどうもロケール周りの実装でコンパイルエラーがぽぽぽぽーんするのでglibcを使う事に。しかしglibcを使う場…

NaCl tips; JavaScriptサイドのNaClモジュール由来のイベント群

NaClモジュールに由来してそのembed要素に発生し得るJavaScriptイベント群について全て実装してみた。備忘録として今回もテスト中のLabyrinthian - Wonder Rabbit Projectのリポジトリにtag 0.0.2を打って措いた。 JS-sideのイベントシステムをすべて実装 · …

NaCl tips; NaClモジュール <==> JavaScript メッセージング

自分自身が作りたいと思っていたゲームのアイデアを実現したり、技術的なテストをオンラインで行うプラットフォームとすべく、 "Labyrinthian - Wonder Rabbit Project" を実装し始めました。実装というかテストしてるだけな感じですけど。 source NaClモジ…

NaCl tips; includeでふんわり把握するSDK同梱のライブラリー群

NaCl pepper_19 SDKのinclude以下はこんな感じ: EGL/ envlock.h langinfo.h reent.h strings.h GLES2/ envz.h libgen.h regdef.h sys/ KHR/ errno.h limits.h regex.h tar.h _ansi.h fastmath.h locale.h rpc/ termios.h _syslist.h fcntl.h machine/ sched.…

食塩と隕石と珈琲と

今考えている事のメモ。NaCl(食塩)とMeteor(隕石)でマイゲーム基盤を作ろうかと言う事。 ゲームのアイデアではなくて基盤技術の概要に関するメモだけど。 NaCl; Natice Client Native Client — Google Developers 概要 ウェブブラウザーでELFバイナリを安全…

NaCl tips; .nmf

NaClの.nmf(nacl-manifesto-file)についてChromium19から怒られてしまいました。 Application Structure - Native Client — Google Developers あたりを読みながら.nmfはJSON形式で記述すればいいのねーはーいって作ったらパースがJSONよりstrictで怒られた…

Native Client // C++へ帰る日。ネイティブの空を遠いウェブの地からも仰ぎ見よう!

一般論としてよく、女子はキラキラしたものが好きだと言われる。たぶん同様に私の場合はマシンネイティブな対象が好きなんだと思う。HTMLとかJavaScriptとか、心の故郷から遠すぎる旅路が長くなると帰りたくなる、C++へ。例えまだ帰り付く街が03だったとして…