1 名前:1 [2006/01/17(火) 21:55:41 ] BREW(Binary Runtime Environment for Wireless)についてのスレ ■テンプレ kintubo.kakiko.com/brew/ ■前スレ 06 pc8.2ch.net/test/read.cgi/tech/1126846736/ ■過去スレ 05 pc8.2ch.net/test/read.cgi/tech/1119056460/ 04 pc8.2ch.net/test/read.cgi/tech/1111028365/ 03 pc5.2ch.net/test/read.cgi/tech/1096006023/ 02 pc5.2ch.net/test/read.cgi/tech/1076511398/ 01 pc2.2ch.net/test/read.cgi/tech/1011078904/ 関連情報 >>2-10
75 名前:デフォルトの名無しさん mailto:sage [2006/01/30(月) 14:30:05 ] >>73 サンプルコード読んでみたけど流れがますます分からなくなった。 コールバックを待つためにいったんリターンするような流れには せず、いきなりインスタンスをReleaseしているっぽい。 LoadResImageにいたってはコールバックの登録がLoadResImageの後だし、 表示のためのコールバックとなっていて読み込み完了には言及されていない。 もともとあっちこっちに間違いがあるようなサンプルだから、そのまま真似する のはまずいかなあ。
76 名前:デフォルトの名無しさん mailto:sage [2006/01/30(月) 15:38:48 ] >>75 話の流れからして、Javaの移植だよな? JPEGのデコードに話が偏ってるようだが、 通信だってバッファある程度取得したらシステムにreturnする。 スレッド処理で楽してた部分は全部BREWじゃ書き直しだろ。 みんな同じ条件で使ってるんだ。 文句ばっか言ってねーで使いこなせyp
77 名前:デフォルトの名無しさん mailto:sage [2006/01/30(月) 19:16:59 ] LoadResImageでコールバック待たないといけないってどこかに書いてある? ガイド探しても見つからん。
78 名前:デフォルトの名無しさん mailto:sage [2006/01/30(月) 19:22:15 ] >>77 APIリファレンスのコメント覧。
79 名前:デフォルトの名無しさん mailto:sage [2006/01/30(月) 20:52:43 ] IDataFolderでファイル選択しようとしてるんだが、 選択ファイル数1でファイルを選択しようとしても選択マークが付かないことがあるんだが、 何か心当たりある人いる? セレクト連打してるとたまに選択マーク付いたりするけど、挙動が結構謎で困ってる。 ちなみに端末はW32SA。
80 名前:79 mailto:sage [2006/01/30(月) 20:54:11 ] 追記。 最大ファイルサイズは0で上限なしにしてる。
81 名前:デフォルトの名無しさん mailto:sage [2006/01/30(月) 23:44:26 ] どっかで重い処理やってるせいでキーが取れなくなってるだけじゃね? タイマーとかコールバックとか
82 名前:73 mailto:sage [2006/01/30(月) 23:47:45 ] >>75 >LoadResImageにいたってはコールバックの登録がLoadResImageの後だし、 >表示のためのコールバックとなっていて読み込み完了には言及されていない コールバックの意味分かってるかい? IIMAGE_Notify()で登録する関数は、読み込みが完了したら呼ばれる関数だ。 だからこの関数が呼ばれるということは読み込みが完了したということであり、 関数の内容が表示処理になってるのも当たり前。 コールバック関数の登録は、読み込みを指示した直後にする。 だからサンプル通りの順番で合ってる。 プログラミングガイドのP200あたりに出てるJPEG読み込みのサンプル見てるだろ? 念のため解説してやるよ。 1.ファイルから読み込む例なのでIFileMgrのインスタンスを作る。 2.jpeg読み込みのためにIImageのインスタンスを作る。 インスタンス生成に失敗したらIFileMgrを解放してリターン。 3.いよいよjpegファイルを読み込む。 読み込みに失敗したらIImageとIFileMgrを解放してリターン。 (↑このIIMAGE_Release()を勘違いしたんじゃないか?) 4.IIMAGE_Notify()でコールバック関数を登録。 ここで登録した関数はファイルの読み込み完了時点で呼ばれる。 ここでreturnとはかかれてないが「−−−−−−(線)」で区切ってあるだろ? ここから別の記述場所だよってこと。 他に何か処理を続けるにしても、いずれreturnしますよ、ということ。 5.一方、コールバック関数は… 読み込みが完了したことによって ここが実行されているので、あとは表示するだけ、と。 説明が下手かもしれないけど、大体わかるだろ?
83 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 08:30:09 ] 結論: サンプルが解りづらい 対策: サンプルの行間を読む
84 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 10:50:43 ] 行間を何ピクセルにしたら読めますか。
85 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 11:09:15 ] >>84 お前さんの解像度じゃ1ピクセルでも読めない
86 名前:79 mailto:sage [2006/01/31(火) 18:21:59 ] >>81 特に何も行ってないんだが…… というか、キー取れなかったらカーソルの移動もできなくなるだろうしなぁ。
87 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 21:30:20 ] おかげでNomadという素晴らしいメーカーの存在をしった。 ありがとう
88 名前:デフォルト名無しさん mailto:sage [2006/02/02(木) 12:16:55 ] 今BREWを勉強してるんですけど、 ボタンを押して次の画面に行く 簡単なサンプルとか無いですかね? カレンダーとか解りにくくて...
89 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 12:49:33 ] >>88 1.HelloWorldのサンプルコードを用意する。 2.キーが押されたら違う文字列を描画するよう改造する。 まずこれやって。
90 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 13:48:37 ] 既にBREWがどうとか以前の問題のような気がする。
91 名前:& ◆D3ra0B2LiQ mailto:sage [2006/02/02(木) 15:01:57 ] >>89 作成しました。次は何をすればよいのでしょう??
92 名前:デフォルトの名無しさん [2006/02/02(木) 17:10:26 ] >>91 ITMediaの入門ページ見れば?
93 名前:89 mailto:sage [2006/02/02(木) 18:58:47 ] >>91 >>89 ができたんなら>>88 が解決したってことじゃん。 「次は何をすればよいのでしょう」と言われても、好きなようにしなよ、としか…
94 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 23:23:27 ] 次は音でも鳴らせば
95 名前:BREW珍兵 mailto:sage [2006/02/02(木) 23:55:01 ] おっとっとでも作るのか
96 名前:デフォルトの名無しさん mailto:sage [2006/02/03(金) 18:24:44 ] >>93 いやね、「まずこれやって」と言われて続きがあるのかなと思いまして... でも、できたんでよかったです。
97 名前:デフォルトの名無しさん mailto:sage [2006/02/04(土) 17:01:11 ] マニュアル世代論
98 名前:デフォルトの名無しさん mailto:sage [2006/02/04(土) 19:02:30 ] そういうのがひねくれると2chで暴れるんだよな
99 名前:デフォルトの名無しさん [2006/02/06(月) 10:34:42 ] BREW3.1端末とAPPLOADERを使用できません。なぜか? (w33SA、w41s)
100 名前:デフォルトの名無しさん mailto:sage [2006/02/06(月) 10:43:44 ] 坊や・・・ApploaderにはBREW3.1に対応していない古いやつもあるって噂さ
101 名前:デフォルトの名無しさん [2006/02/06(月) 10:52:27 ] APPLOADERのバージョン3.0.0です QCOMOEMM。DLlは3.0.0.12.
102 名前:デフォルトの名無しさん mailto:sage [2006/02/06(月) 10:53:56 ] どのバージョンがBREW3.1に必要ですか?
103 名前:デフォルトの名無しさん mailto:sage [2006/02/06(月) 13:37:32 ] 接続時に正しいポートとバージョン選んでるか?
104 名前:デフォルトの名無しさん mailto:sage [2006/02/06(月) 14:24:18 ] >>103 はい COM2は"au W33SA Serial Port"と BREWバージョンは”3.x”
105 名前:デフォルトの名無しさん mailto:sage [2006/02/06(月) 15:11:37 ] デバグ用端末設定してないっつーオチはないよな?
106 名前:デフォルトの名無しさん mailto:sage [2006/02/06(月) 15:32:15 ] >>99-105 そろそろ気をつけた方がいいですよ
107 名前:デフォルトの名無しさん mailto:sage [2006/02/06(月) 15:41:14 ] 守秘義務か。 言いたいことも言えないこんな世の中じゃ
108 名前:デフォルトの名無しさん mailto:sage [2006/02/06(月) 22:33:45 ] いまいちブラウザ起動の処理がうまくいきません。こんな関数作ってみましたがどっか間違ってます?(or認識違ってます?) Brew2.1 void webTo( AEEAPPLI* sys, char *url ) { char buf[1024]; MEMSET( buf,0,sizeof(buf)); if( ( sys->webInfo = (ShimBrowserInfo*)MALLOC(sizeof(ShimBrowserInfo))) != null ) { sys->webInfo->cbSize = sizeof( ShimBrowserInfo ); sys->webInfo->clsid = AEECLSID_XXXX; SPRINTF( sys->webInfo->url, "%s", url ); SPRINTF( buf, "ezurlto:0x%08x",sys->webInfo ); ISHELL_BrowseURL( sys->shell, (const char *)buf ); } else { sys->memory_over = true; } }
109 名前:108 mailto:sage [2006/02/06(月) 22:54:01 ] ちなみに webTo(sys,"www.yhaoo.co.jp/top/ "); みたいにして呼び出してます。 ステップ実行してみたところ、とくに異常もなく実行できるんですがなんにも起動しません。エミュレータ(Brew2.1)ではブラウザのエミュレートできないの? ISHELL_BrowseURLを呼び出す時点で、bufには"ezurlto:0x[sys->webInfoのアドレス]"が入っています。
110 名前:デフォルトの名無しさん mailto:sage [2006/02/06(月) 23:08:37 ] 関数抜けたらバッファが解放されるからじゃねーの? あと、ret_evt にイベントをセットしてないのも怪しい。
111 名前:デフォルトの名無しさん mailto:sage [2006/02/06(月) 23:10:13 ] エミュだとブラウザはでないけどなんか画面が切り替わったような気がする
112 名前:デフォルトの名無しさん [2006/02/06(月) 23:20:59 ] >>110 修正して、bufは保持するようにしてみた。ret_evt=EVT_USERセットしてみましたがやっぱり起動せず。 原因わかんないです。。。。 認識間違ってたら指摘お願いします。 @ISHELL_BrowseURLを呼び出したら、AEEからSUSPENDイベントが呼ばれて、自分はサスペンド Aブラウザを終了させると、呼び出しもとのCLSIDをレジュームする。 B復活。 ホントはドコモみたいにいってらっしゃいで帰ってこなくていいんだけど、無理みたいなんで。
113 名前:デフォルトの名無しさん mailto:sage [2006/02/06(月) 23:24:27 ] >>108 エミュは無反応だよ。 サスペンドが飛んできたかどうかは忘れたけど、 兎も角実機で検証汁
114 名前:108 mailto:sage [2006/02/06(月) 23:30:26 ] >>113 >>エミュは無反応だよ。 それ本当なんすか・・orz うち開発会社だから実機検証めんどいのに・・・
115 名前:デフォルトの名無しさん mailto:sage [2006/02/06(月) 23:59:08 ] エミュが参照するフォルダにアプリと一緒にブラウザのダミーのやつ 入れておけば2.1は切り替わらなかったっけ。 3.1はどうもうまくいったためしないんだけど。
116 名前:名無しBREWたん mailto:sage [2006/02/07(火) 11:48:50 ] >>104 au Win ケーブルは使えないよん。 おとなしく my Sync ケーブルを手に入れるか 互換性のあるケーブルを探すしかない。
117 名前:名無しBREWたん mailto:sage [2006/02/07(火) 11:51:13 ] って、レスしに来たんじゃあなかった罠。 DBGPRINTFをうまく消すやり方だけど、 過去ログだといろんな人がいろいろ言っていたけど、 以下のコードを挟んでみたらとりあえず Logger にはでなくなった。 でも、評価式は残るから、評価式に意味がないときに コンパイラの最適化で消えているかどうかを調べるにはどうすればよいのだろうか。 #undef DBGPRINTF #define DBGPRINTF
118 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 12:02:40 ] >>117 アセンブラ吐き出して確認すればええんじゃない?
119 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 13:29:51 ] DBGPRINTFだってマクロなんだから 自分で同等のマクロ作ればいいと思う。
120 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 14:22:48 ] 空のインライン関数にしたら?
121 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 14:59:45 ] if( cond ){ DBGPRINTF( ... ); } って書いたときに、最適化によって if 文自体が消えるかどうかって話でしょ? 同等のマクロを作るとか、空きのインラインにするってのは違うと思うんだが。
122 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 15:08:43 ] え、みんなワーニング全部消してるの? 親クラスの仮想関数で引数使ってないからって怒られて以来 全部放置してるよ('д')
123 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 16:05:56 ] >>121 の場合、DBGPRINTF が消えると、cond の処理(if 文の処理)自体が 命令数的にも処理時間的にも無駄だから、それを ARM コンパイラが 無意味な cond の命令から消してるかどうかってことだろ? Warning は何の関係もない気がする。
124 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 17:46:44 ] >>121 俺はこうかと思ってた。 デバッグ時 DBGPRINTF("line:%d", __LINE__); ↓ 製品(DBGPRINTFをundefして空マクロに) ("line:%d", __LINE__); するとこんなWarningが。 "c:\BREW_SDK\311463~1.2_J\sdk\examples\HELLOW~1\HELLOW~1.c", line 103: Warning: C2917W: no side effect in void context: '"line:%d"' "c:\BREW_SDK\311463~1.2_J\sdk\examples\HELLOW~1\HELLOW~1.c", line 103: Warning: C2917W: no side effect in void context: '<integer constant>' ここらがバイナリでちゃんと削られてるのか? ってことかと。
125 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 18:13:47 ] >評価式
126 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 18:41:23 ] 最初っから#ifdef _DEBUGでくくってるので問題にならんのだが、 みんなデバッグプリント裸で書いてるの?
127 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 18:52:33 ] いや、ちゃんと服を着て(ry
128 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 20:35:27 ] >>126 俺はデバッグ出力用クラスを作ってるよ。 リリース時は全部中身を空にしてる。
129 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 21:58:48 ] >>126 くつ下ははいてる
130 名前:デフォルトの名無しさん mailto:sage [2006/02/07(火) 23:23:58 ] >>116 マジで使えない? usbケーブルwinでw21saを接続できます。
131 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 02:10:06 ] 消えない背景の上でお絵かきするみたいな機能を作りたいんだけど 複数の画面バッファをレイヤーみたいに重ね合わせるのは可能ですか?
132 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 02:26:39 ] >>131 IBITMAP_CreateCompatibleBitmap() と IDISPLAY_CreateDIBitmap() を知らんのか? それとも重ね合わせる方法がわからないって言ってんのか? アルファブレンドとか加色合成でレイヤーを重ね合わせるのなら、 DDB から DIB を取得して自前で転送が基本だろ。
133 名前:デフォルトの名無しさん [2006/02/08(水) 18:44:13 ] Brew2.1端末で、終話キーを押してそこから終了ってするとなぜか端末がリセットしてしまいます。 端末がリセットするってことはnullにアクセスしてるからだと思うんですけど、エミュではちゃんと終了できるので解放やり残しではないみたいです。 そこでききたいんですけど、EVT_APP_STOP時にタイマーキャンセルして、falseを返してるんですけど、これってダメですかね? どっかの仕様書でtrueを返すとダメって書いてあったんでfalseにしているんですけど。 リセットで思い当たるふしがなくて、どうやって修正したらいいもんか悩んでます。。。お助けを・・・orz
134 名前:デフォルトの名無しさん [2006/02/08(水) 19:50:05 ] STOPはTRUEだめだっけ?
135 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 20:16:19 ] 2.1環境と3.1環境をインスコしたらVCがコンパイル通らなくなりました。 環境変数のBREWDIRが書き換えられるって認識あるんだけど、具体的にどうやったら切り替えできますか? modはmakefileをいろいろ書き換えてなんとかなったんだけど、肝心のVCでコンパイルできん。
136 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 20:19:10 ] >>134 てか true じゃないともっかいアプリが起動した覚えがある。 ついでにいろんなサンプルを見てみたけど、false を返してるものは無かった。
137 名前:133 mailto:sage [2006/02/08(水) 20:31:32 ] >>134 >>136 ホントだ、どこ探してもそんな記述はない。なんでこんな処理してるんだろう。謎だ。 ぜったいにfalse返してねーみたいなイベントあったっけ?
138 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 20:47:22 ] >>133 事前検証チェックシートにいくつか記載がある。 STOPは規制無かったと思うがtrueを返すべきかと。
139 名前:133 mailto:sage [2006/02/08(水) 21:33:32 ] >>138 W21CAで確認したんだけど、「終了」を選んでアプリ一覧に戻らずに待ち受け状態になったけどこれっていいのかな。 とりあえずtrueを返してリセットはしなくなりました。みなさんありがとう!
140 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 21:51:34 ] DBGPRINTFについて、関数型マクロの可変長引数が使えれば #ifdef _DEBUG #define TRACE(...) DBGPRINTF(__VA_ARGS__) #else #define TRACE(...) /* nop */ #endif とスマートにできる。VC2005ExpressとARMコンパイラなら使える。VC6は無理ぽ。VC2003は知らん。 結局どのコンパイラでも使えるのは #ifdef _DEBUG #define TRACE DBGPRINTF #else #define TRACE if(0)DBGPRINTF #endif しかないんだろうか。 ちなみにARMコンパイラで if (0) { // 処理 } というコードをコンパイルすると、ちゃんと最適化されてif(0)も含めてコードが無くなる。 なのでパフォーマンス的には後者のマクロでも問題なし。
141 名前:140 mailto:sage [2006/02/08(水) 22:04:02 ] ついでに>>117 についても調べてみた。 #undef DBGPRINTF #define DBGPRINTF DBGPRINTF("ぬるぽ %s", "がっ"); これで命令も、2つの文字列も最適化で消える。パフォーマンス上の問題は無し。 ただしWARNINGが出るので鬱陶しい。WARNINGが増えると、重要なWARNINGを見逃す確率が 高くなるのでオススメしない。
142 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 22:04:55 ] 最初はDBGPRINTF裸で書いてたから、 とりあえず無理やりこんな感じで解除してる。 今のところはそんなに問題ない感じだが、実際はどうだろう。 #undef DBGPRINTF #define DBGPRINTF if(0)DBGPRINTF
143 名前:142 mailto:sage [2006/02/08(水) 22:08:08 ] if(0)についても書こうかと思ったが、もう140が書いてたね。 書き込み前にリロードしないとこういうこともあるか。
144 名前:140 mailto:sage [2006/02/08(水) 22:15:10 ] さらに色々調べてみた。 if (cond) DBGPRINTF("ぬるぽ %s", "がっ"); これで、DBGPRINTFが有効な場合、条件分岐も含めてコードが生成される(当たり前)。 #undef DBGPRINTF #define DBGPRINTF でDBGPRINTFを無効化している場合、条件分岐も含めてコードは「削除される」。 要するにif文の中身が空な場合はifブロックごと削除されるらしい。 ただし、上記の動作はcondの値が予測できない場合に限る。 boolean cond = FALSE; if (cond){ DBGPRINTF("ぬるぽ"); } この場合、condが常にFALSEであることがコードから判別できるため、DBGPRINTFの定義に よらずifブロックごと削除される模様。 さらに int v = 0; if (TRUE){ v = 10; } といったコードですら、vが以降参照されていない場合ifブロックごと削除されている模様。
145 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 22:47:19 ] ARM コンパイラって結構賢いのね。 >>140 サンクス
146 名前:117 mailto:sage [2006/02/09(木) 09:36:03 ] >>140 勉強になりますた。 自分も逆汗してコード最適化の様子ぐらい見れるようにならんとだめだね。
147 名前:デフォルトの名無しさん mailto:sage [2006/02/09(木) 10:06:36 ] bcc32でbrewコンパイルできるらしいけど、 C++Builderでコンパイルする方法はあるんでつか?
148 名前:デフォルトの名無しさん mailto:sage [2006/02/09(木) 11:18:43 ] >>146 >逆汗してコード最適化の様子ぐらい見れるように やろうと思えば出来るが出来ればやりたくない
149 名前:140 mailto:sage [2006/02/09(木) 17:30:16 ] 書き忘れてましたが上記の検証はデフォルトで生成されるMakefileに -asm -fs を加えて検証しますた。最適化オプションは -Ospace -O2 となっているはずです。 あとお決まりですが、内容は無保証で。元ソースコードによって結果は違ってくるでしょうし。 何より今回は変更箇所を追いやすいようかなり単純なコードでしか検証していないので、 商用レベル(規模)のコードでは実は最適化しきれない部分が出てくるかもしれません。
150 名前:名無しBREWたん mailto:sage [2006/02/09(木) 20:06:54 ] あ〜、コンパイラにニーモニックコード吐かせれば見やすいね。 さすがに実際のアプリだとコード量が多すぎて検証しきれない時もあるが >>140 の検証で無駄なコードが簡単に削除できることが確認できたのは大きい。 さらに #define TRACE if(0) DBGPRINTF と組み合わせればかなり有用っぽい。
151 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 00:09:35 ] きわどい内容承知でちょっとお助け・・。 KDDIのプレミアム課金のエクステンションの利用の仕方がわからない・・。ドキュメントも意味わからんし、質問はCPじゃないのでできない。 とりあえず間違ってるとこあったら教えてください。 ○課金モジュールインスコ ・課金モジュールダウソ/解答する。 ・Brewのバージョン(ウチは2.1)のフォルダの「開発用スタブ」開く。 ・BrewフォルダのExamplesに課金モジュールフォルダコピー(中身はmodとdll) ・Brewフォルダのincに課金モジュール.hをコピー。 ・課金モジュール.mifをBrewフォルダのExamplesにコピー。 ・課金モジュール用のテキストを自分のアプリフォルダにコピー。 さてこれからが問題。 説明テキストに”【注意】 開発アプリケーションは「BREW SDK フォルダ内の\Examples」に配置して下さい。”とあるんだけど、自分のアプリを\Examples」に入れろって意味? とりあえずインスコして、ISHELL_CreateInstanceしたところ3=ECLASSNOTSUPPORTが返る(指定したクラスがサポートされていない場合) AEEがエクステンションを見つけられてないと思うんだけど、上記のインスコ以外でじゃぁどうすればいいのかがわからない。 ちなみに自分のアプリのmifには、課金モジュールのBIDは依存ファイルのとこで追加してあります。特権レベルは念のためWebとネットワーク両方につけた。 すんません、なんかヒントください。。。。
152 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 00:48:11 ] IGRAPHICS_SetDestination()で指定したビットマップへの IGRAPHICSインタフェースでの描画が反映されない・・・ コードおかしいとこありますか? AEELine pLine ; IBitmap* pDst ; // デバイスビットマップ用 IBitmap* pBuffer = NULL; // 互換ビットマップ用 // なにか画面に書く pLine.sx = 0 ; pLine.sy = 0 ; pLine.ex = 480 ; pLine.ey = 960 ; IGRAPHICS_DrawLine(pMe->pIGraphics , &pLine); // デバイスビットマップを取得してみる IDISPLAY_GetDeviceBitmap(pMe->pIDisplay, &pDst) ; // 互換ビットマップを作成 IBITMAP_CreateCompatibleBitmap(pDst, &pBuffer, 240, 320) ; // 互換ビットマップに書き込んでみる IBITMAP_DrawHScanline(pBuffer, 150, 0, 200, IBITMAP_RGBToNative(pDst , 0x00ff00),AEE_RO_COPY) ; // さらにGRAPHICSインスタンスでも書いてみる(ここが反映されてない) IGRAPHICS_SetDestination(pMe->pIGraphics, pBuffer) ; pLine.sx = 100 ; pLine.sy = 100 ; pLine.ex = 300 ; pLine.ey = 600 ; IGRAPHICS_DrawLine(pMe->pIGraphics , &pLine); // 画面デバイスビットマップと互換ビットマップを合成する IBITMAP_BltIn(pDst, 0, 0, 240, 320, pBuffer, 0, 0, AEE_RO_TRANSPARENT) ; // 表示する IDISPLAY_Update(pMe->pIDisplay) ;
153 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 00:53:33 ] >>152 色の指定は?
154 名前:152 mailto:sage [2006/02/10(金) 01:07:00 ] >>153 IGRAPHICS_SetDestination()の後にIGRAPHICS_SetColor()してみたら描画できました,ありがとうございます IGRAPHICSインタフェースは描画に使ってる色をそのまま保持しつづけるんじゃないんですね
155 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 02:19:37 ] >>151 それに限らず、エクステンションなどの連携するアプリ同士はすべてがエミュ レータから見える位置にないとダメ。 つまり、エミュレータがMIFを参照するのにどのフォルダを見に行ってるのか 調べてみれば・・・。
156 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 02:59:01 ] >>151 じぶんのアプレットと同じ階層のとこに入れておくんだ。 examplesフォルダとかややこしくなるから気にすんな こんな感じに複数のアプレットがある状態にする。実機でも同じだよ myapp,mif myapp/myapp.dll myapp/extension.txt extension.mif extension/extension.dll
157 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 04:00:52 ] >>155 >>156 mifはそもそもExamplesに入れたらダメなんですね。 自分の開発場所に課金認証のmifもってきたらISHELL_CreateInstanceできました。 いまやっとドキュメントの意味がわかったんですけど、BrewSDKはExamplesフォルダで開発することを想定して話しをしてるんですね。 ずっと連携(メーラとか)のアプリを作ったことがなかったんでExamplesの存在が謎だったんだけど、なるほどそーいうわけか。。。 こんな夜遅くに本当にありがとう。
158 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 09:34:47 ] 今日は哲也くんだったのか
159 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 10:59:20 ] リーチだっ! つ 検証
160 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 11:10:26 ] 今は3ヵ月後くらいにツモ番が来るのか?
161 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 13:48:35 ] 上様の言葉が真実なら仕様書の審査で2ヶ月待ってますが(´д`)
162 名前:151 mailto:sage [2006/02/10(金) 14:07:47 ] 検証出したら待ちが7000件あるらしいっす。検証実施日は4月末 特急で儲ける気ですかね?キャリアが商売っ気出すとろくなことないんですが・・・。
163 名前:デフォルトの名無しさん [2006/02/10(金) 14:13:53 ] 審査ふくめで開発費用って どのぐらいの費用が掛かるん? 開発する物の規模にもよるだろうけど。
164 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 21:39:13 ] 全盛期の鈴Qなら20億もあれば1本作っただろう。
165 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 19:05:23 ] 端末仕様についてちょっと質問です。 端末にて、押しっぱなしするとリピートされますよね?PRESS/KEY/RELEASEが全部くるもんでリピートの判別できません。 押しっぱなし状態と、1ショットキーを識別する方法はありますでしょうか?ちなみにW21CAなんですけど、他の端末も同じ仕様? それと、キー操作音をONにしておくと、ピコピコなっちゃうんですけど、抑制する機能とかありますか? どっちも仕様で無理っていうなら逃げれるんですが・・。
166 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 19:10:32 ] 端末壊れてね?
167 名前:165 mailto:sage [2006/02/12(日) 19:13:44 ] >>166 たとえばどの点が? リピートされるのがおかしいのか、それともキー操作音がなっちゃうのがおかしいんですか?
168 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 20:22:55 ] 他に持ってないんか?
169 名前:165 mailto:sage [2006/02/12(日) 21:14:30 ] 手元にあるのはW21CA(Brew2.1)、W32H(Brew3.1)の二つ。 W21CAは、上記の通りPRESS/KEY/RELEASEが全部リピートされてきました。そのときのdwParam値も0のまま。 W32Hは、PRESS/KEY/RELEASEがdwParam=0できたあと、KEYがdwParam=64(これリピートフラグ?)でリピートされます。 そこで質問。 Brew2.1はリピートフラグたたずにリピートされる?それともW21CAの固有の問題?
170 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 22:18:41 ] リピートフラグなんてあるのか。 俺は自前でリピート処理作ってるのに
171 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 22:22:08 ] >>169 >RELEASEが全部リピート 放すのがリピートってどういう状況だか理解できん。 あと、 >PRESS/KEY/RELEASE KEYってなんだ?3種類あんの?
172 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 22:52:46 ] EVT_KEY EVT_KEY_PRESS EVT_KEY_RELEASE 3種類あるよ
173 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 22:59:02 ] 3種類あるけど EVT_KEY_PRESS キーが押された EVT_KEY_RELEASE キーが離された EVT_KEY キーに何かあった だったと思われる。
174 名前:165 mailto:sage [2006/02/12(日) 23:04:57 ] >>170 ある >>171 EVT_KEY_PRESS/EVT_KEY/EVT_KEY_RELEASE それぞれ、 押された時/もっかい/離したとき にくる。 Brew3.1ではHandleEventの4番目の引数がtrueでくるとリピートで、押しっぱなしにすると PRESS:0→KEY:0→(リピート動作)KEY:true→KEY:true→・・・(離すと)RELEASE:0 でくる。 Brew2.1(2.0も)では、 PRESS:0→KEY:0→RELEASE:0→(リピート動作)PRESS:0→KEY:0→RELEASE:0→・・・ でくるので判別不能。
175 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 23:26:33 ] >>174 を誰か訳して EVT_KEYがもっかいって、おかしいよな。方言?