[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 09:27 / Filesize : 284 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

BREW(Binary Runtime Environment for Wireless) 3



1 名前:デフォルトの名無しさん mailto:sage [04/09/24 15:07:03]
BREW(Binary Runtime Environment for Wireless)についてのスレ

QUALCOMM BREWホーム
www.qualcomm.com/brew/ja/
www.qualcomm.com/brew/

BREW JAPAN .COM|BREW増強計画
www.brewjapan.com/

前スレ
pc5.2ch.net/test/read.cgi/tech/1076511398/
関連情報>>2-18

■過去スレ
02 pc5.2ch.net/test/read.cgi/tech/1076511398/
01 pc2.2ch.net/test/read.cgi/tech/1011078904/


331 名前:デフォルトの名無しさん mailto:sage [04/11/16 21:34:12]
www.k-mb.biz/

332 名前:デフォルトの名無しさん [04/11/16 23:05:46]
>>302
>エンドキー=終話キーで、多分あってると思う。
そうですよねthx。
でも検証のPDFのどっかのページに終話キーと
エンドキーが同じページに書いてあるんでつよ

検証の方法も検証してくださいこのバグヤロー

333 名前:デフォルトの名無しさん mailto:sage [04/11/17 00:32:45]
>>326
MALLOCを生で使うつもりなのか?
やめておくべきじゃないかと。

334 名前:デフォルトの名無しさん mailto:sage [04/11/17 00:38:52]
>>333
ゴムつけないとダメ?

335 名前:デフォルトの名無しさん mailto:sage [04/11/17 00:52:42]
>>333
使わないか?

336 名前:デフォルトの名無しさん mailto:sage [04/11/17 01:25:43]
>>334
ええ。何か(変な中断とか)あった時、(1つ1つ解放する)セキニンとるのは鬱陶しいしー

337 名前:310 mailto:sage [04/11/17 11:16:17]
えーじゃぁゴム付きってどう書くんですか?

338 名前:デフォルトの名無しさん [04/11/17 12:25:19]
>>337
typedef struct _MyData {
 char* hogedata;
 char* foodata;
 ...
} MyDatal;

アロケートした領域は↑みたいな奴(開始時は0で初期化)に覚えておいて、
ヤバイときにまとめて開放する関数を用意しておくようにするだけ。
実行途中で細かくアロケートが必要な場合は、
最初にまとめてMALLOCした中から自力で切り出すのも大アリ。
(実行途中で「メモリが足りません」なんてかっこ悪杉)

339 名前:デフォルトの名無しさん mailto:sage [04/11/17 13:11:57]
男なら生だろ!



340 名前:デフォルトの名無しさん mailto:sage [04/11/17 13:23:18]
>>332
大半が使えないキーコード一覧見ると、「AVK_END」と「AVK_POWER」と別にあるよ。
エミュじゃ終話キー押したら即アプリ終了して、キーイベント発生しなかったけど。
端末仕様書には、この点何も書いていない。

つまるところ、「使うな」と言っているように思えるんだが…
使う必要あるの・・?

341 名前:310 mailto:sage [04/11/17 13:25:16]
大変参考になりました。ありがとうございます。


342 名前:デフォルトの名無しさん mailto:sage [04/11/17 14:15:27]
>>340
プログラミングガイドのわかりにくい場所に書いてなかった?
EVT_KEYのイベントをきっちりかけばいいはず

343 名前:デフォルトの名無しさん mailto:sage [04/11/17 18:42:19]
byte a;

while(flg)
{
  a = MALLOC(1);
  FREE(a);
}

344 名前:デフォルトの名無しさん mailto:sage [04/11/17 18:58:56]
>>343
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J
/     ∩ノ ⊃  ヽ
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /


345 名前:デフォルトの名無しさん mailto:sage [04/11/17 19:30:18]
終話キーのキーコードはアプリに通知されないので
割り当てられたAVK_XXXの値を意識する必要はない。

終話キーを押した場合、アプリにはEVT_APP_STOPイベントとして通知されるので
そこからアプリの終了処理を呼んでおしまい。
従ってEVT_KEYイベントで「終話キーが押された場合は…」といった処理は書かない(書けない)。

蛇足だが終話キーはキーリピートも発生しない。

>>344
パクッと行け!パクッと!

346 名前:344 mailto:sage [04/11/17 20:16:07]
>>343
              \   ∩─ー、
                \/ ● 、_ `ヽ
                / \( ●  ● |つ
                |   X_入__ノ   ミ   a = MALLOC(1); でコンパイルエラー ・・・
                 、 (_/   ノ
                 \___ノ゙
                 / 丶' ⌒ヽ:::
                / ヽ    / /:::
               / /へ ヘ/ /:::
               / \ ヾミ  /|:::
              (__/| \___ノ/:::


347 名前:デフォルトの名無しさん mailto:sage [04/11/17 21:08:42]
>>343
         \   ∩─ー、    ====
           \/ ● 、_ `ヽ   ======
           / \( ●  ● |つ
           |   X_入__ノ   ミ   それと無限ルークマ――
            、 (_/   ノ /⌒l
            /\___ノ゙_/  /  =====
            〈         __ノ  ====
            \ \_    \
             \___)     \   ======   (´⌒
                \   ___ \__  (´⌒;;(´⌒;;
                  \___)___)(´;;⌒  (´⌒;;  ズザザザ

348 名前:デフォルトの名無しさん mailto:sage [04/11/18 18:57:53]
>>345
訂正ありがと。カンチガイしてた。
つーかまたBREWやりたいんだけど、しばらくできそうにないや

349 名前:デフォルトの名無しさん mailto:sage [04/11/19 12:35:15]
BREW2.1で3Dをする場合は何が必要になるのですか?

OpenGL ESは3.0からですよね?
2.1だとI3Dを使うと思うんですが、どこにもstruct _I3Dの実体が見つからないのですが。



350 名前:デフォルトの名無しさん mailto:sage [04/11/19 13:19:43]
ちとすまん、機種依存情報って何処らへんに載ってたっけ?
いつしかExcelの資料見た覚えがあるんだが…手持ちに無いOrz
どうもA5505SAでIDISPLAY_MeasureText()が正常な値を返して来ないっぽいんだが。。。


351 名前:350 mailto:sage [04/11/19 13:42:07]
解決しますた。
どうも全角でも半角の幅が帰ってきてるっぽいんで、
半角のサイズ×2で誤魔化した。
他の機種は大丈夫だったかな… 何か情報あったらお願いします。


352 名前:デフォルトの名無しさん mailto:sage [04/11/19 15:05:34]
>>349
I3Dをサポートする端末は国内に無い
なお、I3Dは"AEEINTERFACE(I3D)"というマクロで定義されている

OpenGL ESは別にBREWのバージョンとは関係なく端末でライブラリを実装すれば
2.1でも動く
しかしいずれにせよエイチアイのMascot CapsuleがBREW上に実装されている以上
これらのライブラリを直接呼ぶ必要性は普通は無い

353 名前:デフォルトの名無しさん mailto:sage [04/11/19 18:42:02]
>>352

つまり、現状で3Dを使ったアプリを作る場合は
Mascot Capsuleを使うしかなようですね。
ありがとうございました。

354 名前:デフォルトの名無しさん mailto:sage [04/11/19 20:00:15]
>>350
A5505SAでIDISPLAY_MeasureText使いまくりのアプリを
作ったけれど、そんなバグはなかったし、検証も通ったよ。
他機種でも同一バイナリで問題なく動いているしなあ。

355 名前:デフォルトの名無しさん mailto:sage [04/11/19 20:32:47]
>>350
俺もA5505SAでIDISPLAY_MeasureText使ってたけど検証は通ったよ。
自分で実機では見てないけど変なとこあったら言われてるだろうし。
違うところに原因があるんじゃないかなぁ・・・。

356 名前:デフォルトの名無しさん mailto:sage [04/11/19 20:37:08]
>>350
ついでだけどA5505SAの機種依存でIDISPLAY_MeasureTextのはなかった。

357 名前:デフォルトの名無しさん mailto:sage [04/11/19 22:55:16]
まさかAECHAR型を渡してないってオチじゃないよな?

358 名前:350 mailto:sage [04/11/19 23:10:22]
あれれ・・? ソース抜粋してみる。

int fontW, fontH;
AECHAR str[] = {'※', '\0'}; //※…全角一文字

fontH = IDISPLAY_GetFontMetrics(a->m_pIDisplay, AEE_FONT_NORMAL, NULL, NULL);
fontW = IDISPLAY_MeasureText(a->m_pIDisplay, AEE_FONT_NORMAL, str);
DBGPRINTF("フォントサイズ:H=%d,W=%d", fontH, fontW);

これだけなんだが、出力結果はH=18、W=9だった・・・

エミュ、A5506T(だったはず)では正常な値が帰ってくるのを確認済み。
なので機種依存かと思ったんだが・・・
プログラミングガイドの何処か見落としたヨカーン


359 名前:350 mailto:sage [04/11/19 23:20:47]
追伸。
strの定義からfontH求めるまで20行ほど省略してるが、この間変数には一切触れてない。
'※' を全角スペースや、他の全角文字も幾つか調べてみたが軒並みアウト。
ついでにIDISPLAY_MeasureTextExも試してみたが、結果は同じく9ピクセルが帰ってきた。

で、半角文字を入れても9ピクセルが帰ってきたんで、それを2倍して対応しますた。
ここで取ったフォントサイズを元にメッセージボックスやら何やら作ってたんで致命的だったのよTT




360 名前:デフォルトの名無しさん mailto:sage [04/11/20 00:39:33]
>AECHAR str[] = {'※', '\0'};

チカラ抜けたよ… ダメに決まってんだろー

361 名前:350 mailto:sage [04/11/20 01:16:37]
何が悪いのかわかってないんで、ダメな理由教えていただけると…


362 名前:デフォルトの名無しさん mailto:sage [04/11/20 03:22:03]
プログラミングガイドやAPIリファレンスで文字列描画について再確認するとともに
この辺を見るのもいいかと。
www.itmedia.co.jp/mobile/0311/14/n_bapp.html

363 名前:350 mailto:sage [04/11/20 13:48:54]
あー、なるほど。
先の初期化方法だと、全角文字はバイト列逆に入力されちゃうのか。
いやむしろAECHARが逆に扱ってるというべきか…
デバッグ出力でも確認できたんで納得した。
S5506Tもエミュもタマタマ動いていただけっぽいな。

ご迷惑おかけしますた。

364 名前:350 mailto:sage [04/11/20 13:50:34]
書き忘れ。
>>360,362
夜遅くまで付き合ってくれてサンクス。
助かったよ〜

365 名前:357=360=362 mailto:sage [04/11/20 14:40:32]
>>350 なにかと面倒なことは多いけどがんばれー

366 名前:デフォルトの名無しさん mailto:sage [04/11/21 03:09:13]
ttp://www.geocities.jp/messenger4nis/

367 名前:デフォルトの名無しさん mailto:sage [04/11/22 11:22:40]
IMEDIA_SetAudioDevice(pMe->m_pMedia, AEE_SOUND_DEVICE_CURRENT)で
EUNSUPPORTEDが帰ってきます。

これを設定できなくても一応実機エミュともに正常っぽく音がなっているので
ほったらかしてるんだけど、まずいですか?

しかしSDKドキュメントのIMEDIA_SetMediaData()と
IMEDIA_SetAudioDevice()の説明って何で同じなんだ・・・


368 名前:デフォルトの名無しさん mailto:sage [04/11/22 12:07:00]
>>367
設定しなくていいんじゃね?

KDDIの事前検証チェックシートには
AEE_SOUND_DEVICE_CURRENTか指定しない状態にしろって
書いてあるっぽい。

369 名前:デフォルトの名無しさん mailto:sage [04/11/22 14:12:35]
>>368
ありがとうございますー。心置きなく無設定にすることにします。




370 名前:デフォルトの名無しさん [04/11/22 15:07:37]


371 名前:デフォルトの名無しさん mailto:sage [04/11/22 17:12:26]
>>363
つーかエンディアンがどうこう言う前に、AECHARの中身の文字コードは端末依存だぞと。
ちゃんとSTREXPAND使って変換しないと危険だと思うが。


372 名前:350 mailto:sage [04/11/22 17:47:00]
>>371
心配かけて申し訳ない。
>>358のソースは文字サイズ取るためだけに使ってるんで、ああいう初期化をしただけ。
なので他の場所ではSTREXPAND()使ってるから問題なし。
今はISHELL_LoadResString()で遊んでます。


373 名前:デフォルトの名無しさん mailto:sage [04/11/24 11:50:52]
>>371
いやそれでも問題だと思うが。
SJISで全角コードを設定してもそれが半角文字になってしまう可能性は否定しきれないだろう。
まあ固定ピッチフォントである保証もないので、突き詰めると色々問題ありな分けだが。

特定の端末でうまく動けば良いということなら止めはしないが、個人的にそういうのは余り好きじゃないな。
#そういう考え方で作られたプログラムを別プラットフォームにコンバージョンするという仕事を何度もやらされたんで


374 名前:350 mailto:sage [04/11/24 15:21:45]
>>373
多分>>372のアンカーミスだよな・・・
対処は351に書いたが、全角のsjisコード書いたなんて言った覚えは無いぞ。
固定ピッチでなくなったケースなんぞ知らん。

てかそういう仕様なんで、こちらとしてはどうしようもない。
別プラットフォームも最初から想定していないから大丈夫だと思う。
そう思いたい ○| ̄|_

375 名前:デフォルトの名無しさん mailto:sage [04/11/24 18:41:39]
武竜を使いこなすには約五年間に渡る苦行を修める必要があります

376 名前:デフォルトの名無しさん mailto:sage [04/11/24 19:09:46]
武竜って生まれてどれくらい経ってるっけ・・?

377 名前:デフォルトの名無しさん mailto:sage [04/11/25 13:28:46]
>>374
ごめ、アンカーミスってたね^^;

>AECHAR str[] = {'※', '\0'};
って普通にWindowsで書いてコンパイルしたらSJISコードが入ると思うが。
で、エンディアンの修正とかやってもコードは変わらないと思う。
普通にchar配列として初期化してSTREXPANDしたほうがいいと思うよ。

>固定ピッチでなくなったケースなんぞ知らん。
現状は存在しないと思うが、将来にわたってそうだという保証は無い。
まあ、おまいさんが今動けばよいというのは良いのだが、想定以上に長いことソースが使われることは良くあること。
で、現状ではOKって考えで作られたソースを後から直す羽目になる人のことも考えといたほうが良いぞというのが漏れのアドバイス。
#結局自分で治す羽目になることだってあるわけだし

つまるところ、サブルーチン一つ作って、常に描画文字列の幅を測定してから適切な位置に描画するようにすれば良いだけだし。
そういうのがスマートなコーディングだと漏れ的には思うが。

まああくまで私見なので、気に入らなければ無視してつかーさい。

378 名前:350 mailto:sage [04/11/25 17:09:33]
言っている事には全く同意なんだが…
AECHAR str[] = {' ', '\0'}; //←半角スペース
こうした。
'※'を表示したいんじゃなくて、全角文字の幅が欲しかっただけなので、
半角で得た幅に2を掛けておしまい。
…とはちゃんと書いてなかったか、説明不足スマソ。
他の箇所は先にも書いたとおりSTREXPAND使ってる。

で、何故この幅が必要かというと、
画面サイズと文字サイズを基準にテキストボックスを作ってるから。
テキストボックスの画像はバラバラのパーツなので、これを基準には出来ない。
画面サイズのみ基準に計算すると半角文字が1文字はみ出る可能性があるので、
それを予防する為の全角文字サイズ確保ってトコなんですわ。

固定ピッチでなくなると、この仕様そのものが使えなくなる。
と言うか半角1文字のズレを許容範囲とするなら、このままでもほぼ問題ない。

画像サイズ基準にして画像差し替えだけで対応できるのがベターなのかもしれないが、
漏れの力ではこれ以上の仕様変更は無理○| ̄|_


関係ないが
>無視してつかーさい
何便?

379 名前:デフォルトの名無しさん [04/11/25 17:59:13]
>>377
諸々わかってて「でも今回のこの仕様ならこれでOK」って感じで例外的なコードを書くのは
構わないんじゃないか?固定ピッチかどうかなんて画面デザインにもはねるんだから、
現状の端末を仮定して当然だと思う。

ただ、>>358 のコードはそういう判断の結果出てきたものでは全くないし(現に正常動作しない)、
これがたまたま動いてしまう環境もあるあたり性質が悪いかも・・・

>>378
依然としてエンディアンに依存するコード・・・でも普通は動くだろうけど。
AECHARの半角のコードに自然じゃないエンディアン使う端末ってあまり想像できないし。
一行 STREXPAND 書くだけでLEでもBEでもShift_JISでもeuc-krでもgb231でも動くのに・・
コードサイズがキツキツとか?極小の中の人かな。



380 名前:350 mailto:sage [04/11/25 19:02:09]
そもそもHelloBrewでああいう初期化がされているので、
諸悪の根源と思っていない
&1バイト文字でエンディアンに依存にするケースが想定できない
&無駄と思えるコードは最小限に抑えたい(趣味)
というのが変更したくない理由。

何かトラブルメーカーみたいなんで、素直にSTREXPANDに変更しときます。
まだちゃんと納得してないけど…
ご迷惑おかけしますた。


381 名前:デフォルトの名無しさん mailto:sage [04/11/25 19:20:30]
>>378
結局半角x2にしたんならそれほど問題はないと思う。
#とはいえ特に問題なければSTREXPANDしといたほうがベターだとは思うが
この部分が分からなかったので「全角コードでのAECHAR初期化は危ない」と言いたかっただけだから。
固定ピッチ依存についてもそういった理由があるのならまあ現状仕方ないかと思う。

>>379
>諸々わかってて…
程度の問題だろうね。
上でも書いたように、半角ASCIIでAECHAR初期化とか固定ピッチ依存とはいえクリティカルでない
のなら漏れもそれで良いと思うよ。
いまやってる仕事で端末性能に依存したゲームのコンバージョンやらされてて、動きが早すぎるとか言われ、
「じゃあ理想FPS教えて」と言っただけで逆ギレされたりしていたんで、端末依存に過敏に反応しちゃったかも。

>一行 STREXPAND 書くだけで…
同感。
ちなみに漏れはC++使ってるんで、文字列クラス作って自動変換されるようにしてる。


382 名前:デフォルトの名無しさん mailto:sage [04/11/25 23:08:47]
BREWを実機に落とせるようにするにはKDDIに認められなきゃならない事はわかったけど
一体いくらかかって、どういった壁があるんでしょうか?

383 名前:デフォルトの名無しさん [04/11/26 01:05:31]
ほしゅ

384 名前:デフォルトの名無しさん [04/11/26 17:55:33]
>>382
ケーブル2000円
ARMコンパイラ15万円
KDDIに企画申請プライスレス

385 名前:デフォルトの名無しさん mailto:sage [04/11/26 18:36:34]
>>382
検証3回目からは20万円(税別)

386 名前:デフォルトの名無しさん mailto:sage [04/11/26 19:11:47]
>>385
検証2回までは無料、3回目でブラックリスト?

387 名前:デフォルトの名無しさん mailto:sage [04/11/26 19:33:32]
提出するバイナリはちゃんとARMコンパイラ買ってコンパイルしないといけないんでしょうか。

388 名前:デフォルトの名無しさん mailto:sage [04/11/26 21:07:57]
>>386
GCCでもおけぃ。
ただしモジュールサイズでかめ気味になるかも。


389 名前:デフォルトの名無しさん mailto:sage [04/11/26 21:08:36]
おぅ388は
>>387でした



390 名前:デフォルトの名無しさん mailto:sage [04/11/26 21:56:49]
>>388
 ありがとうございました。GCCで行きます。

391 名前:デフォルトの名無しさん mailto:sage [04/11/27 20:36:28]
CPとしては検証に落ちることそのものが論外、理由は開発支援サイト見れ。
たとえ発売時期が遅れたとしても、可能な限り完璧にしておこう。

392 名前:デフォルトの名無しさん [04/11/28 02:54:49]
は?

393 名前:デフォルトの名無しさん mailto:sage [04/11/28 12:23:48]
しおりないのはやっぱつらい・・。

394 名前:デフォルトの名無しさん mailto:sage [04/11/29 08:22:47]
エミュレータで起動中にMemory クラプション?クランプション? 
エラーというのが発生してリセットされます。

これってどういう時に起きるエラーなんでしょうか?( ´・ω・`)

395 名前:デフォルトの名無しさん mailto:sage [04/11/29 11:18:54]
>>394
メモリ壊してる(確保していないアドレスに書き込んでる)ってことじゃないかと。
#メッセージは詳しく覚えてないけど


396 名前:デフォルトの名無しさん mailto:sage [04/11/29 12:09:05]
エラーメッセージは忘れたがエミュレータ起動中のエラーならこういう可能性も。
− mifはあるけどdllがない
− mifとdllを置くフォルダ構成が正しくない
− mifとdllでファイル名が違う

397 名前:デフォルトの名無しさん mailto:sage [04/11/29 12:17:52]
>>395-396
ありがとうございました。

>>396
確かに何かを壊しているんじゃないかという雰囲気はしてました( ノω・`)

>>396
そういう場合も発生するエラーなのですか・・・。

今回の場合、アプリにある機能を増やすまでは発生せず、
追加した関数(配列を頻繁に使用している)で発生してるっぽいので、
どうも配列外にはみ出して読み書きしている可能性が多そうです。

398 名前:396 mailto:sage [04/11/29 16:03:51]
>>397
いや、「エミュレータで起動中に」とあったのでメニューからアプリを選んで
起動したとたんに起こるエラーを挙げてみただけ。
>>397を見るとどうやらアプリ「実行中」のエラーのようだから>>396のことは無関係だ。

399 名前:デフォルトの名無しさん mailto:sage [04/11/29 16:42:38]
>>397

>追加した関数(配列を頻繁に使用している)で発生してるっぽいので、

ちなみに、実機ではスタックがかなり小さいのである程度で買いサイズの配列を
スタックに採っているとリセットかかる。
MALOC等でヒープに確保しないとダメ。

ただ、エミュではそんなこともない(普通にWindowsのスタックサイズ制限になる)
ので原因はそこではないと思うが。
原因であろう関数がほぼ特定できているなら(そしてエミュで問題が発生するのなら)
普通にステップ実行すればどこでおかしくなっているかは分かると思うが。




400 名前:デフォルトの名無しさん mailto:sage [04/11/29 18:24:05]
>>399
重ね重ねありがとうございます。

心当たりの関数は、ヒープに確保してあるデータテーブルから
ループで順々にデータの読み書きをしていくものです。

何かの変数が、ある範囲のとき、どこかのテーブル参照で
ループオーバーかデータ取得異常をおこしてる予感が
ひしひししています。

虫の生息域はきっとその関数内なので、地道に虫探しに行ってきます。
テーブル多いよ大きいよ ○| ̄|_

401 名前:デフォルトの名無しさん mailto:sªge [04/12/01 01:10:15]
APIのドキュメントを読んだけど、
スレッドの生成方法がよくわからない。
どうやって生成するのか知ってる人教えてください。

402 名前:デフォルトの名無しさん mailto:sage [04/12/01 01:16:11]
>>401
2.1じゃサポートしてないんじゃなかったっけ?

フォーラムに載ってた気がする。一度確認することを
勧める

403 名前:ロロ mailto:sage [04/12/01 01:42:50]
>>402
2.1 でスレッド使えるよ。undocumented だけど。
2.0 は使えない。

404 名前:デフォルトの名無しさん [04/12/02 12:55:37]
// goto使えるんだね
hage:
goto hage;

405 名前:デフォルトの名無しさん mailto:sage [04/12/02 18:51:14]
JPEGファイルの縮小表示を行いたい場合って、やっぱり

JPEG ファイルを IImage として読込
-> IImage のサイズを調べる
-> 同じサイズの IBitmap(1) を作成
-> IDisplay のレンダリング先を上記 IBitmap(1) に設定
-> IImage_Draw() を使用して IBitmap(1) に描画
-> 目的のサイズの IBitmap(2) を作成
-> IDisplay のレンダリング先を上記 IBitmap(2) に設定
-> IGraphics_StrechBlt() を利用して、上記 IBitmap(2) に描画
-> IDisplay_DetachDestination() とか IBitmap_Release() とかとか

こういうかったるいことをやらなくちゃどーにもならないのだろうか。

406 名前:405 mailto:sage [04/12/02 18:56:27]
う〜ん、ほんのちょっとだけ ITRANSFORM_TransformBltSimple() の方が楽そうだなぁ・・・

407 名前:デフォルトの名無しさん mailto:sage [04/12/02 22:17:28]
>>405-406
IGRAPHICS_StretchBlt()に指定できるビットマップソースはIBitmapやIDIBではなく
WindowsBitmapなのでこの目的には使えません。
# IDISPLAY_BitBlt()はIBitmapやIDIBをとりますが。
なのでITransformを使うしかありません。

ちなみにIGRAPHICS_StretchBlt()はバグありなのでその意味でも使えません。
brewforums.qualcomm.com/ja/showthread.php?s=&threadid=237

408 名前:デフォルトの名無しさん mailto:sage [04/12/03 01:11:56]
Blt周りは特にグッチャングッチャンの設計だな。

409 名前:デフォルトの名無しさん mailto:sage [04/12/03 11:02:54]
エミュレータの出力ウィンドウに表示される
警告の意味がわかりません。
↓の内容なんですがどなたかわかりますか?
アプレット起動したときに表示されます。

WARNING: App Callback Pending(数字)



410 名前:デフォルトの名無しさん [04/12/03 18:39:32]
ファイルシステム残量チェックと
ヒープ残量チェックって関数あります?

411 名前:デフォルトの名無しさん mailto:sage [04/12/03 21:00:57]
IFILEMGR_GetFreeSpace
IHEAP_GetMemStats

412 名前:デフォルトの名無しさん mailto:sage [04/12/04 02:31:40]
JavaアプリをBREWに移植中。描画方法でアドバイスが欲しい。

このJavaアプリは処理ループごとに差分描画で画面を描いている。
BREWでサスペンド→リジュームが起こったとき、差分描画の方法では
サスペンド発生時の画面全体の描画内容が復元できない。

サスペンド発生時に画面内容を、画面と同サイズのビットマップに描画、
リジューム時にそれを画面に描画し直せば元通り…と思って試したら
サスペンドに入るときの砂時計マークまで描画されててダメ。
(サスペンドが発生すると、まず端末側が砂時計を描画して、それから
 アプリにサスペンドが通知される模様)

サスペンド時の画面を復帰させるのに、皆さんはどうやってますか?
1.差分描画しないで常に画面全体を描画している。
2.オフスクリーン(画面サイズのビットマップ)を用意してそこへ
 描画(差分描画)、それ全体を画面(デバイスビットマップ)へ転送。
 …これだと文字を書くのにどうするか?
3.差分描画を基本とするが、リジューム時はシーンごとに個別対応で
 画面全体を描画し、その後また差分描画を続行する。
4.その他。

413 名前:デフォルトの名無しさん mailto:sage [04/12/04 03:24:58]
>>410
ヘルプを読むと、GETFSFREE()、GETRAMFREE() も使えるのかも?
BREW 2.1 以降だし、使ったことないけど。

>>412
1、問題外。
2、IDISPLAY_SetDestination() を使用すれば文字も描画できるのでは?
3、シーン毎っちゅーのが分からんが、漏れならこっちでやるなあ。
4、砂時計が描画される部分だけ描画時毎に保存して...(w

414 名前:412 mailto:sage [04/12/04 07:52:31]
>>413
>2、IDISPLAY_SetDestination() を使用すれば文字も描画できるのでは?
それはそうなのだが、デバイスビットマップを入れ替えるとクリッピングや透過色の指定が
クリアされるので、それらを使っていると面倒なことになる。
また、タイミング悪く、入れ替えてる間に砂時計が描かれてしまうこともあり得る。<考え過ぎか?
何とかIDISPLAY_SetDestination()を使わない方法を考えているがうまくいかなくて…

>3、シーン毎っちゅーのが分からんが
ステージ開始したとき、クリアしたとき、ゲームオーバーになったとき、など、
描画内容が大きく変わる区切りを指す。説明不足スマン。
これは確かな方法だと思うが、上記シーンごとに画面復元の処理を入れていくことになり、
作業量が増えるのでちょっと躊躇ってる。<ヨワッ でもやはりこの方法なのかな。

>4、砂時計が描画される部分だけ描画時毎に保存して
砂時計が描かれてからEVT_APP_SUSPENDが通知されるので、そのときには
砂時計が描かれた状態を保存してしまっていて結局ダメで…

413さんthx. 他の方のアドバイスもいただきたいです。

415 名前:デフォルトの名無しさん mailto:sage [04/12/04 15:22:45]
>>412
漏れは2の方法で復帰させてる。てか1と2の複合か。
(ゲームじゃないが、画面全体が頻繁にスクロールが発生するアプリでスクロール分を差分描画)

1.IDISPLAY_SetDestination()でオフスクリーンを指定
2.クリッピング、描画など
3.IDISPLAY_SetDestination()でディスプレイを指定
4.オフスクリーンをディスプレイに描画
5.IDISPLAY_UpdateEx()で画面更新

の繰り返しで。
砂時計はディスプレイに描画されるので、オフスクリーンの方は大丈夫。
結局毎回画面全体を更新している訳だけど、DDBの上書きだけなら結構な速度が出るよ。
S5505SAで約20フレーム確認。それ以上は試す必要なかったんで計ってない。スマソ


416 名前:413 mailto:sage [04/12/04 16:46:29]
>>414
4. は、412 氏が上手くできなかった SUSPEND 時保存の改善案。

(1) アプリ側の描画時に砂時計がでるはずの部分だけ保存
(2) SUSPEND 時で全画面保存
(3) RESUME 時に (2) で保存したものを描画
(4) 同じく RESUME で (1) で保存したものを (3) に上書き

問題は、各機種毎に砂時計の出る位置やサイズが違う気がする
ってことかなあ?…速度的には悪くないと思うけど。

417 名前:412 mailto:sage [04/12/04 19:10:18]
415氏、416=413氏、具体的な内容で参考になりました。助かります。
>>413の2番をふまえて>>415の方向で考えてみます。

変に考えが凝り固まっててオレの頭がサスペンド中ってオチなのか…

418 名前:デフォルトの名無しさん [04/12/05 21:55:19]
透過処理とかの絡みでDDBitmapを直接弄ってるけど遅い。
asmで書き直してる人とか多い?

419 名前:デフォルトの名無しさん [04/12/06 12:29:56]
みんな頑張れよ

ttp://next.rikunabi.com/tech/docs/ct_s03100.jsp?p=lw1061&f=impress&__m=1



420 名前:デフォルトの名無しさん mailto:sage [04/12/06 17:46:23]
EVT_APP_NO_SLEEPから復帰するタイミングを見たいときは
何をチェックしたらいいんでしょうか?


EVT_APP_RESUMEやEVT_APP_STARTではないみたいだし・・・。

421 名前:デフォルトの名無しさん [04/12/07 18:42:33]
サウンドでspfファイル使ってる人いる〜?

422 名前:デフォルトの名無しさん [04/12/07 18:51:10]
>>421

てか、それしかサウンド使ったことない・・・。

423 名前:デフォルトの名無しさん [04/12/07 20:42:13]
qcp使ってる

424 名前:デフォルトの名無しさん mailto:sage [04/12/07 20:53:17]
移植性とか考えると音はやっぱSPFの四音同時が妥当なのかね。
日本の端末じゃMIDI+QCP×4とか出来ないようだし…。

どうやってますよ?オマイラ

425 名前:デフォルトの名無しさん [04/12/07 22:56:12]
着うたフル

426 名前:デフォルトの名無しさん [04/12/08 10:18:13]
>>425
BREW2.0端末で200kb
2.1で300kbじゃなかったか?

427 名前:デフォルトの名無しさん mailto:sage [04/12/08 20:06:50]
エミュレータでは問題なく動いてるアプリが
実機でいきなりMemory Accessで落ちるんですけど
原因って何でしょう?

処理を全部コメントにしてreturnしていても
場所によってエラーになるんですが。。

428 名前:デフォルトの名無しさん mailto:sage [04/12/08 22:31:22]
>>427
奇数番地をまたいでのwardアクセスとかじゃないか?

429 名前:デフォルトの名無しさん [04/12/08 23:35:19]
タイムクライシスで半透明やってるんだけどどうやってんですか!



430 名前:デフォルトの名無しさん mailto:sage [04/12/08 23:40:02]
>>427
ありがちなのが、ヒープ足りなくなってる状態でMALLOCとかが失敗しているのに
エラーチェックしないで書き込んでるとか、ポインタ操作をミスってるとか。
あと、実機用はmakefileで、すべての依存関係が記述できているとは限らないか
らクリーンしてみると挙動が変わったりすることもある。

ちなみに実機でしか再現しないリセット系エラーを追及するには、ログをファイ
ルに吐くような手を使わないとダメです。
#DBGPRINTFなんかはバッファされるのであてにならない

431 名前:デフォルトの名無しさん [04/12/09 01:12:14]
IShell_CreateInstance()関数を使ってINetMgrのインスタンスのインスタンス
を生成しても戻り値がSUCCESSとならないんですが、どんな原因が考えられます
か?コンパイルはできます。ちなみに
IShell_CreateInstance(pMe->m_applet.m_pIShell, AEECLSID_NET, (void**) &app->pINetMgr)
という感じにしてます。











[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<284KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef