BREW(Binary Runtime Environment for Wireless) 3
2 :
デフォルトの名無しさん :04/09/24 15:24:38
4 :
デフォルトの名無しさん :04/09/24 21:11:24
Q. BREWアプリを自作して自分の携帯に入れたいのですが? A. 素人は作ることは可能ですが端末に転送することはできません あきらめるかCPなどのプロになりましょう Q. DLLにコンパイルしたものを端末に転送したのですが実行できません A. ARMの形式でコンパイルする必要があります あきらめるかARMにコンパイルできるようがんばりましょう
Q. BREWて正直うんこなんですが… A. そうかもしれません しかし手段・道具によらず目的を達成するのがプロというものです がんばりましょう Q. _| ̄|○ …… A. (つДT)つ旦
7 :
デフォルトの名無しさん :04/09/25 12:09:22
ぶりゅっ
シンビアンのほうが良くない?
シンビアンはウイルスあるよ
('A`)1の過去ログ持ってる人いますか?
ARMってはじめてだったけど、整数除算命令ないのね・・・orz アライメントは良いとしても他に気をつける所ありますか?
アップしました。 ぶりゅぶりゅ過去ログです。
17 :
デフォルトの名無しさん :04/09/26 02:40:08
SDKダウンロードできねぇす。うえーん
技術討論スレに話題が上がってたので質問したいのですが BREWは携帯電話専用のAPIなんですか? それとも携帯端末汎用?
>>19 一応、携帯専用APIではなかったはず・・・
Plamでなかったっけ?(計画だけか?)
21 :
デフォルトの名無しさん :04/09/27 22:34:55
>>18 FAQあったんだ。。。過去ログ見られないけど、サンキューです!!
Firefox使ってたよ。。。
武龍3.0てどんな感じですか?
23 :
デフォルトの名無しさん :04/09/29 00:25:17
おっ かっこいいな>武龍
命名:武龍
よみがな:むりゅう 無理ゆう
お後がよろしいようで
虎BREW
28 :
デフォルトの名無しさん :04/09/29 17:39:46
質問です。 IDISPLAY_DrawTextにて文字描画を行っております。 文字の部分に枠ができてしまうのですが 解決方法はないのでしょうか? 透過というか、背景に文字が直接描かれるようにしたいのです。 IDISPLAY_DrawText(app->a.m_pIDisplay, AEE_FONT_NORMAL, // 太字のフォント wstr, -1, 0, 204, NULL, IDF_ALIGN_CENTER); 現在はこのような感じです。 よろしくおねがいします。
29 :
デフォルトの名無しさん :04/09/29 17:40:38
フォントのコメントは無視してください。ミスッタ!
>>28 flagにIDF_TEXT_TRANSPARENTは?
ぐあ!できました!
>>30 様感謝!
ちなみに、フラグを || で繋げていたため
「うごかねー」と、思っていたのかもしれません。。。
ありがとうございました。
ついでといってはなんなのですが、もうひとつ。 3バイトの文字。たとえば"-あ"をAECHARにするには どうしたらいいのでしょう。
STRTOWSTR() じゃない方のワイド文字列変換 これ使うと認証通らない
34 :
デフォルトの名無しさん :04/09/29 19:12:27
QRコード解析について質問です。 開発環境 SDK: 2.1.1 端末: W21S Extension(QRDEC3GV)使用 ICameraで取得した画像からQRコードの解析を行いたいのですが、どうしてもうまくいきません。 撮影した画像をファイルから読み込んで解析する場合、撮影した画像ファイルの深度を16bitに変換して 読み込む必要があるそうなのですが、16bitへの変換がうまくいきません。 また、カメラのコールバック関数内で取得したIBitmapインスタンスから直接解析を行う方法も試してみたのですが、 QRDEC_IMAGE等の構造体に格納する値がわからず、IQRDEC3GV_QrdecDecodeSymbolSetParametersで失敗してしまいます。 画像を撮影してファイルから解析を行う方法と、プレビュー画像を直接解析する方法のどちらでも構わないので、 カメラからの画像を解析する方法をご教授ください。 ちなみに、Extensionのサンプルについてきた画像からの解析は成功しています。
35 :
デフォルトの名無しさん :04/09/29 19:14:42
QRコード解析について質問です。 開発環境 SDK: 2.1.1 端末: W21S Extension(QRDEC3GV)使用 ICameraで取得した画像からQRコードの解析を行いたいのですが、どうしてもうまくいきません。 撮影した画像をファイルから読み込んで解析する場合、撮影した画像ファイルの深度を16bitに変換して 読み込む必要があるそうなのですが、16bitへの変換がうまくいきません。 また、カメラのコールバック関数内で取得したIBitmapインスタンスから直接解析を行う方法も試してみたのですが、 QRDEC_IMAGE等の構造体に格納する値がわからず、IQRDEC3GV_QrdecDecodeSymbolSetParametersで失敗してしまいます。 画像を撮影してファイルから解析を行う方法と、プレビュー画像を直接解析する方法のどちらでも構わないので、 カメラからの画像を解析する方法をご教授ください。 ちなみに、Extensionのサンプルについてきた画像からの解析は成功しています。
STREXPANDでできました。 STRTOWSTRは使わない方がいいのですね。ありがとうございました。
カメラの撮影設定がQRコード用になっていますか? ズームに0x7fffffffを設定してやれば各端末の最適な設定に変更されるはずです 画像取り込みをそれでおこなえば良いと思います 画像解析はメモリを直接参照すr
ICAMERA_SetZoom( pMe->Camera, (int32)0x7fffffff ); という感じで設定しています。 撮影した画像とサンプルについてきた画像をテキストエディタで開いてみたのですが、 サンプルの画像は「BM6」で始まっているのに対し、撮影した画像は最初から文字化けしていました。 従って、撮影した画像のエンコード方法がまずいのではないかと考えています。 ちなみに、ICAMERA_SetVideoEncodeで、AEECLSID_WINBMPやAEECLSID_NATIVEBMPが設定できなかったので、 AEECLSID_JPEGを設定しています。 一応、関係ありそうな部分のコードを↓に載せます。
#define QR_MAX_FILE_BUF300 #defineQR_MAX_DECODE_BUFFER_SIZE2062 // アプリケーション構造体のQRコードに関する部分 ------------ charQR_FileName[64]; unsigned char*QR_psDecodedText;// デコード結果バッファ unsigned char*QR_psFormatText;// デコード結果フォーマットバッファ longQR_lBufferSize;// デコード結果文字列サイズ // QR関係プロトタイプ static void Conv24BGRto16RGB_UpsideDownEx( IFile * pFile, unsigned char *img16rgb, long hs, long vs, long lImageSize); static void Conv8BGRto16RGB_UpsideDown( unsigned char *img8bgr, unsigned char *img16rgb, long hs, long vs); intQR_GetErr(QRDEC_HRESULT lErr); static boolean QR_DecodeSymbol( IApplet* pi );// サンプルからコピペした解析用関数 static voidQR_DecodeFromBmp( IApplet* pi, IBitmap* pBmp );// IBitmapから直接解析する為の関数
/*------------------------------------------------------------------------------- HelloWorld2_HandleEvent ハンドルイベント ------------------------------------------------------------------------------- */ static boolean HelloWorld2_HandleEvent(AEEApplet * pi, AEEEvent eCode, uint16 wParam, uint32 dwParam) { CHelloWorld2 * pMe = (CHelloWorld2*)pi; AECHAR szBuf[30] = {0}; int ret; // キーイベント case EVT_KEY: DBGPRINTF("### APP_EVT_KEY ###"); switch( wParam ){ // 選択キー押下 case AVK_SELECT: DBGPRINTF("### AVK_SELECT ###"); // カメラ:スナップショット if( pMe->Camera && pMe->m_DispState == STATE_PICTURE ){ ret = ICAMERA_RecordSnapshot( pMe->Camera ); return FALSE; } return FALSE; }
/*------------------------------------------------------------------------------- 画像撮影用関数(mode=TRUE:QRモード、FALSE:通常モード) ------------------------------------------------------------------------------- */ void GetPicture( IApplet* pi, boolean mode ){ CHelloWorld2* pMe = (CHelloWorld2*)pi; intret; AEESize*pList; AEESizeList; pMe->m_DispState = STATE_PICTURE; IDISPLAY_ClearScreen (pMe->a.m_pIDisplay); pMe->Camera = NULL; // ICameraインスタンス生成 if( (ret = ISHELL_CreateInstance(pMe->m_pIShell,AEECLSID_CAMERA,(void **)&pMe->Camera) ) != SUCCESS ){ return; } // コールバック設定 if( ICAMERA_RegisterNotify(pMe->Camera,(PFNCAMERANOTIFY)Camera_CB,(void*)pMe) != SUCCESS ){ return; } pList = (AEESize *)CAM_MODE_PREVIEW;// OK //サイズリストの取得 pMe->Camera_pbRange = TRUE; ret = ICAMERA_GetDisplaySizeList(pMe->Camera, &pList, &pMe->Camera_pbRange); if( ret != SUCCESS ){ return; } List.cx = pList[0].cx;List.cy = pList[0].cy; // 諸設定 ret = ICAMERA_SetDisplaySize(pMe->Camera, &List); if( ret != SUCCESS ){ return; }
// FPS設定 pMe->Camera_dwFPS = (int32 *)CAM_MODE_PREVIEW; pMe->Camera_pbRange = TRUE; ret = ICAMERA_GetParm(pMe->Camera, CAM_PARM_FPS_LIST, (int32 *)&pMe->Camera_dwFPS, (int32 *)&pMe->Camera_pbRange); ret = ICAMERA_SetFramesPerSecond( pMe->Camera, *pMe->Camera_dwFPS); // QRモード指定 if( mode ){ ret = ICAMERA_SetZoom( pMe->Camera, (int32)0x7fffffff );// QRモード指定 } IDISPLAY_SetColor(pMe->a.m_pIDisplay, CLR_USER_BACKGROUND,MAKE_RGB(255,255,255)); IDISPLAY_SetColor(pMe->a.m_pIDisplay, CLR_SYS_ITEM,MAKE_RGB(255,255,255)); // メディアデータ設定 pMe->Camera_Media.clsData= MMD_FILE_NAME; pMe->Camera_Media.pData= "qr.bmp"; STRCPY(pMe->QR_FileName,"qr.bmp"); ret = ICAMERA_SetMediaData( pMe->Camera, &pMe->Camera_Media, "image/bitmap" );
// サイズ設定 ret = ICAMERA_SetSize(pMe->Camera, &List); if( ret != SUCCESS ){ return; } //IFileMgr インタフェースオブジェクトのインスタンス化 ret = ISHELL_CreateInstance(pMe->m_pIShell, AEECLSID_FILEMGR,(void**)&pMe->Camera_FileMgr); if( ret != SUCCESS ){ return; } //ファイルを作成 IFILEMGR_Remove(pMe->Camera_FileMgr, "qr.bmp"); if((pMe->Camera_File = IFILEMGR_OpenFile(pMe->Camera_FileMgr,"qr.bmp", _OFM_CREATE)) == NULL){ return; } //ファイルをクローズ IFILE_Release( pMe->Camera_File ) ; // エンコード設定 ret = ICAMERA_SetVideoEncode(pMe->Camera, AEECLSID_JPEG, NULL);// ○ // プレビュースタート ret = ICAMERA_Preview(pMe->Camera); if( ret != SUCCESS ){ return; } }
/*------------------------------------------------------------------------------- Camera_CB カメラコールバック ------------------------------------------------------------------------------- */ void Camera_CB( void* pUser, AEECameraNotify* pNotify ){ CHelloWorld2*pMe = (CHelloWorld2*)pUser; IBitmap*pFrame; AEEBitmapInfo bi; int ret = SUCCESS; if( !pMe || !pNotify ){ return; } switch( pNotify->nStatus ){ case CAM_STATUS_USER_BASE:DBGPRINTF("### Camera_CB:USER_BASE ###");break; case CAM_STATUS_FAIL:DBGPRINTF("### Camera_CB:FAIL ###");break; case CAM_STATUS_PAUSE:DBGPRINTF("### Camera_CB:PAUSE ###");break; case CAM_STATUS_RESUME:DBGPRINTF("### Camera_CB:RESUME ###");break; case CAM_STATUS_DATA_IO_DELAY:DBGPRINTF("### Camera_CB:DATA_IO_DELAY ###");break; case CAM_STATUS_SPACE_WARNING:DBGPRINTF("### Camera_CB:SPACE_WARNING ###");break; case CAM_STATUS_START:// プレビュー開始 DBGPRINTF("### Camera_CB:START ###"); break;
case CAM_STATUS_FRAME: { // ▼040924▼ AEEImageInfo*info=NULL; boolean*retbool=NULL; //IDIB*pIDIB; // ▲040924▲ DBGPRINTF("### Camera_CB:FRAME ###"); // フレーム取得 ret = ICAMERA_GetFrame( pMe->Camera, &pFrame ); //DBGPRINTF("### Camera_CB:GetFrame:%d ###",ret); // ビットマップ情報を取得 IBITMAP_GetInfo( pFrame, &bi, sizeof(bi)); //DBGPRINTF("### Camera_CB:BitmapSize:%d ###",sizeof(bi)); DBGPRINTF("### IBITMAP:ImageInfo.nDepth = %d ###",bi.nDepth); // 取得フレームから直接解析するバージョン QR_DecodeFromBmp( (IApplet*)pMe, pFrame );
//CONVERTBMP( (void*)pFrame, info, retbool ); //DBGPRINTF("### info.nColors = %d ###",info->nColors); //IDIB を作成し、ポインタを取得 /*ret = IBITMAP_QueryInterface( pFrame, AEECLSID_DIB, (void**)&pIDIB ); if( ret != SUCCESS ){ DBGPRINTF("● IBITMAP:QueryInterface:FAILED ●"); } pIDIB->nDepth = 16; //IBITMAP を開放 IBITMAP_Release( pFrame ); //IDIB をIBITMAP に変換(キャストなので開放不要) pFrame = IDIB_TO_IBITMAP(pIDIB); */ //ファイルを作成 /*IFILEMGR_Remove(pMe->Camera_FileMgr, "qr.bmp"); if((pMe->Camera_File = IFILEMGR_OpenFile(pMe->Camera_FileMgr,"qr.bmp", _OFM_CREATE)) == NULL){ DBGPRINTF("● Camera_CB:CreateFile(bmp):FAILED ●"); return; } IFILE_Write( pMe->Camera_File, (void*)pFrame, sizeof(bi)); //ファイルをクローズ IFILE_Release( pMe->Camera_File ) ; QR_DecodeSymbol( (IApplet*)pMe ); */IBITMAP_Release(pFrame); break; }
// 結構多いので一部省略します。 /*------------------------------------------------------------------------------- QR_DecodeSymbol QRコード・バーコードデコード処理 デコード対象:"pMe->QR_FileName"で指定された画像ファイル(例:"images/qr1.bmp") デコード結果文字列は"pMe->QR_psDecodedText"に格納 ------------------------------------------------------------------------------- */ static boolean QR_DecodeSymbol( IApplet* pi ){ CHelloWorld2* pMe = (CHelloWorld2*)pi; IBitmap*pScreen = NULL; IDIB*pDibScreen = NULL; IFile*pFile; FileInfofi; IFileMgr*pFileMgr; IQrdec3GV*pQrdec = NULL; QRDEC_IMAGEgImage; QRDEC_SYMBOL_INFOgSymbol; QRDEC_STRING_INFOsInfo; QRDEC_HRESULTrc; longlImageSize = 0; void*pWorkarea = NULL; unsigned longlMemoryVecLen; int16nLoop = 0; int32ret32; unsigned char*pimg24 = NULL, *pimg16 = NULL; BITMAPFILEHEADERbmFh; BITMAPINFOHEADERbmIh; int ret;
{ DBGPRINTF("### QR_DecodeSymbol:Start ###"); // ファイル参照 ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_FILEMGR, (void **)&pFileMgr); if(pFileMgr){ pFile = IFILEMGR_OpenFile(pFileMgr, pMe->QR_FileName, _OFM_READ); if(pFile){ // ビットマップヘッダの読み込み ret32 = IFILE_Read(pFile, (void *)&bmFh, 14); ret32 = IFILE_Read(pFile, (void *)&bmIh, sizeof(BITMAPINFOHEADER)); lImageSize = (bmIh.biHeight * bmIh.biWidth * bmIh.biBitCount / 8); }else{ return 1; } // ビットマップフレームデータの取得→16ビットデータをExtensionに渡すための前処理 if(bmIh.biBitCount == 24){ // 24ビット・ビットマップの場合 pimg16 = (unsigned char*)MALLOC(bmIh.biWidth * bmIh.biHeight * 2 ); if( !pimg16 ){ return 2; } Conv24BGRto16RGB_UpsideDownEx(pFile, pimg16, bmIh.biWidth, bmIh.biHeight, lImageSize); }
if(bmIh.biBitCount == 8){ // 8ビット・ビットマップの場合 IFILE_GetInfo(pFile, &fi); pimg24 = (unsigned char*)MALLOC(bmIh.biWidth * bmIh.biHeight+100); pimg16 = (unsigned char*)MALLOC(bmIh.biWidth * bmIh.biHeight+100); if( !pimg16 ){ return 2; } ret32 = IFILE_Seek(pFile, _SEEK_END, -lImageSize ); IFILE_Read(pFile, pimg24, lImageSize); Conv8BGRto16RGB_UpsideDown( pimg24, pimg16, bmIh.biWidth, bmIh.biHeight); } if(pFile){ ReleaseObj((void**)&pFile); } if(pFileMgr){ ReleaseObj((void**)&pFileMgr); } }else{ if(pimg24){ FREE(pimg24); } if(pimg16){ FREE(pimg16); } return FALSE; } }
// Extensionを利用してのデコード処理 // パラメータの設定 gImage.imSize= sizeof(QRDEC_IMAGE);// 構造体サイズ gImage.imPixels= pimg16;// フレームデータバッファ gImage.imWidth= bmIh.biWidth;// イメージ幅 gImage.imHeight= bmIh.biHeight;// イメージ高さ gImage.imBitCount= (bmIh.biBitCount == 24) ? 16 : 8;// ビットカウント gImage.imCompression= QRDEC_BI_RGB;// 圧縮形式 gImage.imSourceCameraType= QRDEC_IM_DEFAULT;// カメラ情報1 gImage.imSourceCameraValue= 0;// カメラ情報2 gSymbol.siSize= sizeof(QRDEC_SYMBOL_INFO);// 構造体サイズ gSymbol.siSymbolType= QRDEC_QR_CODE_M2 | QRDEC_JAN13 | QRDEC_JAN8;// ターゲットシンボルタイプ gSymbol.siQRVersionLow= 1;// QRコード対象最小バージョン gSymbol.siQRVersionHigh= 20;// QRコード対象最高バージョン
// 結果文字列受取バッファの確保 if(!pMe->QR_psDecodedText){ pMe->QR_psDecodedText = (unsigned char *)MALLOC(QR_MAX_DECODE_BUFFER_SIZE); if( pMe->QR_psDecodedText == NULL ){ if(pWorkarea){ FREE(pWorkarea); } if(pimg24){ FREE(pimg24); } if(pimg16){ FREE(pimg16); } if(pDibScreen){ ReleaseObj((void**)&pDibScreen); } if(pScreen){ ReleaseObj((void**)&pScreen); } if(pQrdec){ IQRDE3GV_Release(pQrdec); } return (boolean)8; } } MEMSET(pMe->QR_psDecodedText, 0, QR_MAX_DECODE_BUFFER_SIZE); // 結果フォーマット文字列バッファの確保 if(!pMe->QR_psFormatText ){ pMe->QR_psFormatText = (unsigned char *)MALLOC(QR_MAX_DECODE_BUFFER_SIZE); if( pMe->QR_psFormatText == NULL ){ if(pWorkarea){ FREE(pWorkarea); } if(pimg24){ FREE(pimg24); } if(pimg16){ FREE(pimg16); } if(pDibScreen){ ReleaseObj((void**)&pDibScreen); } if(pScreen){ ReleaseObj((void**)&pScreen); } if(pQrdec){ IQRDE3GV_Release(pQrdec); } return (boolean)8; } } MEMSET(pMe->QR_psFormatText, 0, QR_MAX_DECODE_BUFFER_SIZE);
sInfo.tiSize= sizeof(QRDEC_STRING_INFO);// 構造体サイズ sInfo.tiDecodedBuffer= pMe->QR_psDecodedText;// 結果受取バッファ sInfo.tiFormatBuffer= pMe->QR_psFormatText;// 結果フォーマットバッファ sInfo.tiMaxBufferSize= QR_MAX_DECODE_BUFFER_SIZE;// バッファサイズ // デコードExtensionインスタンスの構築 if ( (ret = ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_QRDEC3GV, (void **)&pQrdec)) != SUCCESS){ if(pScreen){ ReleaseObj((void**)&pScreen); } return 2; } // デコードExtension処理領域の問い合わせ if(!pWorkarea){ lMemoryVecLen = IQRDE3GV_QrdecGetWorkAreaSize(pQrdec); pWorkarea = MALLOC(lMemoryVecLen * 3); if(!pWorkarea){ if(pQrdec){ IQRDE3GV_Release(pQrdec); } return 2; } } // デコードパラメータのセット rc = IQRDE3GV_QrdecDecodeSymbolSetParameters(pQrdec, &gImage, &gSymbol, &sInfo, pWorkarea); if(rc){ if(pWorkarea){ FREE(pWorkarea); } if(pQrdec){ IQRDE3GV_Release(pQrdec); } return 2; } rc = QRDEC_S_CONTINUE;
// デコード処理実行 while (rc == QRDEC_S_CONTINUE ){ rc = IQRDE3GV_QrdecDecodeSymbolNextStep(pQrdec, 150, 100, pWorkarea); } if ( rc == QRDEC_S_OK ){ pMe->QR_lBufferSize = sInfo.tiBufferSize; }else{ ret = QR_GetErr(rc); } if(pWorkarea){ FREE(pWorkarea); } if(pQrdec){ IQRDE3GV_Release(pQrdec); } return (boolean)rc; }
/*------------------------------------------------------------------------------- QR_DecodeFromBmp QRコード・バーコードデコード処理 IBitmapから直接変換 ------------------------------------------------------------------------------- */ static voidQR_DecodeFromBmp( IApplet* pi, IBitmap* pBmp ){ CHelloWorld2* pMe = (CHelloWorld2*)pi; void*pWorkArea = NULL; IQrdec3GV*pQrdec = NULL; intret; QRDEC_IMAGEimageArea; QRDEC_SYMBOL_INFOcodeInstructions; QRDEC_STRING_INFOstringArea; AEEBitmapInfobi; if( ( ret = ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_QRDEC3GV, (void **)&pQrdec)) != SUCCESS ){return; } { IBITMAP_GetInfo( pBmp, &bi, sizeof(bi)); imageArea.imSize= sizeof(QRDEC_IMAGE);// 構造体サイズ imageArea.imPixels= (unsigned char*)pBmp;// フレームデータバッファ imageArea.imWidth= bi.cx;// イメージ幅 imageArea.imHeight= bi.cy;// イメージ高さ imageArea.imBitCount= 16;// ビットカウント imageArea.imCompression= QRDEC_BI_RGB;// 圧縮形式 imageArea.imSourceCameraType= QRDEC_IM_DEFAULT;// カメラ情報1 imageArea.imSourceCameraValue= 0;// カメラ情報2
codeInstructions.siSize= sizeof(QRDEC_SYMBOL_INFO); codeInstructions.siSymbolType= QRDEC_QR_CODE_M2; codeInstructions.siQRVersionLow= 0; codeInstructions.siQRVersionHigh= 0; stringArea.tiSize= sizeof(QRDEC_STRING_INFO); stringArea.tiDecodedBuffer= pMe->QR_psDecodedText; stringArea.tiMaxBufferSize= QR_MAX_DECODE_BUFFER_SIZE; stringArea.tiFormatBuffer= pMe->QR_psFormatText; if (pWorkArea == NULL) { unsigned long MemoryVecLen = IQRDE3GV_QrdecGetWorkAreaSize(pQrdec); pWorkArea = MALLOC(MemoryVecLen); } IQRDE3GV_QrdecDecodeSymbolSetParameters( pQrdec, &imageArea, &codeInstructions, &stringArea, pWorkArea); } while (ret == QRDEC_S_CONTINUE ){ ret = IQRDE3GV_QrdecDecodeSymbolNextStep(pQrdec, 150, 100, pWorkArea); } if ( ret == QRDEC_S_OK ){ DBGPRINTF("○●○ QR(Bmp):SUCCESS ○●○"); pMe->QR_lBufferSize = stringArea.tiBufferSize; }else{ ret = QR_GetErr(ret); } if(pWorkArea){ FREE(pWorkArea); } if(pQrdec){ IQRDE3GV_Release(pQrdec); } return; }
大変長くなってしまって申し訳ありません。 宜しくお願いします。
QRはやってないし、わからんが そらAEECLSID_JPEGを指定したらJPEGが出力 されるがな。 加工したいならRAW出力で出力して、BMPファイルに すればいいんでねーの?
>>57 AEECLSID_WINBMPやAEECLSID_NATIVEBMPが設定できなかったので、
とりあえず動かすためにAEECLSID_JPEGを設定していました。
というかCAM_ENCODE_RAWの存在をすっかり忘れていました。
RAW出力早速やってみます。
>>58 CAM_PARM_VIDEO_ENCODE_LISTでGetParamやれば
サポートフォーマットは取得できる。
まぁ〜BMPサポートしているのなんか見たこと
無いけど
とりあえず、RAWはメーカ依存なので絶対とは
いえんけどYUV422で出力されると思われ
# RGBは見たとき無いな・・・あんのかな?
とりあえず長いソースを晒すときはテキストでうぷしる でも守秘義務は守ろうな 晒せる範囲に気をつけれ でカメラだが jpg援交画像をimageで取り込み→bitmap化 getフレームのbitmapを直接取り込み あたりをすればよいかと思われ
>>59-60 情報提供&忠告有難うございます。
RAW出力でやってみたのですが、やはりうまくいかないようです。
>jpg援交画像をimageで取り込み→bitmap化
>getフレームのbitmapを直接取り込み
サンプルのコードを見る限り、解析するときに
ret32 = IFILE_Read(pFile, (void *)&bmFh, 14);
ret32 = IFILE_Read(pFile, (void *)&bmIh, sizeof(BITMAPINFOHEADER));
で取得した情報を元に16bitに変換してるようなので、
BMP形式でファイルに保存してからじゃないと無理っぽいです。
IBitmapから直接解析しようとすると、
Extensionの構造体(特にQRDEC_IMAGEのimPixels)に何を入れていいかわからない状態です。
62 :
デフォルトの名無しさん :04/09/30 22:58:44
BREW 上でMINIXをさらにショボくしたようなレベルの簡易OSが作れないかな、 と思っているんですが、ちょっと質問。 1、MMUはイジれますか?第一、そもそもハード的にありますか? 2、少なくとも、Dirty Bitは見たいのですが、可能ですか? 3、例外や割り込みはトラップできますか。とりわけ、ページフォルトは? 4、簡易OS上のアプリからのBREWのAPIコールやライブラリコールをトラップ (正確には禁止)できますか? クアルコムは、BREWでJavaVMも書けるよ、と怪気炎を吐いていますので、 このあたりのOSレベルの機能も無理やり開放させる方法があるような気がするのですが、 どうでしょうか。
BREW Developers Agreementについて解説してあるサイトとかないですか? グラントバック条項として BREWの開発に役立つ特許なら親会社のでも子会社のでもクアルコムに実施料無料で 自由に使わせろって書いてあるように読めるんだけど。 子会社はともかく親会社にそんなこと認めてもらうなんて・・・。 みんなこんな契約そのまま承諾してるのかなあ?
>>60 関係ないが
援交っていーぱつ変換でだすなんt
65 :
デフォルトの名無しさん :04/10/02 03:20:44
>>62 だれか教えて!
とりわけ、
・ページフォルトがトラップできるか
・BREW API/ライブラリへのコールがトラップ(もしくは禁止)できるか
・ダーティービットが見れるか
この三点、よろしくお願いします。
66 :
デフォルトの名無しさん :04/10/03 23:27:08
うーん。クアルコムのサイトでの検索結果では、 非常にダメっぽいなぁ。mmap() すらないんだもんな。
型宣言について聞いてみたい。 BREWでは int16, int32, uint16, uint32 といった型がわざわざtypedefされているが インターフェイスのヘルプを見ると引数や戻り値に int と書かれているものもある。 みなさんソース書くときにint16とかの記述で統一してますか? それともintも混在で? 「そんなの好きに書けばいいじゃない」って、気にするほどのもんでもないのかな。 (結局はコンパイルでintやlongに置き換わるわけだし) 実は bool型 true, false が boolean型 TRUE, FALSE (1, 0でdefineされてる) で定義されてるのもかなりウザイと感じている。 boolean result = (a != b); がエラーになってバカらしいなと… (BREW的には boolean result = (a != b) ? TRUE : FALSE; )
68 :
デフォルトの名無しさん :04/10/04 10:17:27
>みなさんソース書くときにint16とかの記述で統一してますか? それともintも混在で? 自分で宣言した変数ではintしか使ってない。 >実は bool型 true, false が >boolean型 TRUE, FALSE (1, 0でdefineされてる) >で定義されてるのもかなりウザイと感じている。 同感。すげーウザイ。 他にも、KDDI認証とかマニュアルの不便さとか、挙げればキリがない。
BREWは、VC依存でしょうか? gccでは使用できませんか?
素人なので間違えてたらごめんなさい。 GNUDEでもできるみたいなんですが、 elf2modが必要で、正式デベロッパーになるか、 auのBREWCPになるか、Visual Studio Addin を入れないといけないみたいですね。 ところで、Visual Studio Addin入れようとするとエラーになるんですが、 やっぱりVisual Studioがないといけないんでしょうか。 String NO_VS_ERR_MSG1 was not found in string table.って出ます。
>>69 の質問は、gccで作成されたアプリの資源が生かされるのかどうかの為に聞きました。
よろしく、お願いします。m(. .)m
>>70 すいません。レスを確認しませんでした。
>GNUDEでもできるみたいなんですが、
>elf2modが必要で、正式デベロッパーになるか、
>auのBREWCPになるか、Visual Studio Addin を入れないといけないみたいですね。
なるほど、そうなんですか。gccでも可能ってことですね。
ありがとうございました。
>>69-72 エミュレータ用のDLLを生成するには、Visual C++相当のコンパイラが必要。
gccがVCと互換性のあるDLLを吐いてくれるのかどうかは知らん。
実機向けにビルドするならgccで問題ないが、
>>70 にあるとおり、Visual Studioが
入っていないとgcc用のelf2modがインストールできない。
まあ、gccベースのアプリをBREW化するのはコンパイラ以外の問題のほうが多いと思うが...
(グローバル変数、Cの標準関数、浮動小数点演算が全部NG。
C++の機能も制限あり...これはgccだと回避できるのかな?
100%イベントドリブン+シングルスレッドな構造にそのまま移植できるソースなんて
そうないだろうし。)
まあ武龍の売りはイベントドンブリとかうっへり言語じゃなくて 高速で動く高性能チップと それようのネットリワーク環境が ワンセットになっている事らしいから まあチップの中の人とか小人さんがいくら優秀でも それに命令を渡すため書類の書き方やら手続きやら用語やらがあれだったら 中の人やら小人さんも働きようがないゃな
75 :
949 :04/10/05 14:12:49
質問が御座います。 今朝端末でアプリを立ち上げた所、 「エラーが発生しました(004)」と表示され、 製作中の全てのアプリで同じ現象が 発生している状態です。(⊃△T) ※昨日まで動作していました エラー004の内容についてお知りの方、 助言していただけないでしょうか?
>SIGファイルの期限切れ
(゚△゚;)
クライアント様に新しいの用意して
もらいまふ…。_| ̄|○|||
>>76 早急なレスありがとうございました。
_| ̄|〇.oO( IBITMAP_Release2回やらんとメモリ解放されない・・・・) 原因が解かりません。 まさか仕様って訳じゃ無いですよ・・・ね? 一応解放されるけどなんか気持ち悪いです。 どなたか解決法知ってましたら助けてくださぃ。
自己解決しました。 2次配列で取得してました(;´Д⊂)
武龍で強制的にスリープさせる方法なんてあんのかね?
>>81 お〜ま〜え〜は〜ア〜ホ〜か〜
まあ、実際良くあることだけどな
BREWで動く関数ポインタの使い方を教えていただけませんか? 下のに書いた感じで、エミュでは問題なく動いてるんですが、 armコンパイルするとエラーが(⊃д⊂) switch caseや if else 多用すれば良いとも言うけど… //キーイベントが発生したら、本関数をコール KeyEvent(AEEApplet *a, uint16 wParam) { void (*key[])(AEEApplet*, uint16)={ KeyEvent_0, //0 KeyEvent_1, //1 KeyEvent_2, //2 … }; //共通処理 key[a->JumpNo]; //各関数へジャンプ }; void KyeEvent_0(AEEApplet *a, uint16 wParam) { //個別処理 } void KyeEvent_1(AEEApplet *a, uint16 wParam) { //個別処理 } //以下略
リンク時にはまだ関数のアドレスが確定してないから、変数の初期値として 関数のアドレスは指定できないよ。 実行しはじめてからでないと。
なるほど… つまるところ関数ポインタをメンバ構造体へ突っ込んどいて、 動的に初期化すればOKて事ですか・・? うーん、そこまでやるならif elseでズラズラ書いた方が良いかなぁ… ひとまずやってみます。ありがとうございました。
>>85 それじゃぁ呼び出しもできないね。
>>86 「なるほど」じゃねぇだろ。
armコンパイル時にリンクでエラーが出てたと思ったので、 納得してしまったんでつが… じゃぁどーすりゃいいんだyp!ヽ(`Д´)ノ
>>88 「思った」ってなんだよ?
エラーでたならエラーメッセージ貼って質問するのが基本なわけだが、できないのか?
>>84 >key[a->JumpNo]; //各関数へジャンプ
これに引数は書かないのか?
(*key[a->JumpNo])(a, wParam); ではダメ?
ちなみに関数ポインタは実機でも使えるよ。
リンクも通るし、できた mod もちゃんと動く。
ただ、前の開発では配列にしたら何故かダメだった。
調べるのもめんどくさいので switch で切り分けた (´A`)
グローバルなポインタの配列?は出来ないくさい。 テーブルのテーブルとかすると叱られた。
なんかBREWの仕様もさながら ARMコンパイラが腐ってるのが苦労の原因に見える……外から見てると
93 :
デフォルトの名無しさん :04/10/08 11:56:36
>>93 とりあえず、ぱっと見の突込み所(遅くなる原因かはわからないけど)
なんでデータ受信時の再読み込み系でCALLBACK_Initを
何回もやっているの?必要だっけか?
たまにしかアクセス行かないアプリなら別だけど
IWebをリクエスト毎に生成するのは何故?
IWebは基本的に使いまわすもの
>>94 CALLBACK_Initについてはコールバック設定前に行うっていうのはどっかに書いてあったはず・・・。
あとIWebについてだけど
あれって使いまわせないと思うんだが?
IWebはIWEB_Releaseを行わないと切断できないし。
ついでに
>>93 については分からないなぁ・・・。
俺のときはメモリを細かく取ってたら遅くなったけど。
ラボで貸してくれるという評価ボードって何ができるの? ICEつなげてソースデバッグとかできるとありがたいんだが・・・・
MSのeMbedded VC++4.0でBREW用バイナリは出来ないのかなぁ・・・。
J2Bトランスレータってどうしたんでしょうね。 10月から始まるって話でしたよね。
Javaに詳しいトランスレーター用の中の人が思ったより集まらなかったのでは? どうせ家内製手工業だろうし
十数秒で変換って書いてあるから、手作業はほとんどないと思いますが、 やっぱりあんまり期待できないですね。
103 :
デフォルトの名無しさん :04/10/15 09:18:35
ぶりゅっ
104 :
デフォルトの名無しさん :04/10/15 14:46:41
はじめまして。 質問なのですが、機種ごとに違う、画面の大きさを取得できる関数が あったとおもうのですが。。なんでしたっけ。 それと、横幅は240で固定なのでしょうか。縦は違う??
>>104 画面の大きさはISHELL_GetDeviceInfoで取得したAEEDeviceInfo構造体に入ってる。
これで機種ごとにサイズを見てみれ。
106 :
93 :04/10/16 21:30:20
>>94 ,95
レスありがとうございます。
試行錯誤しておりますが、現状直らず…。_| ̄|○|||
現状わかった事として
通信終了後(成功失敗に関わらず)、
約1分程で動作速度が元に戻る。(T△T;)
CallBack、タイムアウトのタイマーは開放してるんで、
それ系の不具合では無いと思うのですが…。
引き続き情報お待ちしております…。m(_ _)m
通信とは関係ないけど、 BREWエミュで文字列リソースだけ読ませるだけの アプリ作って起動したらやたらとフレームが落ちて重くなったことがあった。 そこで画像も読ませたりすると普通の速度に戻ったりとか。 原因は不明・・スマン
>>108 >約1分程で動作速度が元に戻る。(T△T;)
見事に自動切断(っていうのか?)の時間レスね
なんか解放し忘れてんのかね
ところでenraタソはどこ行きましたか?
pngをメモリから読めますか?APIが見つかりません。
>>110 メモリから読むなら、IMemAStream -> IAStream
でIIMAGEにストリーム設定すればいけんでない?
112 :
デフォルトの名無しさん :04/10/19 12:38:15
とりあえずンニーでカメラ動かそうとすると大変だな ところでカメラエンコードが失敗したときって何で判定すんの?
115 :
デフォルトの名無しさん :04/10/20 13:04:42
>114 よくわからんけど、戻り値を調べるなりできたファイルをチェックするなりすればいいんでは?
エミュレータのソフトキーはキーボードから操作できないのでしょうか。 [*]キーはテンキーの'*' [#]キーはテンキーの'.' [クリア]キーはBS [電源]キーはESC に対応してました。
117 :
デフォルトの名無しさん :04/10/21 18:02:00
HTTP接続した後、1分ぐらい別の作業(画面更新とか)したあとに 再度HTTP接続すると、毎回Response code -1200とか返るんですが これはエミュだから?実機でもそう?もしくはサーバー?
118 :
デフォルトの名無しさん :04/10/21 19:02:04
ファイルの読み書きなんですけど、 実機ではうまく動いているのにシミュレータでは IFile_Writeの戻り値が0になってしまいます。 どぉすればいいですかね? ちなみにIFILEMGR_GetLastErrorの戻り値はEFSFULLでした。 ファイルシステムに空きがないという事だったのですが、どういう意味でしょうか? またこの場合、どのように対処すればいいのでしょうか?
1ヶ月も前の話になるけど、ゲームショウで BREWのゲームって出てなかったよな。 KDDIのブースでもマルチマッチングのPS2のゲームがあっただけだし…
121 :
118 :04/10/22 10:18:23
>>119 有難うございました!無事解決しました。
122 :
デフォルトの名無しさん :04/10/22 10:42:12
先日BREWをはじめました。 CGI連携について教えてください。 IWebインターフェイスでCGIに連携する時 仕様書のサンプルのようにGetLineで取得すると、テキストデータ以外がとれません。 バイナリ-データを取得するにはどうすればよいのでしょうか? GetLineでは取れないのでしょうか?
>>122 ISOURCE_Read
WebRespInfoのpisMessageはISource
のインスタンスだべ
サンプルにあったような・・
ありゃ、漏れIPEEK_Read()でやってたよ>バイナリの読み込み まぁ動いてるからいいんかな・・・
125 :
122 :04/10/22 12:53:34
う〜ん、うまくとれませんorz CGIから Print"abc"; なら取れるのに、 print pack("c", $status); だと とれません... なにか必要な設定などありますか?
>>125 HTTPヘッダとボディのデータを一度モニタした方が
良いんでは?
>>125 ごめん。ファイルリソース取得はそれでOK
だったけど、昔cgiでバイナリ出力したときは
漏れもエラーになってた気がする orz
BREW側のHTTPヘッダの解析でまずいことでもして
るのかね?
公式で聞いた方がいいかも
128 :
デフォルトの名無しさん :04/10/24 01:05:29
BREWプログラミング実践バイブル のサンプルプログラムなんですが、エミュレータで動作確認はできないんですかね? やっぱりdllファイルがないとだめですよね。dllファイルを作るまでの知識がないもんで・・
何がしたいのかはよくわからないけど、 アプリが無いとエミュレータで動作確認はできないねぇ・・・ そういえば、開発者で実戦バイブル買った人っているのかな?
130 :
デフォルトの名無しさん :04/10/25 01:20:04
>>129 サンプルをDLしたんですけど、エミュレータで確認したいんですよぉ。
・゜゜・(≧д≦)・゜゜・。エーン!!
DLしたファイルの中にはmif、bid、ソースファイルなどはあるのですが、dllだけないんです。
vc++でコンパイルしてdllを生成するまでの手順がわからないので、困っています。
sdk ver2.1を使っています。
どなたか教えてください。
ARMコンパイラーはあるんですか? 自分もサンプルをエミュで動かしてみたいんですが、 ARMコンパイラーないし、Visual Studioもないし‥。 開発だけなら無料でできるって聞いたのに・・・。orz
>>130 dllの作り方はBREWと関係なしにVC++のマニュアルとか検索で調べるとか。
>>131 エミュレータで動かすならARMコンパイラは不要。
VisualStudioでなくてもVisualC++.NETでも可。Cのソースからdllが作成できればいい。
無料でできるのはBREW SDKのインストール。
>>132 すいません。根本的なところで勘違いしてたみたいですね。
ありがとうございました。やってみます。
>>132 ちゃんと動きました!ありがとうございました!
135 :
デフォルトの名無しさん :04/10/25 11:13:26
>>134 エミュレータで、確認できたんですか?やっぱりdllを生成してですか?
エミュで確認できましたよ。dll作りました。 FakeRPGのdllのサイズ400kbもありますけどね。
「BREWプログラミング実践バイブル」にSDKのインストール方法から、 VC++を使ってdllの作成方法にエミュの起動方法まで載ってるのに、 喪前は一体何を聞きたいんだ?
138 :
デフォルトの名無しさん :04/10/25 14:03:36
BREWにて Graphics2.setRenderMode() みたいなことができる関数ってあるんでしょうか? javaアプリの移植は、結構大変ですねぇ
139 :
デフォルトの名無しさん :04/10/25 16:32:49
BREWアプリのプログラム領域とデータ領域ってどのくらいの大きさなんですか? ググってもそれらしき情報が見当たりません・・ DLできる最大のデータ量が600KBみたいな事は書いてあったんですが。
>>139 600KBってのはCDMA 1X WINのみ。
それでQVGAの機種が300KBだっけ?
その他はどうだったか忘れた。
>>139 端末仕様書とかはKDDIのConfidential扱いだから
ググっても見つからないかも。
>>137 たぶん、本を買ったんじゃなくて、
ネットで公開されてるサンプルプログラムだけを落とした方だと思います。
自分もそうなので。
半透明ってできないの? JAVAのPhase3の時はスプライトで半透明をつかってフェードしたので 同じことやろうと思って調べてんだけど・・・ ISpriteにもないみたい・・・ だれかヒントください
残念ながら、半透明は非サポート。 将来的にサポートが予定されているんだっけかな・・? どうしてもやりたいなら、DIB直接弄るしかないんでないの?
最近アホが多いな
とりあえずソースを複数に分けるときってどんな風にやってる? グローバル変数が使えないから従来のCの様な分け方できないもんな
147 :
デフォルトの名無しさん :04/10/26 13:17:53
>>139 BREWはmodファイルもヒープに格納される。
だから、プログラムで使用するヒープ容量とmodサイズがヒープ容量を超えないようにする。
ちなみに、フレームワークでもヒープを消費するようで起動時点で端末によって使用済みヒープ容量が結構違う。
この辺は実機で確認していくしかないでしょ。
#端末のヒープ容量はCP登録していれば一部をQのデベロッパーサイトから見れる
#載っていないやつはメーカに問い合わせろとか書いてある
ファイルシステム上のサイズのことなら、BREW上での制限は特に無い。
容量使えるだけ使える。
ただ、キャリアのガイドラインがあるから
>>140 の言っているような制限がある。
KDDIの制限ならKDDIのサイトに詳しい資料があるね。ちょっと古いけど。
>>146 普通のCでもグローバル変数ばしばし使っているようじゃスパゲッティーになるわけだが。
BREWの場合はIApplet構造体をグローバルのように使うのが常道。
#定期的にカーネルへ処理を戻さないといけないから恒常的にデータを保存できるのはここだけ
漏れはC++のフレームワーク作っちゃって、メインクラスのメンバでデータ保存してるけどね。
149 :
デフォルトの名無しさん :04/10/27 11:07:38
>>136 >FakeRPGのdllのサイズ400kbもありますけどね。
工エェ!!!
bてビットかなぁ
しまった名前が残ってた これでよし
でもとりあえずBREWはお糞さまだよな(挨拶)
>>149 何も考えずに突っ込んでそのままビルドしたらそうなりました。
dllはエミュレータ用で、これはでかくなるよ。数百KBytesとか普通。 実機用には別にコンパイルしたモジュールを使う。それはdllより遙かに小さくなる。
勉強になりました。 実機のエミュ出て欲しいですね。 出ても金取りそうだけど・・。
最近初心者質問スレと化して来たなぁ・・・
>>155 とりあえずCP契約すれば、エミュレータ用のデバイスファイルは一通り手に入る。
それが嫌ならエミュレータについてるデバイスコンフィギュレータで作るって手もあったと思った。
>実機(用コードが動く)エミュ 無理。 つか、作ったとしても全く意味ないし。
158 :
デフォルトの名無しさん :04/10/28 11:03:09
SDKダウンロードしてたらエラーでとまった。 サーバのメンテナンスで打ち切られたようだ。 sdjkgsd@ふじこs
ふじこの作り方さえ満足に出来ないなんて…終わっとるなw
spfファイルをbarに放り込んでリソースからphraseを使ってるんだけど、 AEEMediaData.pDataをFREEで開放しようとしたら duplicate free 〜〜〜 と メモリを二重開放していると怒られました。 やり方は BREWJAPAN.comのTechnicalTipsに載ってた方法を参考にしたんですが・・・ かといって開放しないとメモリリークになるし、もうどうしたらいいかわかりません(´Д⊂、
音の開放のときってbrewのバージョン(2.0とか2.1とか)で違うって そのTipsのに載ってなかったっけ?バージョン書いたほうがいいよ
バージョンは2.1です。書き忘れてました
このTipに書いてあるのはIMediaインターフェースの開放に関する事ですよね。(23.3) 俺が言いたいのはそれの事じゃないです。 とりあえず読込・MediaDataのセット・開放の部分のソース晒してみます。 /*アプレット構造体 */ typedef struct _App{ AEEApplet a; IMedia* media[3]; AEEMediaData mdata[25]; }App /* IMediaインターフェースの作成 */ for(j = 0; j < 3; j++){ i = ISHELL_CreateInstance(shell, AEECLSID_MEDIAPHR, (void*)&app->media[j]); if(app->media == NULL){ DBGPRINTF("failed"); } } /* リソースファイルからのspfファイルの読込 */ for(k = 0; k < 25; k++){ ISHELL_LoadResDataEx(app->a.m_pIShell, RES_FILE, SE_1 + k, RESTYPE_IMAGE, (void*)-1, &dwSize); buf = ISHELL_LoadResData(app->a.m_pIShell, RES_FILE, SE_1 + k, RESTYPE_IMAGE); offset = (uint32)buf[0]; dwSize = dwSize - offset; app->mdata[k].clsData = MMD_BUFFER; app->mdata[k].pData = buf + offset; app->mdata[k].dwSize = dwSize; }
/* メディアデータのセット 再生する音によってセットするデータの数が異なります。 */ for(i = 0; i < app->soundElements[no]; i++){ IMEDIA_SetMediaData(app->media[i], &app->mdata[sindex + i]); IMEDIA_RegisterNotify(app->media[i], (PFNMEDIANOTIFY)MediaNotify, app); } for(i = 0; i < app->soundElements[no]; i++){ int ret; ret = IMEDIA_Play(app->media[i]); if(ret == SUCCESS){ DBGPRINTF("########### PLAY SUCCESS ##############"); } else{ DBGPRINTF("########### PLAY ERROR ##############"); } } /* 開放 */ for(i = 0; i < 3; i++){ if(app->media[i] != NULL){ IMEDIA_Stop(app->media[i]); IMEDIA_Release(app->media[i]); } } for(i = 0; i < 25; i++){ if(app->mdata[i].pData != NULL){ FREE(app->mdata[i].pData); /*ここでDupricate Freeエラーが発生*/ app->mdata[i].pData = NULL; } }
あと、この質問とは別件ですが、
>>164 で
ISHELL_LoadResDataEx(app->a.m_pIShell, RES_FILE, SE_1 + k, RESTYPE_IMAGE, (void*)-1, &dwSize);や
buf = ISHELL_LoadResData(app->a.m_pIShell, RES_FILE, SE_1 + k, RESTYPE_IMAGE);で
intからunsigned shortに変換しました〜〜のwarningが出ます。kはuint16にしてあるので、型は間違っては無いと思うのですが。
定数を足すとダメなのかな?エミュでは問題なく動きますが、ARMには通りそうにないんで直したいんですが、どうしたらいいでしょうか?
>>165 俺はFREEでなく
ISHELL_FreeResDataを使っている
>>166 型はint16じゃないの?
>>167 氏
ISHELL_FreeResData使いましたが同じ結果になりましたorz
後、型は確かにint16でしたね。でもkをint16に直しても結果は同じでした・・・
169 :
デフォルトの名無しさん :04/10/29 18:17:33
BREWユザーズガイド読んだら、 ARMコンパイラ使用上の注意として 条件文で変数を指定すんな!って書いてあるんだが、 もしかして条件式に変数を書いちゃいけないんだろうか?
>>164 とりあえず、bufのポインタ自体を保持しておかないと正しく開放できないですね。
duplicate freeって、FREE()呼んだ時点じゃなく、アプリ終了時とかに表示されませんか?
確保したのはbuf(サイズはdwSize)なのに、mdata.pDataはbuf+offset(サイズはdwSize-offset)を
指しているので、FREE(pData)を呼んでもbuf自体は開放されてないです。
なので、「アプリ終了時に未開放のメモリが残る→実行環境がbufを開放する→bufとpDataの
重複する領域が二重開放になる」という現象が発生します。
あと、ISHELL_FreeResDataを使うのが正しいです。
(わかりにくい説明ですみません)
結論は「pDataじゃなくbufに対してISHELL_FreeResData()使ってください」
>>169 ARMのコンパイラは、
if(nRet = IMENUCTL_HandleEvent(pme->pIMenu, eCode, wParam, dwParam))
{
/* MenuCtlがイベントを処理したっぽい */
return TRUE;
}
みたいなコードを書くと、「代入の結果を条件判断に使ってるよ?」と警告をはきます。
(代入じゃなく比較したかったんじゃないの? と言いたいらしい)
warningが溜まりすぎると「too many warning」とその時点でエラー扱いに
なってしまう(コンパイルできない)ので、条件文の中で代入を使わないほうが良いです。
こう書いたからといって危険なバイナリが出来るわけではないですから、
コンパイルさえ通ればこう書いても問題ありません。
あ、FREE(pData)呼んだ時点で、pDataとbufが重複してるから 二重開放エラーになるんですね
>>165 単純に解放処理の順番がまずいだけじゃないの?
app->media[i]って構造体を解放してから
そのメンバapp->mdata[i].pDataを解放してるようだが。
逆にしてみたらどうか。
/* 開放 */
for(i = 0; i < 25; i++){
if(app->mdata[i].pData != NULL){
FREE(app->mdata[i].pData); /*ここでDupricate Freeエラーが発生*/
app->mdata[i].pData = NULL;
}
}
for(i = 0; i < 3; i++){
if(app->media[i] != NULL){
IMEDIA_Stop(app->media[i]);
IMEDIA_Release(app->media[i]);
}
}
>>166 リソースのIDを計算で与えてることがそもそも間違い。
'SE_1 + k'と書いてるところの引数はリソースのIDを指定するものだが、
リソースのIDはあくまでラベル的に扱い、数値として見てはいけない。
計算後のIDがリソースファイルに存在する保障はないし、リソースファイル
の作り方次第ではIDが連番で割り振られるわけでもないから。
何が何でもIDを計算で渡すというなら明示的にキャストすれば
とりあえずコンパイルは通る。
俺は
const int16 idid[3] = {ID_AAA,ID_BBB,ID_CCC};
とかやってる
>>164 でいうと
ISHELL_LoadResDataEx(app->a.m_pIShell, RES_FILE,idid[k], RESTYPE_IMAGE, (void*)-1, &dwSize);
とゆーかんじだ。参考にならなかったらごめんな!
>>170-175 ありがとうございました。大変参考になりました!
とはいっても試すのは週明けになるのですが(汗
C言語は多少勉強した程度で、Java→BREWの移植をしてるんですが、
なかなか上手く進まなくて大変ですね。
最初の最速の見積もりの半分くらいしか行きやしない(´Д⊂、
とりあえず byte *a; a = MALLOC(1024*10241024*1204*1024);
181 :
デフォルトの名無しさん :04/10/30 14:01:01
>>170 なるほど、そういう意味でしたか。
納得しました。ありがとうございます。
すみません、初心者ですが教えてください。
>>180 はガッするべきですか?
185 :
デフォルトの名無しさん :04/10/31 09:49:50
ヌルポ
>>185 static const AECHAR gaxtu[] = {'ガ','ッ','\0'};
ちと端末に関して質問。 BREW機で、扱える画像ファイルの解像度制限ってある? JAVA機だと、VRAMの都合最大320*320ピクセル超えると 止まる機種があるらしいって話を聞いたんだが… 全部VRAMなんて使ってなさそうだから問題無いような気もするんだが… KDDI相手に質問したい場合、キャリア通さないといけないんで面倒なのよ(ノД`)
舞竜はメモリの許す限り読み込めるんじゃねーの いや知らんけど
うーん、質問が悪かったかな…
パーツの画像をひとつにまとめるか、複数ファイルにするかってトコで、
サイズの制限があるなら画像を分割しないとね、って話になっててさ。
ファイルが分割されるとソース変更が必要だし、リソースサイズも増えるから
できればファイルを結合できれば助かるんだが。
質問を変えて。
最大何ピクセルくらいの画像を実機に読み込ませた事有りますか?
一応漏れは480×36のBMPをIDISPLAY_CreateDIBitmap()で生成させて、
動作するまでは確認した事があるんだが…
多分メインメモリに展開してコピペしてるだけだろうからVRAMの制限はなく、
>>188 と同じ事思っているんだが、
『思う』ってだけじゃ誰も納得してくれねーし
手元にS5505SAしかねーしOrz
武龍3.0って蛇場仮想マシーンは搭載されるんですか。
>>189 画像と言ってもBMPとかPNGとかで変わってくるわけで。
さらにIImage/IBitmapのどっちを使うとかそのへんも。
ちなみにIImageのデコードはヒープ使うと明言されてるし、COMVERTBMPもヒープを消費する
のは確認しているのでおそらくヒープが足りてれば制限はないとおもうけど。
漏れはQVGAフルスクリーンサイズのBMP・PNG・JPEGをリソースから読んで描画するとこまではやったことある。
#端末はKDDIのQVGA端末数機種
でかい画像をそのまま描画するっていうとまた話は変わってくるんだろうけどね。
#描画時には制限があるかもしれない
192 :
デフォルトの名無しさん :04/11/01 18:26:19
次のようなソースをコンパイルするとエラーが出る。 static void mytest(MyApplet *ap) { DBGPRINTF("mytest"); IShell *sh = ap->a.m_pIShell; } error: C2275:'IShell' : typedef識別子に、クラス メンバ アクセス演算子(->)を使用しました。 aee.h(294): 'IShell'の宣言を確認してください。 だけど、 IShell *sh = ap->a.m_pIShell; DBGPRINTF("mytest"); の順に変更するとエラーでない。 なぜでしょうか? ちなみにincludeしてるのは、AEEModGen.h AEEAppGen.h AEEShell.h AEEFile.h AEENet.h myapp.bid AEEStdLib.h です。
>>192 C言語ではローカル変数は最初にしか宣言できないぞー。
>>193 あなるほど!
VC++っていうからC++もOKかと思ったけど、
ARMのコンパイラのこと考えるとC++ダメなんだな。
早速の指摘ありがとう
BREWのソースのテンプレートのコメントが//だったんで すっかりC++が使えるものと勘違いしてました。
196 :
デフォルトの名無しさん :04/11/01 19:29:13
いや、BREWはC++でも開発できるが。
>>196 ARMのコンパイラC++スタイルでもOKということか?
198 :
196 :04/11/01 21:25:02
俺はg++使ってるからなぁ…。 ARMコンパイラは上司に触らせてもらってないから何とも。 GCCで十分というウワサ。
>>191 基本はpngをIImageで開いてる。
IBitmapもIImageも、DIBに展開してメモリに確保している点は共通処理だったと思うから、
どっち使っても同じじゃないかなーと思ってるんだが。
ひとまず画面サイズはokね、サンクス!
それにしてもpngの展開遅いね…
開きっぱなしで使うもんだから、メモリの管理面倒でつよ
//
のコメントだと
//表
でエラーになるのがムカツク
/*表*/
ならOKだったような気がする・・・
>>199 png遅い?
おいらはとくに困ってないけど、まあ作るものによって違うんかなあ
画像のサイズは開発サイトのFAQを見れ。 すごいデカイとはいえ制限がある機種がある。 png展開が遅いのがダメってなら自力で圧縮するしか無いかな。 //表[改行]が行末\結合でダメなら、幸いにしてmakefile経由なんだから 他のコンパイラとかでプリプロセスだけ通したら? //コメントのスタイルはC99から標準だっけか。 かといってARMコンパイラはC99でもなんでもないけど。 gcc使うとコードがでかくなるって話を以前ココで聞いたけど、 --ffunction-sections とか --gc-sections とか使ってもダメなの? そもそも使えるのかな
>>201 >--ffunction-sections とか --gc-sections とか使ってもダメなの?
>そもそも使えるのかな
減らんです。
有効なら検証提出もGCCで行くんだが。
>>199 JPEG を使っていると png は一瞬に感じてしまふ。
しかし、S の端末は JPEG 展開にメモリ消費しすぎだな。
ずっとRVCT使ってたんだけど、いい加減コンパイルごとに担当者にソース提出するのメン毒なってきたからgccに移行しようかと思う今日この頃。
ところで、STLが使いたいんでSTLportをBREWに移植しようと思ってるんだけど、ソース改変の前にmakefile書くのがマンドクサ。
ttp://www.stlport.org/
くそー。STL使うとBREWelf2modがエラー起こす。 STLが使いたいのに。むしろSTL使わなければとりあえず既存のコードが問題なく動く。 ---------------------------------------- C:\PROGRA~1\BREWAD~1\common\bin\BREWelf2mod.exe my_app.elf my_app.mod Unknown section name ".gcc_except_table]:" NMAKE : fatal error U1077: 'C:\PROGRA~1\BREWAD~1\common\bin\BREWelf2mod.exe' : リターン コード '0x1' Stop. ツールは次のコードを返しました: 0 ----------------------------------------
会社名(というか大学名)をちゃんと入れたけどSDKダウンページのInstallを押すと SDK ACCESS ERROR言われる。゜(゚´Д`゚)゜。 Release NoteやらUpdateは落とせるのに何故…
>>208 ブラウザの設定じゃないの? 同じような質問が過去レスにたくさんあったよ
>>209 ブラウザはIE6で、ActiveXもJavaScriptも有効になってるんですが…(´・ω・`)
過去ログが見られないので過去スレの回答が分かりません orz
211 :
デフォルトの名無しさん :04/11/03 15:51:31
212 :
ロロ :04/11/03 16:01:59
RVCT は C++ 使えるよ。 だけどテンプレートまわりで制限があるよ。
>>211 まとめページ見逃してました orz
過去レスのリンクからオフィシャルフォーラムで記事を見つけ、無事DLできました。
ありがとうございました
喪前ら今日もたくさんBREWタンを弄んだんですね お疲れさまです
KDDIの認証で、ITextCtlとIMenuCtlを使って ソフトキーを描画するなって書いてあったんだけど、 自分で画像用意してイベントはAVK_SOFT1とかでやれって事? 折角用意されてるのに、おかしくないか?
サービスガイドのキー入力−ソフトキーに禁止理由書いてある
てか大して使えもしないコントロールの利用方法覚えるより、 制限に縛られずに適当に作った方が楽でないかい?
218 :
デフォルトの名無しさん :04/11/04 10:54:42
質問させてくれろ・・・ 3Dモデルって何のファイル使えばいいの? 拡張子教えてくれろ・・・。
219 :
デフォルトの名無しさん :04/11/04 11:14:23
LightWaveのファイルはそのまま使える
220 :
218 :04/11/04 11:38:38
221 :
デフォルトの名無しさん :04/11/04 16:01:23
AEEAppletで作るアプレットのメンバを グローバル変数のかわりに使おうかとしてるんだけど、 これってサスペンドから復帰したときに初期化されちゃうよね? 藻前らサスペンド時にdbに書き込んだり ファイルに保存したりとかやってるの?
ファイルに保存した方が良いんだろうけど、俺はメモリに放置しっぱなし。 EVT_APP_STOPの時に解放してる。 まぁ、解放できそうな物はSUSPEND時に解放してRESUMEで復元してるけど。
>>222 え?サスペンドから復帰したとき初期化とかされないの?
エミュで実験してるけど0で初期化されてるような気がするけど
と、思ったが、 SUSPENDをhookしてないことに気がついた。 たぶんTRUEかえせばOKなんだろう。
例のソフィアクレイドルの記事にもあるが、 SUSPENDに対してFALSE返すと、強制的にアプリを終了させられてる。 TRUEを返せば、大丈夫。 ただ、全てのタイマーを終了させることと、 一部のオブジェクトに関して解放を行い、 RESUME時にそれらを復帰させないと駄目。
>>197 C++使うならarmcppでコンパイルすればOK。
C++構文使いたいだけならmakefileのCCを直すだけで良いだろう。
クラスとか普通に使うとすると自動生成makefileを手直ししないといけなく
なってくるけどね。
ただ、エミュ用にコンパイルするときVCのデフォルト設定だと
.cはC++としてみてくれないから.cppとかに変えるかプロジェクト設定弄ら
ないとならんけど。
RVCTでビルドしてみたら、こんなの出るけども >Warning: Q0115W: Deprecated command syntax will not be supported in future versions. Use -output to specify the output file. >Finished: 0 information, 1 warning and 0 error messages. 今後サポートされそうにない命令使っているってことなの? みなさん、どうしてるの?
>>228 どこだったか忘れたけど、それは無視して良いって書いてあったはず。
>>229 エク、エク、エク、エク、エクセレント!
英語ばかりで悩んでます。ありがとう。
とりあえずCPさんもそうじゃない人もKDDIのプログリミングガイドとサービスガイドに目を通しておくことをお勧めする
>>230 ごめん。
EZアプリ(BREW)開発ツールガイドver1.5.pdf を確認したら
ARMコンパイル時のWarningで4つくらい例が出てて、
そのWaningだけ「必ずしも無視できるわけではない」って書いてあった。
スマン。
233 :
デフォルトの名無しさん :04/11/04 20:39:48
ぶりゅう子「おにぃちゃん…きょうも…わたしを………いじめるの…………」
>>228 過去スレに答えがモロあったような…
makefileのHEXTOOLのパラメータを書き換えた
みんな「ブリュ-」って読んでるけど、「ブルー」らしいぞ
どっちでもいいんだよ。 でも、ブルーが一般的になりそうだね。 ここじゃブリューで定着しちゃったけど。
238 :
デフォルトの名無しさん :04/11/05 18:31:23
スペルをBLUEにしろよ
>238 飲み物つながりでJavaへの対決姿勢を示したんでは。 見てみたら「醸造する」の他に「(お茶を)入れる」って意味もあるのな。 > brew
>>231 まったくだ。本当にそのとおりだ。頼むからみんな読んでくれ。
あとFAQも。
pdfだしその文書そのものも、もっっっのすごい読みづらいのはわかる。
けど、知らないとすごい困ることが多いんだ。
お薦めするというより必須。いやもうホントに…
241 :
デフォルトの名無しさん :04/11/07 12:44:59
242 :
デフォルトの名無しさん :04/11/07 13:19:29
ゼッタイ読んでないねーってアプリもいくつかあるね
244 :
デフォルトの名無しさん :04/11/07 13:57:27
うん。派遣でBREW開発だというんで、そこのを読んで予習していったら、 全然従ってないので唖然としたことある。
まあ全ては
>>240 の
>pdfだしその文書そのものも、もっっっのすごい読みづらいのはわかる。
になるんだけどね。
300ページ近いくせにしおりもリンクもないもんだから(一部あるけど)、
えっちらおっちらスクロールして探さないといけない
やる気あるのか?KDDI
検索しる …と言いたいが確かにだるいな だが検証を通すのに必要なことがあちこちに書かれてあるので チームリーダーか全体仕様を考えたりするエロい人に一度は読ませるべき 〜〜はしてはいけませんとか使ってはいけませんとかこうしなさいとか書かれてんだもんな…_| ̄|○オカゲデ キョウモ テツヤデス
独り言です。 機種一覧表(性能、フォントサイズ、使用可能サウンドフォーマット、etc.)とか無いのかなぁ。 まったく、ふしだらな。
ソフトキーの描画ってどうやってます? 画面の下に自分で文字書いてたりしてます?絵とか。
>>249 自分で四角描いて文字を描画してるだけ。
>>249 俺もそーしてる。その方が自由に描けるし。
っつーか、BREWで用意されてるコントロール系は何かと使いづらいね。
がんばって似たようなの作ろうかな。
>>249 自分で画像作ってる。けどデキがいまいち・・・。
本物のソフトキーと同じ画像ってどっかにないもんかね?
>>251 激しくキボン。
BREWはまだまだ商品として世に出されるべきではなかったな 構想段階でもう半年〜一年ぐらいはっきりと仕様を固めていれば 今のように"とても"作りにくく移植性の低いAPIにはならなかったはず それともQ社の技術力が低いのか どちらにせよ全体的な仕様統合と十分なサポートがなされないなら 該当諸氏はQ社に対する評価を改めるべきである と書かれてた
brewのAPIが使いにくいのは確かだが、海外端末扱ってるとJAVAほど端末による 癖が無いのはうれしいけどね。 C系統だからプリプロセッサ使えるし。 しかし、何でオブジェクト指向なのにCでやろうと思ったのかが激しく疑問だが。 最初からC++にすればあんな使いにくいAPIにはならなかっただろうに。
エミュレータでImage開いてサイズの取得のみだけやってリリース、
その後一時的に処理がやたらと重くなるって不具合ない?
実機で再現しないんで放置してよいものかどうか…
>>252 詳しくも何も、好き勝手自由に作るだけじゃね?
使いやすいと思えるのは結局作った本人だけな罠w
256 :
デフォルトの名無しさん :04/11/09 00:18:00
>>247 俺も欲しいよ。
KDDI用意しろやああああああ
機種ごとの資料みて自分でまとめるのは面倒なんじゃあああああ
>>256 そうそう、面倒だよな〜
しかも端末仕様書にIMenuControlインタフェース云々のくだりがあるもんだから、
勝手に使えるもんだと解釈されて、その前提で会議進んでるしw
てか標準フォントサイズのバラバラ加減もどーにかして欲しいもんだがナー
皆様どうもです。やっぱり手書きなんですねーうーむ。 もう一つ質問なのですが、終了キー以外にも終了ボタンが必要とか 検証項目にあるのですが。。 ISHELL_CloseApplet()をいつでも呼べるようにすることですよね? ソフトキーにこれと、音楽on/offを当てたら終わりですよねぇ。 ISHELL_CloseApplet()は必ず必要?
>>249 俺はトップメニューに「終了」項目つけて、それでCloseAppletするようにしてる。
全部の画面から終了できるようにする必要はないんじゃないかな?
まぁまだ検証出してないからわからんが・・・。
追加。 CloseAppletで終了できるようにしろっていうのは、 確か終話ボタンで終了すると、他のサスペンドしてる アプリも終了しちゃうからだったと思う。 そういう意味ならどっか1箇所でCloseApplet呼び出せるようにすればいいかと思われ。
>>258 どこでも終了できるようにしなくてもOKだよ。
うちも259と同じようにトップとかに終了をつけてるだけだし。
>254 JavaでもPPP.exeなんかを使えば、プリプロセッサもどきは可能。 探せば、他にもありそうだけど(#define 関数が使えるとか)。
>>259-261 なるほどサスペンドなんかを考えなければいけなかったんですね。
ありがとうございました!
264 :
デフォルトの名無しさん :04/11/09 15:40:20
>>262 まあそうなんだが(Cコンパイラでプリプロセッサだけかけるって手もあるしね)コンパイラ
自体が機能を持ってないから他人/他社と連携するときに色々面倒だ。
スレ違いなんでこの辺にしておくが、C++派の漏れとしては、まあとりあえずSymbianかbrewに
がんばってほしいところ。
もう2ch製APIとかつくりゃええやん
267 :
デフォルトの名無しさん :04/11/11 11:42:48
お忙しい所申し訳ありません。 質問が御座います。 モード選択でモードA・Bの二つを 上下キーで選択する処理を行いたいのですが、 「A1402S」のジョグダイアルにて キーが取得出来ない様なのです。 (端末が手元に無い為、動作確認出来ません;; ジョグダイアルの上下キー取得は AVK_UP・AVK_DOWNで問題無かったでしょうか? また、タイマー速度が速すぎると キーを取りこぼしたりはするのでしょうか? 参考にタイマー速度を幾つに設定しているか等 教えていただけると幸いです。 因みに、現在のタイマー速度は80_秒に設定しています。 何卒、よろしくお願い致します。
>>267 AVK_UPとDOWNでおk。
ジョグダイアルって一瞬でPRESSとRELEASEのイベントが来るからそのせいじゃないのかな?
269 :
デフォルトの名無しさん :04/11/11 14:01:05
>>266 ここの住人が結集してフレームワーク作るってことか?
>>267 タイマーって何ぞや?
普通にキーイベントを取得するだけなら、タイマーとか必要ない筈だが。
アプリのHandleEventで、eCode==EVT_KEY、wParam==AVK_UPとかを検出すれば出るはず。
そこにブレークポイントかDBGPRINTF置いて、処理がそこに行ってないようであれば、
キーイベント検出の前に何かのコントロールのハンドルイベントでTRUEを返してる可能性有り。
ちなみに俺はW21Sなんだが、ジョグダイヤルでもちゃんと検出できてるぞぃ。
272 :
デフォルトの名無しさん :04/11/11 15:44:32
>>267 タイマーって何ぞや?
普通にキーイベントを取得するだけなら、タイマーとか必要ない筈だが。
アプリのHandleEventで、eCode==EVT_KEY、wParam==AVK_UPとかを検出すれば出るはず。
そこにブレークポイントかDBGPRINTF置いて、処理がそこに行ってないようであれば、
キーイベント検出の前に何かのコントロールのハンドルイベントでTRUEを返してる可能性有り。
ちなみに俺はW21Sなんだが、ジョグダイヤルでもちゃんと検出できてるぞぃ。
>>267 俺の方は70msでちゃんとキーイベントが来てたからタイマーの間隔は大丈夫だと思う。
>>271 タイマーコールバックを短い間隔で回すとキーイベントが来ないことがあるってなかったっけ?
>>273 ん〜タイマーは数秒以上でしか使ってないからわからん。
後は任せた。
>>268 >AVK_UPとDOWNでおk。
それだけ分かっただけで助かります。
ありがとうございました。
原因は別の所に…;
>>269 >ラボ行って試せ。がんばれ
それが一番なんですが、何せここは北海道…
もうすぐ雪が降りますわ…_| ̄|○
>>271-272 >タイマーって何ぞや?
製作中のアプリがゲームなので、
ゲームループ回すのにタイマーを使用してるんですよ。
んで、ループの頭で押しっぱなしやらを判定してます。
>ハンドルイベントでTRUEを返してる可能性有り。
他機種の上下キーによる動作は大丈夫なんで、
問題は無いかと…。
アドバイスからすると取得は問題なさそうなので、
違う箇所を検証してみます。
また何かあれば宜しくお願い致します。
>>267 あー、たぶんキーを押したとかのフラグ処理が悪い。
RELEASEのときに押したっていう情報は残らないで
そのキーが押されていない状態になるっていう処理になってないか?
277 :
デフォルトの名無しさん :04/11/11 17:26:40
質問させてください Brewでゲームを開発しているのですが 「A5503SA」にてIWebで通信後、ゲームのスピードが重くなる 現象がでます。 他の機種(A5501T等)では、ゲームスピードが変わることはないので リリースのミスなどはないと思うのですが 同じような現象で対応策などありましたら情報を宜しくお願いします。
278 :
デフォルトの名無しさん :04/11/11 17:33:39
>267 端末仕様書を見れ どのキーがどのイベントに対応してるか載ってますよ あと時間を窮する質問は掲示板ではしない法がよいかと思われ
>>267 BREWはキー押しっぱなしだとEVT_KEYイベントが断続的に発生するから
キー押されたらフラグ上げる
→タイマーイベントでフラグをチェック+処理
→フラグをクリア
→タイマーセット
でいいと思うが。
わざわざRELEASE拾う必要なくね?
>>276 >RELEASEのときに押したっていう情報は残らないで
>そのキーが押されていない状態になるっていう処理になってないか?
あー、ビンゴです…;
要は
EVT_KEY_PRESS 押したキーフラグ取得
EVT_KEY_RELEASE 放したキーフラグ開放
だと、
ゲームループ内で押しっぱなし等の確認処理を行う前に
フラグが消えている _| ̄|○|||
ってことでOKですか?
大体ソースが見えたな。 タイマーにかからないタイミングでキー連打したら、 全く動かないゲーム作ってるって事かw
>>270 欲しいなそれ。
むしろ作りかけの物をとりあえず公開して、
ああしようこうしような風に仕上げていっても良いかも試練。
へっぽこなモンだったら漏れも公開できますが。w
全てはへっぽこから始まる
いいね、フレームワーク。 皆でやっちゃいますか?
賛成。 STLPortの移植も…
ちっちゃい独自関数でもあると便利なんてのもありですな
今更かもしれないけど、自分はジョグだけはEVT_KEYで取ってた
BREWのバイナリサイズに上限はありましたっけ? STLPortのライブラリをリンクすると結構でかくなりそうな気がするんですが
>>289 mod,sig,bar等とアプリが作成するファイル
全部含めて200KB(QVGA対応機は300KB)。
291 :
デフォルトの名無しさん :04/11/12 10:21:41
>>289-290 ストレージも、シェアも・・・
関係するファイルサイズ全て含めて200,300KBですよね。
タイマーのコールバック間隔とキーイベント破棄の関係について サービスガイドに載ってる注意書きから抜粋。参考までに。 ※ BREW2.1 対応機種では、50ms 程度の短いタイマ間隔でコールバックを繰り返すとキープレスイベ ントが破棄される場合があります。 タイマ間隔を長くするなどのアプリ側でのチューニングが必要となりますのでご注意ください。
modてギャクコンできないのかな うっかり古いソースを上書きしてもうた
一般にオブジェクトコードからCレベルのソースを復帰するのは至難の業。
とっとと思い出してコーディングした方が速い っというか、仕事でやってるならバックアップぐらい とっとけよ
>>293 30フレーム/秒は不可能というわけか。
良い機会だからCVSの導入または、毎日一回自動でバックアップを取るバッチを作るといいと思うよ。 ちなみにそう言うときはファイル名は backup-yyyymmdd.zip みたいにしてある程度世代管理してもファイル名がかぶらないようにすると良い。
>>297 可能だと思う。処理しきれない速度でイベントが到達すると、
many callbacks pending とか何かでイベントが破棄されるだけ。
だから、一回の処理が10〜30ms程度で完了するのであれば、30fpsは実現可能。
>>293 の言ってるキープレスが破棄されるってのは、イベント処理待ちが多すぎて、
せっかく届いたキーイベントが無視されるってわけ。
だからタイマー間隔が長くても、一回の処理が遅すぎると結局キーイベントを取りこぼす可能性大。
300 :
デフォルトの名無しさん :04/11/15 17:23:05
エンドキーって終話キーとはちがうのですか?
301 :
デフォルトの名無しさん :04/11/15 17:45:05
Windowsみたいにメッセージをメインループ側から受け取る事ってできるっけ? 「秒間30フレーム」は可能かもしれないけど、 タイマー使うメッセージループて時点で「1/30秒で回ってくるメインループ」は 不可能な気がするんだが。処理が追いつく前提でも。
>>300 エンドキー=終話キーで、多分あってると思う。
>>301 確かに。出来たとしても、なんちゃって30fpsだな。w
Smallフォント対応機種向けのBREWアプリで、 Smallフォントを使用する方法はあるのでしょうか? enumで定義されてる AEE_FONT_〜 らには、それらしきものはないので、無理かと思いましたが、 どこかでエクストラスモールフォントを使用する方法を 見かけたような気がして……。
スマンカッタ、FAQだけだとわけわからんな 開発支援サイトのFAQと端末仕様のpdfを参照すれ どれかのフォントと排他なんで使いづらいかもよ
プログラミングガイド50ページ以降嫁
>>304-305 ありがとうございます!助かりました。
既存フォントと差し替える形で使うのですね。
>>306 すみません、目視&検索で探しては見たのですが、
読み落としてしまったみたいです_| ̄|...○
そうなんだよ、一度読破しておかないとダメなんだよ。 検索や目視でひっかからないことがおおい。 「どこかにそんなこと書いてあったなぁ」というのだけが頼り。
>>301 >>302 マルチタスクの環境(BREWもカーネルがアプリの実行をスケジュールしてるから
これにあたるよね)でなんちゃってじゃないFPS管理なんてできないでしょ。
なんちゃってでも、処理速度が追いついてれば概ねその通りに動くんだから普通は30fpsといえると思うが。
#まあ実際現状の端末では30fpsでまともな処理は難しいと思うが
ちなみにBREWのコールバックって種類が多すぎ&統一性があまり無いから困るね。
さらにタイマーとか優先度が高いコールバックがあると、imageのデコード終了とかのコールバックは後回しになっちゃったりするし。
いっそのことVxWorksでも入れてくれると良かったんだが。
検証項目?のMALLOC後の戻り値を見るってやつなんですが みなさまどういう実装してます? これ後から気づいて。。 いま char *a() { return (char *)MALLOC(128); } のような関数あるんですが。。どうしよう。。
311 :
デフォルトの名無しさん :04/11/16 15:12:08
>>310 ぬるぽだったら終了させればいいんじゃねーの?
ITmedia記事より。 > 価格は年間使用権契約で、1ライセンスあたり100万円弱を想定している。 > キャリアや端末メーカーから、アプリケーション開発やコンサルティングを > 受託し、初年度5億円の売上げを目指す。 えーと...。
KDDIのアプリ企画審査って厳しいんですか? 普通に動けばいいってもんじゃない?
この流れで1分でガッされるのか・・・
すみません、315書いてリロードしたらすぐ上のカキコが目に入ったもので脊髄反射で...。
ぬるぽで終わらせたいんですが メッセージ出してうんぬんかんぬん。。。だとかなり直さないといけないので どうしたものかと思ったのですが〜 やはり地道に書くしかないみたいですねー
>>320 今度もガッ
よく分かりませんがエラー発生時にメッセージ出さずにいきなり終了はNGですよ。
メッセージ出してなんかボタン押されたら糸冬了ってシーケンスにしとかないと。
>>317 そりゃもう。
基本的に何処のルーチンに於いても、 エラー検出して異常終了(再開)できる出口用意しといた方がいいと思う。 つかそれが普通だと思う。 ぬるぽ検出したら、上の出口につなげるだけ。 MALLOC以外にも、動的にメモリ確保する箇所は山ほどできるぞ。 つーかpngなりjpeg使う時点でヒープ使うし
むー結構大変ですねー とりあえず終了用のclassを改造してみます。 ありがとうございまっした
>>322 (´-`).。oO(終了メッセージ出すとこでぬるぽしたらどうするんだろう)
>>324 終了用ダイアログ(IDialogでは断じてない)は最初に用意しておく、が正解。
最初にそれすら確保できないようなケースは知らん。
a = MALLOC(1); b = MALLOC(2); c = MALLOC(3); 例えばこんなコードでcでエラーが起きた場合、 aとbもFREEしないといけないんですよね。。。 めんどーひ
BREWのFONTって、文字の横幅は固定なのでしょうか? 固定っぽいけど、それは機種依存になるのかな? 今後、それは変わらないのでしょうか? だれか教えてください ペコリ
言葉足らずなので追記 可変長フォントなんてのがあり得るのか、知りたいのです。
固定ピッチかプロポーショナルかってことなら、固定ピッチだ。 また、LARGEは何ドット、NORMALは何ドット、という規定値もない。 具体的なドット数は機種によってバラバラなので端末仕様書で確認する。
>>329 ありがとう。
今後、プロポが導入されたとして、
デフォルトがプロポになると困るなぁ・・・って思ってたんだ。
332 :
デフォルトの名無しさん :04/11/16 23:05:46
>>302 >エンドキー=終話キーで、多分あってると思う。
そうですよねthx。
でも検証のPDFのどっかのページに終話キーと
エンドキーが同じページに書いてあるんでつよ
検証の方法も検証してくださいこのバグヤロー
>>326 MALLOCを生で使うつもりなのか?
やめておくべきじゃないかと。
>>334 ええ。何か(変な中断とか)あった時、(1つ1つ解放する)セキニンとるのは鬱陶しいしー
えーじゃぁゴム付きってどう書くんですか?
338 :
デフォルトの名無しさん :04/11/17 12:25:19
>>337 typedef struct _MyData {
char* hogedata;
char* foodata;
...
} MyDatal;
アロケートした領域は↑みたいな奴(開始時は0で初期化)に覚えておいて、
ヤバイときにまとめて開放する関数を用意しておくようにするだけ。
実行途中で細かくアロケートが必要な場合は、
最初にまとめてMALLOCした中から自力で切り出すのも大アリ。
(実行途中で「メモリが足りません」なんてかっこ悪杉)
男なら生だろ!
>>332 大半が使えないキーコード一覧見ると、「AVK_END」と「AVK_POWER」と別にあるよ。
エミュじゃ終話キー押したら即アプリ終了して、キーイベント発生しなかったけど。
端末仕様書には、この点何も書いていない。
つまるところ、「使うな」と言っているように思えるんだが…
使う必要あるの・・?
大変参考になりました。ありがとうございます。
>>340 プログラミングガイドのわかりにくい場所に書いてなかった?
EVT_KEYのイベントをきっちりかけばいいはず
byte a; while(flg) { a = MALLOC(1); FREE(a); }
>>343 ∩___∩ |
| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
終話キーのキーコードはアプリに通知されないので
割り当てられたAVK_XXXの値を意識する必要はない。
終話キーを押した場合、アプリにはEVT_APP_STOPイベントとして通知されるので
そこからアプリの終了処理を呼んでおしまい。
従ってEVT_KEYイベントで「終話キーが押された場合は…」といった処理は書かない(書けない)。
蛇足だが終話キーはキーリピートも発生しない。
>>344 パクッと行け!パクッと!
>>343 \ ∩─ー、
\/ ● 、_ `ヽ
/ \( ● ● |つ
| X_入__ノ ミ a = MALLOC(1); でコンパイルエラー ・・・
、 (_/ ノ
\___ノ゙
/ 丶' ⌒ヽ:::
/ ヽ / /:::
/ /へ ヘ/ /:::
/ \ ヾミ /|:::
(__/| \___ノ/:::
>>343 \ ∩─ー、 ====
\/ ● 、_ `ヽ ======
/ \( ● ● |つ
| X_入__ノ ミ それと無限ルークマ――
、 (_/ ノ /⌒l
/\___ノ゙_/ / =====
〈 __ノ ====
\ \_ \
\___) \ ====== (´⌒
\ ___ \__ (´⌒;;(´⌒;;
\___)___)(´;;⌒ (´⌒;; ズザザザ
>>345 訂正ありがと。カンチガイしてた。
つーかまたBREWやりたいんだけど、しばらくできそうにないや
BREW2.1で3Dをする場合は何が必要になるのですか? OpenGL ESは3.0からですよね? 2.1だとI3Dを使うと思うんですが、どこにもstruct _I3Dの実体が見つからないのですが。
ちとすまん、機種依存情報って何処らへんに載ってたっけ? いつしかExcelの資料見た覚えがあるんだが…手持ちに無いOrz どうもA5505SAでIDISPLAY_MeasureText()が正常な値を返して来ないっぽいんだが。。。
解決しますた。 どうも全角でも半角の幅が帰ってきてるっぽいんで、 半角のサイズ×2で誤魔化した。 他の機種は大丈夫だったかな… 何か情報あったらお願いします。
>>349 I3Dをサポートする端末は国内に無い
なお、I3Dは"AEEINTERFACE(I3D)"というマクロで定義されている
OpenGL ESは別にBREWのバージョンとは関係なく端末でライブラリを実装すれば
2.1でも動く
しかしいずれにせよエイチアイのMascot CapsuleがBREW上に実装されている以上
これらのライブラリを直接呼ぶ必要性は普通は無い
>>352 つまり、現状で3Dを使ったアプリを作る場合は
Mascot Capsuleを使うしかなようですね。
ありがとうございました。
>>350 A5505SAでIDISPLAY_MeasureText使いまくりのアプリを
作ったけれど、そんなバグはなかったし、検証も通ったよ。
他機種でも同一バイナリで問題なく動いているしなあ。
>>350 俺もA5505SAでIDISPLAY_MeasureText使ってたけど検証は通ったよ。
自分で実機では見てないけど変なとこあったら言われてるだろうし。
違うところに原因があるんじゃないかなぁ・・・。
>>350 ついでだけどA5505SAの機種依存でIDISPLAY_MeasureTextのはなかった。
まさかAECHAR型を渡してないってオチじゃないよな?
あれれ・・? ソース抜粋してみる。 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(だったはず)では正常な値が帰ってくるのを確認済み。 なので機種依存かと思ったんだが・・・ プログラミングガイドの何処か見落としたヨカーン
追伸。 strの定義からfontH求めるまで20行ほど省略してるが、この間変数には一切触れてない。 '※' を全角スペースや、他の全角文字も幾つか調べてみたが軒並みアウト。 ついでにIDISPLAY_MeasureTextExも試してみたが、結果は同じく9ピクセルが帰ってきた。 で、半角文字を入れても9ピクセルが帰ってきたんで、それを2倍して対応しますた。 ここで取ったフォントサイズを元にメッセージボックスやら何やら作ってたんで致命的だったのよTT
>AECHAR str[] = {'※', '\0'}; チカラ抜けたよ… ダメに決まってんだろー
何が悪いのかわかってないんで、ダメな理由教えていただけると…
あー、なるほど。 先の初期化方法だと、全角文字はバイト列逆に入力されちゃうのか。 いやむしろAECHARが逆に扱ってるというべきか… デバッグ出力でも確認できたんで納得した。 S5506Tもエミュもタマタマ動いていただけっぽいな。 ご迷惑おかけしますた。
書き忘れ。
>>360 ,362
夜遅くまで付き合ってくれてサンクス。
助かったよ〜
>>350 なにかと面倒なことは多いけどがんばれー
IMEDIA_SetAudioDevice(pMe->m_pMedia, AEE_SOUND_DEVICE_CURRENT)で EUNSUPPORTEDが帰ってきます。 これを設定できなくても一応実機エミュともに正常っぽく音がなっているので ほったらかしてるんだけど、まずいですか? しかしSDKドキュメントのIMEDIA_SetMediaData()と IMEDIA_SetAudioDevice()の説明って何で同じなんだ・・・
>>367 設定しなくていいんじゃね?
KDDIの事前検証チェックシートには
AEE_SOUND_DEVICE_CURRENTか指定しない状態にしろって
書いてあるっぽい。
>>368 ありがとうございますー。心置きなく無設定にすることにします。
370 :
デフォルトの名無しさん :04/11/22 15:07:37
>>363 つーかエンディアンがどうこう言う前に、AECHARの中身の文字コードは端末依存だぞと。
ちゃんとSTREXPAND使って変換しないと危険だと思うが。
>>371 心配かけて申し訳ない。
>>358 のソースは文字サイズ取るためだけに使ってるんで、ああいう初期化をしただけ。
なので他の場所ではSTREXPAND()使ってるから問題なし。
今はISHELL_LoadResString()で遊んでます。
>>371 いやそれでも問題だと思うが。
SJISで全角コードを設定してもそれが半角文字になってしまう可能性は否定しきれないだろう。
まあ固定ピッチフォントである保証もないので、突き詰めると色々問題ありな分けだが。
特定の端末でうまく動けば良いということなら止めはしないが、個人的にそういうのは余り好きじゃないな。
#そういう考え方で作られたプログラムを別プラットフォームにコンバージョンするという仕事を何度もやらされたんで
>>373 多分
>>372 のアンカーミスだよな・・・
対処は351に書いたが、全角のsjisコード書いたなんて言った覚えは無いぞ。
固定ピッチでなくなったケースなんぞ知らん。
てかそういう仕様なんで、こちらとしてはどうしようもない。
別プラットフォームも最初から想定していないから大丈夫だと思う。
そう思いたい ○| ̄|_
武竜を使いこなすには約五年間に渡る苦行を修める必要があります
武竜って生まれてどれくらい経ってるっけ・・?
>>374 ごめ、アンカーミスってたね^^;
>AECHAR str[] = {'※', '\0'};
って普通にWindowsで書いてコンパイルしたらSJISコードが入ると思うが。
で、エンディアンの修正とかやってもコードは変わらないと思う。
普通にchar配列として初期化してSTREXPANDしたほうがいいと思うよ。
>固定ピッチでなくなったケースなんぞ知らん。
現状は存在しないと思うが、将来にわたってそうだという保証は無い。
まあ、おまいさんが今動けばよいというのは良いのだが、想定以上に長いことソースが使われることは良くあること。
で、現状ではOKって考えで作られたソースを後から直す羽目になる人のことも考えといたほうが良いぞというのが漏れのアドバイス。
#結局自分で治す羽目になることだってあるわけだし
つまるところ、サブルーチン一つ作って、常に描画文字列の幅を測定してから適切な位置に描画するようにすれば良いだけだし。
そういうのがスマートなコーディングだと漏れ的には思うが。
まああくまで私見なので、気に入らなければ無視してつかーさい。
言っている事には全く同意なんだが… 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でも動くのに・・
コードサイズがキツキツとか?極小の中の人かな。
そもそもHelloBrewでああいう初期化がされているので、 諸悪の根源と思っていない &1バイト文字でエンディアンに依存にするケースが想定できない &無駄と思えるコードは最小限に抑えたい(趣味) というのが変更したくない理由。 何かトラブルメーカーみたいなんで、素直にSTREXPANDに変更しときます。 まだちゃんと納得してないけど… ご迷惑おかけしますた。
>>378 結局半角x2にしたんならそれほど問題はないと思う。
#とはいえ特に問題なければSTREXPANDしといたほうがベターだとは思うが
この部分が分からなかったので「全角コードでのAECHAR初期化は危ない」と言いたかっただけだから。
固定ピッチ依存についてもそういった理由があるのならまあ現状仕方ないかと思う。
>>379 >諸々わかってて…
程度の問題だろうね。
上でも書いたように、半角ASCIIでAECHAR初期化とか固定ピッチ依存とはいえクリティカルでない
のなら漏れもそれで良いと思うよ。
いまやってる仕事で端末性能に依存したゲームのコンバージョンやらされてて、動きが早すぎるとか言われ、
「じゃあ理想FPS教えて」と言っただけで逆ギレされたりしていたんで、端末依存に過敏に反応しちゃったかも。
>一行 STREXPAND 書くだけで…
同感。
ちなみに漏れはC++使ってるんで、文字列クラス作って自動変換されるようにしてる。
BREWを実機に落とせるようにするにはKDDIに認められなきゃならない事はわかったけど 一体いくらかかって、どういった壁があるんでしょうか?
383 :
デフォルトの名無しさん :04/11/26 01:05:31
ほしゅ
384 :
デフォルトの名無しさん :04/11/26 17:55:33
>>382 ケーブル2000円
ARMコンパイラ15万円
KDDIに企画申請プライスレス
>>385 検証2回までは無料、3回目でブラックリスト?
提出するバイナリはちゃんとARMコンパイラ買ってコンパイルしないといけないんでしょうか。
>>386 GCCでもおけぃ。
ただしモジュールサイズでかめ気味になるかも。
>>388 ありがとうございました。GCCで行きます。
CPとしては検証に落ちることそのものが論外、理由は開発支援サイト見れ。 たとえ発売時期が遅れたとしても、可能な限り完璧にしておこう。
392 :
デフォルトの名無しさん :04/11/28 02:54:49
は?
しおりないのはやっぱつらい・・。
エミュレータで起動中にMemory クラプション?クランプション? エラーというのが発生してリセットされます。 これってどういう時に起きるエラーなんでしょうか?( ´・ω・`)
>>394 メモリ壊してる(確保していないアドレスに書き込んでる)ってことじゃないかと。
#メッセージは詳しく覚えてないけど
エラーメッセージは忘れたがエミュレータ起動中のエラーならこういう可能性も。 − mifはあるけどdllがない − mifとdllを置くフォルダ構成が正しくない − mifとdllでファイル名が違う
>>395-396 ありがとうございました。
>>396 確かに何かを壊しているんじゃないかという雰囲気はしてました( ノω・`)
>>396 そういう場合も発生するエラーなのですか・・・。
今回の場合、アプリにある機能を増やすまでは発生せず、
追加した関数(配列を頻繁に使用している)で発生してるっぽいので、
どうも配列外にはみ出して読み書きしている可能性が多そうです。
>>397 いや、「エミュレータで起動中に」とあったのでメニューからアプリを選んで
起動したとたんに起こるエラーを挙げてみただけ。
>>397 を見るとどうやらアプリ「実行中」のエラーのようだから
>>396 のことは無関係だ。
>>397 >追加した関数(配列を頻繁に使用している)で発生してるっぽいので、
ちなみに、実機ではスタックがかなり小さいのである程度で買いサイズの配列を
スタックに採っているとリセットかかる。
MALOC等でヒープに確保しないとダメ。
ただ、エミュではそんなこともない(普通にWindowsのスタックサイズ制限になる)
ので原因はそこではないと思うが。
原因であろう関数がほぼ特定できているなら(そしてエミュで問題が発生するのなら)
普通にステップ実行すればどこでおかしくなっているかは分かると思うが。
>>399 重ね重ねありがとうございます。
心当たりの関数は、ヒープに確保してあるデータテーブルから
ループで順々にデータの読み書きをしていくものです。
何かの変数が、ある範囲のとき、どこかのテーブル参照で
ループオーバーかデータ取得異常をおこしてる予感が
ひしひししています。
虫の生息域はきっとその関数内なので、地道に虫探しに行ってきます。
テーブル多いよ大きいよ ○| ̄|_
APIのドキュメントを読んだけど、 スレッドの生成方法がよくわからない。 どうやって生成するのか知ってる人教えてください。
>>401 2.1じゃサポートしてないんじゃなかったっけ?
フォーラムに載ってた気がする。一度確認することを
勧める
403 :
ロロ :04/12/01 01:42:50
>>402 2.1 でスレッド使えるよ。undocumented だけど。
2.0 は使えない。
404 :
デフォルトの名無しさん :04/12/02 12:55:37
// goto使えるんだね hage: goto hage;
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() とかとか こういうかったるいことをやらなくちゃどーにもならないのだろうか。
う〜ん、ほんのちょっとだけ ITRANSFORM_TransformBltSimple() の方が楽そうだなぁ・・・
Blt周りは特にグッチャングッチャンの設計だな。
エミュレータの出力ウィンドウに表示される 警告の意味がわかりません。 ↓の内容なんですがどなたかわかりますか? アプレット起動したときに表示されます。 WARNING: App Callback Pending(数字)
410 :
デフォルトの名無しさん :04/12/03 18:39:32
ファイルシステム残量チェックと ヒープ残量チェックって関数あります?
IFILEMGR_GetFreeSpace IHEAP_GetMemStats
JavaアプリをBREWに移植中。描画方法でアドバイスが欲しい。 このJavaアプリは処理ループごとに差分描画で画面を描いている。 BREWでサスペンド→リジュームが起こったとき、差分描画の方法では サスペンド発生時の画面全体の描画内容が復元できない。 サスペンド発生時に画面内容を、画面と同サイズのビットマップに描画、 リジューム時にそれを画面に描画し直せば元通り…と思って試したら サスペンドに入るときの砂時計マークまで描画されててダメ。 (サスペンドが発生すると、まず端末側が砂時計を描画して、それから アプリにサスペンドが通知される模様) サスペンド時の画面を復帰させるのに、皆さんはどうやってますか? 1.差分描画しないで常に画面全体を描画している。 2.オフスクリーン(画面サイズのビットマップ)を用意してそこへ 描画(差分描画)、それ全体を画面(デバイスビットマップ)へ転送。 …これだと文字を書くのにどうするか? 3.差分描画を基本とするが、リジューム時はシーンごとに個別対応で 画面全体を描画し、その後また差分描画を続行する。 4.その他。
>>410 ヘルプを読むと、GETFSFREE()、GETRAMFREE() も使えるのかも?
BREW 2.1 以降だし、使ったことないけど。
>>412 1、問題外。
2、IDISPLAY_SetDestination() を使用すれば文字も描画できるのでは?
3、シーン毎っちゅーのが分からんが、漏れならこっちでやるなあ。
4、砂時計が描画される部分だけ描画時毎に保存して...(w
>>413 >2、IDISPLAY_SetDestination() を使用すれば文字も描画できるのでは?
それはそうなのだが、デバイスビットマップを入れ替えるとクリッピングや透過色の指定が
クリアされるので、それらを使っていると面倒なことになる。
また、タイミング悪く、入れ替えてる間に砂時計が描かれてしまうこともあり得る。<考え過ぎか?
何とかIDISPLAY_SetDestination()を使わない方法を考えているがうまくいかなくて…
>3、シーン毎っちゅーのが分からんが
ステージ開始したとき、クリアしたとき、ゲームオーバーになったとき、など、
描画内容が大きく変わる区切りを指す。説明不足スマン。
これは確かな方法だと思うが、上記シーンごとに画面復元の処理を入れていくことになり、
作業量が増えるのでちょっと躊躇ってる。<ヨワッ でもやはりこの方法なのかな。
>4、砂時計が描画される部分だけ描画時毎に保存して
砂時計が描かれてからEVT_APP_SUSPENDが通知されるので、そのときには
砂時計が描かれた状態を保存してしまっていて結局ダメで…
413さんthx. 他の方のアドバイスもいただきたいです。
>>412 漏れは2の方法で復帰させてる。てか1と2の複合か。
(ゲームじゃないが、画面全体が頻繁にスクロールが発生するアプリでスクロール分を差分描画)
1.IDISPLAY_SetDestination()でオフスクリーンを指定
2.クリッピング、描画など
3.IDISPLAY_SetDestination()でディスプレイを指定
4.オフスクリーンをディスプレイに描画
5.IDISPLAY_UpdateEx()で画面更新
の繰り返しで。
砂時計はディスプレイに描画されるので、オフスクリーンの方は大丈夫。
結局毎回画面全体を更新している訳だけど、DDBの上書きだけなら結構な速度が出るよ。
S5505SAで約20フレーム確認。それ以上は試す必要なかったんで計ってない。スマソ
>>414 4. は、412 氏が上手くできなかった SUSPEND 時保存の改善案。
(1) アプリ側の描画時に砂時計がでるはずの部分だけ保存
(2) SUSPEND 時で全画面保存
(3) RESUME 時に (2) で保存したものを描画
(4) 同じく RESUME で (1) で保存したものを (3) に上書き
問題は、各機種毎に砂時計の出る位置やサイズが違う気がする
ってことかなあ?…速度的には悪くないと思うけど。
415氏、416=413氏、具体的な内容で参考になりました。助かります。
>>413 の2番をふまえて
>>415 の方向で考えてみます。
変に考えが凝り固まっててオレの頭がサスペンド中ってオチなのか…
418 :
デフォルトの名無しさん :04/12/05 21:55:19
透過処理とかの絡みでDDBitmapを直接弄ってるけど遅い。 asmで書き直してる人とか多い?
419 :
デフォルトの名無しさん :04/12/06 12:29:56
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使ってる
移植性とか考えると音はやっぱ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じゃなかったか?
エミュレータでは問題なく動いてるアプリが 実機でいきなりMemory Accessで落ちるんですけど 原因って何でしょう? 処理を全部コメントにしてreturnしていても 場所によってエラーになるんですが。。
>>427 奇数番地をまたいでのwardアクセスとかじゃないか?
429 :
デフォルトの名無しさん :04/12/08 23:35:19
タイムクライシスで半透明やってるんだけどどうやってんですか!
>>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) という感じにしてます。
>>428 初歩的質問でもうしわけないのですが
奇数番地をまたいでのwardアクセスってなんでしょう。。。
>>430 ヒープは残っててMALLOCの戻り値もチェックしてます。
クリーンしてみたのですが変わらず。。
デバッガについて質問です。
エミュレーター上でVC++のデバッガーを使いたいと思い
ttp://www.s-cradle.com/developer/technicalqas/tqbr/index.html#q0049 に書かれている方法を試したのですが
'(パス)\BREW_Emulator.exe'にはデバッグ情報がありません。続行する場合は[OK]を押してください。
というメッセージボックスが表示されてしまい、続いて
1つ以上のブレークポイントが設定できませんでした。これらのブレークポイントは無効です。実行プログラムはプログラムの始めで停止します。
というメッセージボックスが表示され、デバッグできません。
プロジェクト(P) -> 設定(S) -> リンク - カテゴリ - 一般 のデバッグ情報を生成する(G) にはチェックが入っています。
どうしたらステップ実行等が可能になりますか?
環境はVisual C++ 6.0 BREW SDK 2.1.1jです。
宜しくお願いします。
435 :
デフォルトの名無しさん :04/12/09 12:49:19
>>434 プロジェクト→設定→デバッグでデバッグセクション実行可能ファイルに
エミュ.exeを入れればおk
あと質問なのですが
みなさんリソースファイルに埋め込んだ音声ファイルは
どのようにして再生してますか?
>>433 wardはwordの書き間違いでそ。
アライメントの問題。バイト(8bit)アクセスならどんな
アドレスでもアクセスできるけど、ハーフワード(16bit)は
2の倍数、ワード(32bit)は4の倍数のアドレスでしかアクセス
できない。
ARMはこれを間違えると例外が発生する。x86はアライメント
気にしないでも処理は一応動く。
# ちなみに、ARMでも例外発生しないものもある
うーむ。 メモリまわりは全く知識が無いのでチンプンカンプンです。。 いま途中まで動いてる部分はまぐれっぽいですね。 大変そうだ
>>437 アライメントと決まったわけじゃないしな。
単純にメモリ壊しているだけかもしれん
アライメント問題はこんな感じ
----
uint16 buf1[10];
uint8 *p1 = (uint8 *)buf1; *p1 = 0;
p1にアクセスするのはOK
uint16 *p2 = buf1; *p2 = 0;
p2にアクセスするのはOK
----
uint8 buf2[10];
uint8 *1 = buf2; *p1 = 0;
p1にアクセスするのはOK
uint16 *p2 = (uint16 *)buf2; *p2 = 0;
p2にアクセスするのはNG★
例え動いたとしても、偶然buf2が2の倍数のアドレスに
配置されてたってだけ
コレをやりたい場合は、アドレス調べてうまくいくよう
自分の処理を調整するか、_packed、PACKEDとかでコン
パイラに教えてあげる必要がある
>>431 MIF ファイルに権限がないとか良くありがちな罠。
てかメモリ周りわかんないでどうやってC書くんだ?
441 :
デフォルトの名無しさん :04/12/10 03:15:29
427とそれへのレスを見て思ったのだが、 情報が足りてない質問に憶測で答えていても解決は遠いと思う。 「エミュレータで動いて実機でMemory Accessエラー、原因は何?」とか 「処理を全部コメントにしてreturnしていても場所によってエラーになる」とか ソースを出さずに言われても意味不明。 エミュレータで期待通りの動作をして実機で動かないなら、ビルド環境の問題 かもしれないし。(←と、当てずっぽうになってしまうわけだ、情報が足りないと) 427はせめてその疑ってる付近のソースを(可能な範囲で)晒してみたり、 ARMかgccか、makefileはBREW Addinsの自動生成のか、自前で書いたものか、 とかの情報を出してみてはどうか。
ごめんなさい解決しました。。。 なんと問題はフラグの初期化し忘れでした。情けない。 int型をとってTRUEかFALSEかで使ってた部分で落ちてました。 メモリについての知識もほとんどないので 難しいコードも組んでないし、メモリ周りのエラー起きないですよね。 皆様たいへん勉強になりました。 ありがとうございました。
なんか、ISocket での通信が妙に遅い(1kbpsとかしか出ない)んだけど、一回の送信データって何バイトぐらいが良いんだべか。 ちなみに今は、512バイト単位で送ってる。 au網のパケット長は128バイトだった気がしたが、ヘッダを除いた際の適正サイズがわからん。 buf = new byteBuffer(512); socket->Write( buf.GetBuffer(), (short)buf.GetSize() );
445 :
444 :04/12/13 15:08:33
あぁ、サービスガイド見たら、1秒間での ISocket_Write() は2回までって書いてあるな。 普通に128バイトで送ったら2kbpsじゃん。 送信サイズでっかくして再挑戦してみま。
>>443 難しいコードが
>>438 で挙げてある程度のコードを指すのだとしたら、油断しすぎか経験
少なすぎ。Cである以上メモリ処理はついてまわるし(特に携帯みたいにヒープの少ない
環境だとね)、知識がほとんど無いとか言ってる場合じゃないかと。
>>434 「デバッグ情報がありません〜」のメッセージは出る。「次回から表示しない」のチェックを
入れてメッセージボックス自体を殺してしまってOKなはず(これはEmulator.exeのシンボル
ファイルが無い、という警告なので出て当たり前)。
あとはビルドがリリースモードになってないか確認。
サーバから落ちてくるpng画像を読み込む方法って、 一度ファイル名つけて保存→ISHELL_LoadImage() しかないかな? 今まで同一フォルダにプロジェクトと実行ファイルまとめてたんでメンドクサイ(ノД`)
448 :
デフォルトの名無しさん :04/12/13 22:08:16
>>447 IMemAStream 使えばいいんじゃないか?
久しくやってないのでうろ覚えだけどISourceをIAStreamに変換 できなかったっけ? ISOURCEUTIL(間違ってるかも)とかで
>>450 情報サンクス。
ダウンロード完了するまで待ってISourceからbyte配列にデータ格納するクラス作っちゃったんで、
IMemAStreamの方が都合よさそうです。
調査不足を痛感・・・頑張らんとなぁ
452 :
435 :04/12/14 13:34:30
>>441 遅くなりましたがありがとうございましたです。
453 :
デフォルトの名無しさん :04/12/14 13:44:39
もしかしてBREWってExtern使えないの!?
使えてるけど?extern
ところでしーばらくBREWから離れているんだけど、少しは環境よくなりました?
プロジェクトに美女が2名参加しました(゜∇゜)
>>456 それは幻覚の一種だ。
治し方は知らんが。
459 :
デフォルトの名無しさん :04/12/15 16:27:16
1000個程度の整数の定数表を格納したいのです。 staticな配列に初期時に格納できるばよいのですが、 BREWでは当然無理なことで、何かよいアイデアはないでしょうか?
IFILEMGR_Removeで失敗することあるのかな? 同名のファイルを上書きできないから、まず消さないといけないでしょ? 失敗したらどうすればいいんだ? if (IFILEMGR_Remove(pMe->fileMgr, "test.txt") != SUCCESS) {}
>>459 ん? constな定数表なら普通にスタティック/グローバルに持てるよ。
変数は無理ぽだけど。
462 :
デフォルトの名無しさん :04/12/15 18:41:32
>>461 あ?確かに「global/static変数」と書いていました。
どうもありがとう。
>>460 >同名ファイルを上書きできない
いやできるんじゃないの?
IFile *pf = IFILEMGR_OpenFile(pMe->m_pIFileMgr, "hoge.bin", _OFM_READWRITE);
IFILE_Write(pf, data, sizeof(data));
OpenFileの時点でファイルポインタが先頭だからそこから書き込み。
200Byteのファイルに100Byteだけ書き込んで末尾を切り捨てたければ
IFILE_Truncate(pf, 100); // 100バイト以降を切り捨て
とかやってやればいいんでないの?
実際には、存在しないファイルを_OFM_READWRITEフラグで開こうとするとエラー返してくるから、そこから
_OFM_CREATEで作成試行してそれでも駄目ならファイルシステムエラーとして扱う、みたいな処理が必要
になるけど。
464 :
デフォルトの名無しさん :04/12/15 23:29:34
>>455 しばらくがどのくらいかしらないけどSDKのインストールは楽になったよ。
あいかわらずダウンロードはできないけど入力するのはメールアドレスのみ。
そんくらいかなぁ・・・
>>463 同名ファイルの上書きはたぶんそれでできるね。
つーか、オレも_OFM_READWRITEで
きちんと上書きできるの確認したことある。
466 :
デフォルトの名無しさん :04/12/16 01:14:47
BREWのデータ個人の携帯に転送して俺アプリ作成したいんだけど、 やっぱ無理?ハックしてる人いない?いっしょにハックしてくれる人でもいいけど
無理
>>460 ファイルをOpenしたままだとRemoveできないね。
まあこれはアプリの側で知ってるはずだからきちんと管理しる。
>>463 困るのはRenameで名前がかぶる時かな? そんなことするかどうかは別にして。
469 :
デフォルトの名無しさん :04/12/16 12:58:21
IHTMLVIEW で <table> を使用したことありますか? エミュレータで実行すると無視されるようなので、 ひょっとすると使用できないのかもと思ったんだけど。
470 :
デフォルトの名無しさん :04/12/16 13:10:52
失礼 IHTMLVIEW -> IHTMLVIEWER です。
>>469 サービスガイド巻末に利用可能タグ一覧載ってるぞ。
472 :
BREW男 :04/12/16 19:14:18
BREW APIで、送受信メールデータにアクセスすることって可能ですか?
473 :
BREW男 :04/12/16 19:16:25
送受信メールを消去したいんですけど、誰か教えてくれませんか?
474 :
BREW男 :04/12/16 19:18:41
BREWから自動で一般電話回線に発信したいのですが、方法を知ってる方いらっしゃいますか。 質問ばかりですみませんが、よろしくです。
モチツケ
476 :
デフォルトの名無しさん :04/12/16 20:14:42
>>471 ほんとだ。<p>扱いだと。結局、使えないということか。
でも、たいへん役にたつ情報でした。サンクス。
>>472-474 まずリファレンスとかドキュメントをよく読め。
で、記憶の範囲だがメールフォルダにアクセスする手段は(KDDI拡張にも)無かったと思う。
通話発信はTAPIで可能だが、KDDIでは禁止していたようにも思う。
ってことで、以上をヒントにドキュメントで確認してくれ。
479 :
デフォルトの名無しさん :04/12/19 01:08:10
sig生成ソフトだれかくれ
新参者に2つほど教えてくれまいか。 ・MSPとbrew-supportとCINのアカウントってそれぞれ申請しないといけないの? MSPはあるんだけど他の2つはどうすればもらえるんだろう ・「端末試験モード設定兼解除申込書」ってのが欲しいんだけど、どこで手に入りますか? 駄目元でググって見たけどやっぱり駄目だった
質問です。 IMenuCtlで普通のメニュー(テキストアイテムが縦に並ぶやつ)を表示してる んですが、タイトル表示しろといわれて表示したらセンタリングできない;; なんかセンタリングする方法ってないですかね?
>>481 メニューコントロールなんぞ使わずに自力で作れば?
って思うんだが…
みんなIMenuCtrlとかITextCtrl使ってるモンなの?
漏れは全く使ってない。
テキスト入力が必要なところは全部HTMLだからってのもあるけど。
483 :
デフォルトの名無しさん :04/12/20 20:13:01
作ろうと思うんだけどめんどくさいからとりあえずBREWで用意されてるの使ってるのが俺。 たしかに俺も、あんなの使うなら自作した方が全然マシだと思う。w
>>480 「端末試験モード設定兼解除申込書」…ウチはKDDIの営業からもらったべ
>>484 申込書は貰えましたです。
でもクアルコムIDがまだという罠。
時間掛かるのかな。年明けそう orz
>>482 主に海外向けなのもあって、標準的UIを極力使えというお達しなんだよね。
メニューとかの見栄えって端末によって結構違うから自前で作ると他のアプリとの
整合がどうのこうのと・・・
#外人は日本人の基準からは考えられないほどの○○が多いらしい
まあタイトル部分だけ自分で書いても良いんだが。
とりあえず現状は(トライアル版的位置づけだし)左詰で我慢してもらおう。
日本では「うげー」と思われてても、海外のプロポーショナルフォントの端末で カコイイ文字で見ると「イイ!」っていうケースもあるしね。Series60 の UI とか。
488 :
デフォルトの名無しさん :04/12/21 19:17:16
BRIファイルをダウンロードして書き換えちゃダメなのかな。
489 :
デフォルトの名無しさん :04/12/21 19:19:22
490 :
デフォルトの名無しさん :04/12/21 21:00:14
ITextCtl使わない場合、カーソルとかどうしてるんですか? 漏れも、入力コントロールを使わねばならん場面があるんですが、 ITextCtlだと背景色とか変えられないから、フォーカスがどこに あるのか見にくいので、画像はっつけてその上にフレームなしの ITextCtlおいてみたりしたんですが、どうもイマイチ・・・ エミュだとスモールフォント使えないから、見栄えの確認ができ ないのも辛いね。
491 :
デフォルトの名無しさん :04/12/22 00:43:59
売り物のクロスコンパイラ買うのなんかいやなので、っていうか5ライセンス 買う予算下りなかった。 なのでARM用にgccのクロスコンパイラ構築したいのですがみなさんなんか ナイスなノウハウ持ってませんか?たぶんARMでも3種類チップ使い分けられて いるので、1個環境作って終わりーとかならないと踏んでいます。
492 :
名無しさん :04/12/22 11:27:22
>>491-492 公式見れ。
・・・と書こうと思ったが、なんか公式フォーラムトップしかアクセスできないな。
結論から言うと、GNUDEで(C++も)できる。
一部ヘッダファイルの修正とmakefile自前生成が必要なだけ。
makefileのサンプルもヘッダファイルの修正についてもフォーラムにあるので復旧したら見てくれ。
ただ、GCCでやるとmodサイズがarmよりかなりでかくなる=ヒープもその分消費するので注意。
速度はほとんど同じかGCCのほうが早いくらい。
>>493 実機で動かしてみた?
C++では動かなかったよ。
Hello worldレベルなら動くんだけどね。
496 :
デフォルトの名無しさん :04/12/22 17:36:49
gnudeでbuild出来るもんなら、実機でも動かせる。 俺のところは、gcc(gnude)でテストして、gnudeで出荷しとるよ。
>>495 うちとこは商用レベルのものをGNUDEで動かしております。
勿論実機動作確認済み。
しかし.modのサイズが増えるのはいかんともしがたい…早くARMコンパイラください o rz
>>496 ,497
C++ですか?
当方のテストはCだと動くけど、C++はだめ。
C++だよ
同じくC++。社内ライブラリにクラス使ってたりするので動く、間違いなく。継承・仮想関数・純粋仮想関数もろもろOK。
で、
>>494 にあがってたフォーラム2件見てみたのだが、あそこにあがってるmakefileではC++のコンパイルはとおるだろうが実機じゃ動かないと思われ。
コンパイラフラグとして
-fno-exceptions -fno-unwind-tables -fno-rtti -ffunction-sections
の4つ追加が必要(よって例外とか実行時型判別は使えなくなる)。-ffunction-sectionsは無くても動いたかも。
さらに、ソースコード中どこかに
extern "C" void __cxa_pure_virtual(void){}
の関数、リンカフラグに
--cref
追加。
クラスに対してnew/delete使うならクラスのnew/deleteオーバーロードじゃなく、グローバルスコープでnew/delete/new[]/delete[]をオーバーロードしてやればOK。
うちはこれに気づかず、クラスのnew/deleteオーバーロードしてんのにARMコンパイラ使用時や実機でエラー吐かれるて嵌ったorz
あと、元々GNUDEでのBREWバイナリコンパイルは英BREWフォーラムのtyndal氏の記事が元(だと思う)。
http://brewforums.qualcomm.com/showthread.php?s=bb18a6bbfdca41e8baab0de92c686daa&threadid=1601 ここと、記事に載ってるリンク先を見れば必要な情報は揃うはず(うちはそれでC++環境構築できた)。
501 :
名無しさん :04/12/22 22:43:23
502 :
名無しさん :04/12/22 22:44:00
enraタン復活。
>>500 フォーラムのmakefileのままで実機(au端末)でも動いたよ。C++ね。
まあ、ワーニングは沢山出るけど。
もともとARMで成功していたソースにPACKEDなんかの修正入れただけだけど。
コード的には、virtualは使用、例外実行時型判定は非使用。
ちなみに、その辺の情報持ってるなら公式にもRESしといてあげれば〜
ここだけだと過去ログ見れない人もかなり多いだろうし。
ワーニング
「ウォーニング」と発音する人ってほとんどいないな 「Award」→「アウォード」も ♪せぶん でいず わー、たたかーうーよー
>506 ノシ でも会話してると、相手は「ワーニング」、漏れ一人「ウォーニング」orz
508 :
デフォルトの名無しさん :04/12/30 20:23:32
BREW開発支援サイト落ちてる? 正月休み?
いつも落ちてる
C++で書いてる人に質問。 容量足りなくなりませんか? ゲーム作ってるけど、C++では、容量的に難しい・・・
>>510 例外処理機構とRTTIを切ってないのか?
それ以外ならCとたいして違わんはず。
ウォーニングと言うとダビスタしか思い出せないんだが…
>>506 発音はウァーニング、筆記はワーニング
こういうのって普段プログラムの話しない人は知らないくて仕方ないよね
コンピューラっとは言いにくい
>>510 俺はARMコンパイラだけど、
>>511 と同じように
そんなに差は無い気がする。
テンプレート使いすぎてんじゃないの?
ていうか、大体の事はmapファイル吐かせれば分かる。
517 :
デフォルトの名無しさん :05/01/02 23:42:15
新年早々すいません。 AEEApplet_Newでインスタンス作成したときにIAppletのa.m_pIShellに 明らかに不正な「1」という数字が代入されて例外で落ちる現象で悩んでます。 (NULLでないのが始末悪い) 似たような現象で悩んだことのある人いませんでしょうか?
>>517 AEEAppGen.hへのパスが正しいかどうか、使用しているAEEAppGen.cと
一致しているかどうかを確認してください。
2.0以前と2.1以降ではAEEAppGen・AEEModGenのソースが異なり、
バージョン間で互換性がありません。
2.0のヘッダは2.0のソースと、2.1のヘッダは2.1のソースと一緒に使ってください。
2.1のAEEAppletの定義
struct _AEEApplet
{
DECLARE_VTBL(IApplet)
AEECLSID clsID;
uint32 m_nRefs;// Applet reference counter
IShell * m_pIShell; // pointer to IShell
/*以下略*/
};
2.0での定義
struct _AEEApplet
{
DECLARE_VTBL(IApplet)
AEEModObj * pNext;
AEECLSID clsID;
uint32 m_nRefs;// Applet reference counter
IShell * m_pIShell; // pointer to IShell
/* 以下略 */
};
>>518 ありがとうございます。まさにそれでした。
要するにポインタがずれてリファレンスカウンタの値かなんかに化けてたわけですね。
AEEAppGen.cが2.0相当のものがコンパイルされていたようです。
BREW Switcherのテストしたときにしくじったままになってたのではないかと思います。
お騒がせいたしました。
BREWでRPGゲーム作成に挑戦したいのですが、 マルチスレッドなしで、ユーザーが操作するキャラクター以外を 動き回すことって可能なんでしょうか? ゲーム初心者なのでよくわかってませんが、 あれはシングルスレッドでも十分なのでしょうか?
522 :
デフォルトの名無しさん :05/01/06 10:12:22
タイマで刻めばいいやん
それ以前にBREWの開発環境が無いと見ているがどうだろう
ちょっと教えてください アプリからWebページを開きたいのですが、 IWebを使わないとだめでしょうか? Win32のShellExcuteみたいなのがあれば 教えていただきたいです。
525 :
デフォルトの名無しさん :05/01/06 20:34:25
ISHELL_BrouseURL() つかいなはれ。
526 :
デフォルトの名無しさん :05/01/06 23:59:32
携帯で使うにはAUの承認がいるんですか?
528 :
524じゃないが便乗 :05/01/07 03:07:57
ISHELL_BrouseURL() でブラウザ連携したいのですが。 プログラミングガイドとほぼおんなじソースで ISHELL_BrouseURL() 使ってみたのですが、全く何にもなし。 実機で試してもメッセージひとつ飛んでこないんですが、 何かありがちなミスとかあったりしますか? 関数は通ってるようなのですがエラーも何も出ず、 何事も無かったように動き続けます・・・ サスペンドメッセージも飛んでこないでどうしたものかと・・・
ブラウザ連携はキャリア独自の仕様だから、KDDIならKDDI仕様に準じた方法をとらないとできないよ。 KDDIの日本向けパッチに含まれてるサンプルにあったと思うが。 それともKDDI仕様でやってもだめだってことなのかな?だったら分からんが・・・ ちなみに漏れは主に海外端末のお仕事なので結局これは使えなかった。 から詳しくはしらない。 #結局IWebでアプリ内にブラウザ機能仕込みました 細かいこと考えなきゃかなり楽に実装はできる
ありがとうございます。 とても、いいものを教えてもらいました(゜∀゜)アヒャ リファレンス見ると、まさにShellExcuteですね。 でも、ブラウザ以外使わないから、必要ないけど。 ところで、エミュの設定いじって試すこと出来ませんか? 実機では確認取れたのですが。。。。
532 :
デフォルトの名無しさん :05/01/09 01:44:50
545に期待
533 :
デフォルトの名無しさん :05/01/09 03:41:57
IWEB_GetResponse()を使ってます。 URLには 192.168.0.1/test.jpg という感じで5KBの画像を取り込もうとしてますが、 ISOURCE_Read()を使っても1300byteまでしか読み込めません。 原因わかりますでしょうか?
>>533 ISOURCE_Exhausted() がTRUE返すまでコールバック続けるべし。
既出だったらすいません。 BREW初心者なんですが、三角関数を使いたいときって どうしたらよいのでしょうか?時間がないのでとりあえずは スクリプトで対応表(0°〜359°)を出力して、 ソースに埋め込もうと思ってますが。
BREWの事情は知らないけど、C++なら #include <cmath> std::sin std::cos じゃないの?
無さそうだったので漏れは作った。
>>536 Cで書いてます。
BREWでは一般的に標準Cライブラリが使えないんですが、
C++では使えるんでしょうか?
>>537 そうですよね。したいのは描画位置の計算なんで、
ルックアップテーブルにしといたほうがどっちみち
速いんですが。
どうもありがとござんした。
いやいや、>535と同じでsin()の出力結果をテーブル化して、それを返してるだけ。 ワールド座標を画面中央に固定すれば、多少精度が低くても携帯の画面じゃわからないしね。
関連するところでまたお聞きしたいんですが、 浮動小数点について。ドキュメントを見る限り、 「doubleの変数自体を扱うことはできるが、 (ヘルパーを使わないと)演算はできない」 という解釈でよいんでしょうか。
>537 情報thxです _| ̄|○ 座標なんで、はじめから整数だけ使って 計算のときは100倍してとかして乗り切るしかないっすね。
>>542 がーん、int64 って使えたんだ。
int32+int32 でクラス作っちゃったよ…。
「int64」じゃなくて「__int64」ね。 SPRINTFの%dとかは32bitまでしか表現してくれなかったから、 その辺は自分で作った。 尚、当方VC++6.0で確認してます。 gccはわからん
JAVAだろうとBREWだろうと携帯ならルックアップテーブル使うのが常識でしょうに…。
547 :
デフォルトの名無しさん :05/01/12 00:21:51
ヘェ
>>548 速度求めるなら全部整数化してシフト演算だろ
遅いハードで少数使おうとするのがそもそも間違い。
可能ならば乗除算も控えてシフト演算で代用するのがベター。
BREWのCPU仕様わからんからコレが正解かどうかはわからんけど。
それとURLのソース見てみたけど、これ16bitCPU用だよね・・?
>>550 ARM7コアなら積和演算くらいは遅くない(レイテンシ1〜2cycle)と思う。
定数倍なんかは近代的なコンパイラならシフト+加算に展開されるし。
ARMだと除算命令無いから、定数以外での除算はできるだけ避けるが吉。
グッと遅くなる。
553 :
デフォルトの名無しさん :05/01/12 19:21:51
基本的な事かもしれないんですが、 midi でBGM鳴らして、それに音声をかぶせて 同時再生させる事は brew で可能ですか? qcp ファイル被せてみてるんですが、qcp を 再生すると midi が止まってしまいます。 同じチャンネルで音声再生させようとしてる せいでしょうか・・・すいませんがアドバイス お願いします。ちなみにエミュレータ環境です。
554 :
デフォルトの名無しさん :05/01/13 00:21:36
不可能じゃない?
555 :
デフォルトの名無しさん :05/01/13 03:13:48
556 :
デフォルトの名無しさん :05/01/13 05:22:20
Forumはいつykuboさんがブチ切れるか心配になる瞬間があるね。
>>553 エミュはともかく実機での同時再生についてなら、各端末仕様書に表が載ってるから
それを参考にすることをオススメ。
生暖かく見守ろう
559 :
デフォルトの名無しさん :05/01/13 10:28:53
553です。
>>555 、557 両氏 ありがとうございます。
brew初めて一週間経ってないんで指針すらわからず
困ってました。助かりました。
>>557 ykuboさんは確かに仕事とはいえ耐えに耐えてるって感じだな。
561 :
デフォルトの名無しさん :05/01/13 21:06:31
正方形のPNG画像があるのですが、これを90度、180度、270度回転させ、 4つを組み合わせて1つの画像を作りたいのですが、可能でしょうか? ITransformインタフェースを使えば Bitmap画像を回転できるということはわかったのですが・・・。 1.回転させたPNG画像を4つ用意する。 2.Bitmap画像を用意して回転させる。 3.他の方法を探す。 のどれが正解なんでしょうか? 1や2は画像ファイルのサイズが大きくなるので、できれば避けたいです。
1.PNG画像を普通にIIMAGEで開く 2.PNG画像と同サイズのBMPをIBITMAP_CreateCompatibleBitmapで作成 (引数のpIBitmapはディスプレイのBMPポインタで) 3.2で作成したBMPに対してPNG画像を書き込み 4.倍サイズのBMPをIBITMAP_CreateCompatibleBitmapで作成 5.3のBMPをITransform使って書き込み これでできるよ。
564 :
561 :05/01/14 00:39:53
>>562 、563
おぉう!ありがとうございます!!!
565 :
デフォルトの名無しさん :05/01/14 14:26:16
BREWAppLoader ですが、W21SまたはW22Hとの接続に、 au製のWIN用USBケーブルを使用してやった方いますか? 今やってみたら接続できなかったので。
IFileインタフェース利用時の確認画面について質問です。 ファイル保存操作をする際は確認メッセージを表示する事になっていたと思います。 ここで「以後確認しない」を選択したとして、その情報をファイルに保存する場合。 次回起動時、ファイルを開かないと確認画面を表示すべきかどうか確認できない、 しかしファイルを開く前に確認画面を出さないといけないのでは? というところで詰まってしまいました。 根本的にやり方が間違っているような気がするのですが、 どなたか処方箋お願いします。
>>566 データフォルダにコピーするとき(IFileCp)は必要だったような気がするけど、
普通にファイルを保存する(IFile)のに確認画面は必須じゃないんじゃなかったっけ?
「EZアプリ(BREW)サービスガイドver.2.1.pdf」の
「9.5.6.ストレージエリア内ファイル操作時」を見てみるといいかも。
>>566 ストレージエリアに弄るときは確認は必須ではないよ。
でも、Sharedを弄る場合は必須になってる。
>>566 物凄くマジメな人なのか?
IFILE_Write()を行わなければ「保存操作」じゃないんだから、_OFM_READWRITEでOpenして
設定を読むことは確認ダイアログ抜きにできるのでは...。
いったん _OFM_READ で開いて設定読み込んで閉じてまた開く、でもいいけどさ。
ロックディレクトリ(orファイル)みたいな発想で、空ファイルを作って、そのファイルがあれば
「確認しない」なければ「確認する」みたいな処理でもいいけど、クラスタサイズが大きい
端末もあるからこれは避けたい。
応用版で設定ファイル名そのものを使い分ける手もあるけど、バグ出しそうだからやりたくないな。
皆様レス感謝です。 勘違いしてデータフォルダ内ファイル操作の項目を見て必須だと思い込んでました。 通信設定等の保存にしか使わないので、確認画面無しで行きます。 いやー、助かったー
571 :
デフォルトの名無しさん :05/01/15 01:16:15
BREWのDBって糞だな。学生作った作品並に悪いよ。もうこんな糞環境で開発止めたい。 パフォーマンスでねぇし。そんなことで明日も明後日も会社で仕事だよ。
572 :
デフォルトの名無しさん :05/01/15 02:08:29
ドラゴンボールが糞だと?
>>572 あれ、モトローラの石で動くBREW実装ってあるの?
575 :
デフォルトの名無しさん :05/01/15 10:46:08
IFILEの非同期読み込みやろうかと思ってるんだけど、 コールバック関数って読み込みが完了した時点で呼ばれないの?
>>555 のリンク先見る限りだと、AudioPhrase使えなそうなんですけど、
日本のBREW端末でBGM+音声ってできないんでしょうか?
>>577 どうも。あの表以上のことはできないんですよね。
JAVAゲー完全移植は無理か・・・。
>>579 どうせみんな音消してやってるから問題ない
582 :
デフォルトの名無しさん :05/01/15 18:32:20
2003年4月15日 06:44 PM 更新
いやいや、確かに古いけど今はもっと増えてると考えるのが自然じゃないの。
漏れは家でももっぱらマナーですがなにか
家でやるときくらい、音だしてやれよ。 プログラマーも苦労してんだからYO
つーか家で携帯アプリなんてヤッテランネ
|
|
|
|
/V\ ◎ ←
>>575 /◎;;;,;,,,,ヽ
_ ム::::(;;゚Д゚)::| ジー
ヽツ.(ノ::::::::::.:::::.:..|)
ヾソ:::::::::::::::::.:ノ
` ー U'"U'
腹減ってんだろ誰も見てないよ
とりあえず、575はコールバックを100回声に出して読むべきだと思う
|
|
|
|
/V\ ◎ ←
>>581 /◎;;;,;,,,,ヽ
_ ム::::(;;゚Д゚)::| ジー
ヽツ.(ノ::::::::::.:::::.:..|)
ヾソ:::::::::::::::::.:ノ
` ー U'"U'
>>592 「ドラゴンボール」「モトローラ」でググってみた。
ドラゴンボール【DragonBall】 初代Palmに搭載されていたモトローラのMPU。
だそうだ。
すみません、QVGA機種のサスペンドについて質問です。 EVT_APP_SUSPENDは実装しているんですけど、 ここにイベントが入ってこないんです。 INFOBOADとかは、電源キーが押されると、勝手にメニューが開いて ここで「中断」を押すとアプリにEVT_APP_SUSPENDは入ってくるんで、 どう考えても、アプリ側で処理するべき事では無いような気がします・・・ でも、なぜQVGAの機種達はメニューを開かないのかが、分かりません。 どなたかご存知の方がいればお教え頂けないでしょうか?
とりあえずサスペンドイベントはアプリキーで発生するはず。 それと電話かけてみるとか。 ただ例外があるようで、何をやってもサスペンドが発生しない タイミングがあるのはこちらも確認してます。 EZナビウォークとかはサスペンド無視してるようにも見えるし、 深く考えない方がいいのかも…
>>595 回答ありがとうございます。
2.1のQVGA機で、サスペンドさせても中断メニューが
表示されないのは何が原因でしょうか?
2.0は普通にいきます。
QVGA機ってのが具体的にどのメーカーのどの機種を指してるのか わからないと答えようが無い気がするが・・・ でも、手元にあるBREW2.1のW21KとA5501Tだと電源押せばちゃんと 「アプリを終了します、よろしいですか?」とかいうメッセージが 出るんだけど、中断メニューってこれのことじゃないのか?? BREW2.0でINFOBARだと、メニューが表示された後で「中断」とか押すまで EVT_APP_SUSPENDが来なかったような覚えがあるけど。 よくわからんが、EVT_APP_SUSPENDでFALSEでも返してるんじゃねーの? 俺は詳しく調べる気は無いから頑張って解決してくれ('A`)ノシ
IDISPLAY_MeasureTextEx() で nMaxWidth 指定して、 その幅以上のテキスト突っ込んだ時の戻り値って機種依存あるっぽいね。 って既出?
599 :
デフォルトの名無しさん :05/01/17 21:34:17
>>594 機種名くらい書きなさい
もしかして外人?
>>598 機種依存ってかフォントサイズ違うんだからあたりまえじゃね?
とりあえず5504TとA5307STで確認。 AECHAR str[] = "01234567890123456789"; (STREXPANDで変換したって事で…) w = IDISPLAY_MeasureTextEx(a->m_pIDisplay, AEE_FONT_NORMAL, str, -1, 100, &len); で得たwとlenの値 A5504T : w = 440(22*20), len = 10 A5307ST : w = 280(14*20), len = 20 エミュ : w = 95(19*5), len = 5(マシンのフォントサイズに依存) こんな感じになりますた。 多分SAはエミュと同じ動きしてるっぽい。
一部訂正。 誤:A5504T : w = 440(22*20), len = 10 正:A5504T : w = 440(22*20), len = 4 もう何がなんだか・・・
603 :
デフォルトの名無しさん :05/01/18 03:11:27
まともなエミュが欲しい…
戻り値が機種依存とか聞いて勘違いしたスマン その3つの比較を見るとエミュレータが示すような結果を実機でも期待したいもんだな 自分もIDISPLAY_MeasureTextEx()を多用しているが戻り値wは使っていない
通常起動か待受起動か判定する方法教えて
606 :
デフォルトの名無しさん :05/01/18 17:35:57
エミュ上で brew ってるんですけど、プログラムを 動かしっぱなしで放置しておくと、突然処理速度が ガタ落ちになってしまいます。何か(エミュ上で 有効な)キーを押してやると元の処理速度に戻りま すが、また一定時間経つと処理速度が落ちる・・・ これってエミュだけの問題でしょうか?それとも 実機で発生する(と思われる)省電力モードのエミュ レーション機能でしょうか?後者だった場合、この モードに移行させないようにすることはできますか? 実機で動かせる環境にないので、お手数ですがご教授 ください。 あ、あと、エミュで dll が 200kB 近くあるんですが 実機用にコンパイルすると小さくなるのかな?
>>606 処理落ちは EVT_APP_NO_SLEEP で FALSE を返していることが原因だと思うので、
ここで TRUE を返してやれば処理落ちしなくなる。
ただし、KDDIのチェックの時には EVT_APP_NO_SLEEP で
FALSE を返さないといけないってチェックがあるので注意が必要。
実機の時はARMコンパイラで作成したmodファイルで、
エミュのdllとは別物なので基本的には問題無し。
608 :
デフォルトの名無しさん :05/01/19 10:20:35
>607 なるほど。EVT_APP_NO_SLEEP ですね。 ありがとうございます。やってみます。 mod サイズについてもわかりました。 具体的には何割くらい小さくなるんだ ろう・・・実機用にコンパイルできれば 一発なんだけど、そのための試作プログ ラム中なもので(^^;)
609 :
デフォルトの名無しさん :05/01/19 14:56:07
BrewSDKは企業に所属してないと手に入らないのでしょうか?
>>609 そんなこと無いはず。
>>1 のQUALCOMM BREWホームで落とせる。
>>608 modはdllの1/10ぐらいになるという話をきいたけど、
あまりあてにならない。
何かフォーラムがすげーくだらない質問で埋まってくね・・・ ykuboさんご愁傷様。
613 :
デフォルトの名無しさん :05/01/19 22:21:28
ファイルの書き込みなんだけど、 実機でタイムアウトしないものなんだろうか? エミュだとやたら怒られるんだけど
俺を忘れてもらっちゃ困るぜ
後ろから呼ばれると驚きます
>>612 っというか、なんであんなに日本フォーラムに
機械翻訳したような日本語の質問が多いんだろ?
海外に投げまくってるのかね?CP
CONVERTBMP()でIBitmapを取り出す際に *pbRealloc がTRUEになった場合の 解放について教えてください。 1)IBITMAP_Release()を呼ぶ 2)SYSFREE()で解放する 3)両方 のどれになるんでしょ? ドキュメントによればSYSFREE()を呼べ、ってなってるけれど・・・
4)やってみて問題ないものを選ぶ
WebOptsについて調べたいのですが、いい資料はないでしょうか。 SDKについてるAPIドキュメントを見ましたが、役に立ちません。
>>618 CONVERTBMPはIBitmap*なんか返さないが…。
SYSFREEで開放しなければならない「何かのメモリブロック」が返ってくるだけだよ。
その正体が何かについては一切分からない。
>>619 エミュレータでは、SYSFREE()での解放でうまく行ってる。
実機に持っていったときにまた調べてみます。
>>622 AEEDisp.h の IDISPLAY_BitBlt() の解説を読んでみて。
BREW 1.2以降では、IBitmapインタフェースのポインタが返るそうな。
(型は void* だけど)
>>618 多分1,2どっちでも問題ない。両方やったらNG。
WSTRDUP() とかも解放関数がFREEOBJ()と指定されてるけど、
FREE()で解放しても問題ないっぽい。
(そのまま検証に出したわけじゃないから詳しくは知らん)
てかBMP使ってるの・・?
PNGやJPEGでも
>>563 の1〜3でDDB作れると思うんだが。
>>624 ありがd
BMPを使ってるのには特に深い理由はなくて、いま開発の初期なんでいろいろ
試してみてるとこなんです。gzip圧縮すればファイルサイズ自体はあまり変わら
ないので。
>>563 の方法も試してみます。
PNG/JPEG展開とCONVERTBMP()のオーバーヘッドがどのぐらい違うのかで、
どっちを使うか決めますわ。
626 :
デフォルトの名無しさん :05/01/21 15:47:50
BREWって64ビット整数扱えますか? 32x2を作らないとだめ?
100レスくらい過去ログ読んでから質問しろと
W21SAのEZナビウォークって標準のアプリだけ、 電源ボタン押しても中断メニュー無いんだけど、 これってどうやってるの?
629 :
デフォルトの名無しさん :05/01/21 17:09:09
>>627 読み飛ばしてました。Thx
あとARM7のint幅は16ビットですか・・・?
携帯かEZナビウォークのバグ。 どっちかは自分で考えてくれ
標準で付いてるアプリだと公開されてない方法とか使ってたりするんじゃないか? つーか、携帯標準で付いてるアプリはまともに検証すらして無い気がする 03SAについてたラジオのアプリも起動時のメモリチェックしてない感じだったし。
632 :
デフォルトの名無しさん :05/01/21 18:17:11
初心者です。見当はずれな質問していたらすみません。 brewSDKのエミュレータでカメラは使用できるのでしょうか? たとえば、PC上にUSBカメラを接続してその画像を エミュレーター上で写すことはできるのでしょうか? よろしくお願いします。
>>632 出来ない。
でも、エミュ上でならなんでも使えるからDirectShowで
真似事みたいなのは作れる。っというか作った
>>629 モードによって違うと思うが、普通(ARMモード)は32bitです。
>>632 無理ぽです。
あと、ICameraはBREWプログラマの敵です。
早急に実機でテストできる環境を整備すべきです。
>>625 必要なワーキングメモリも違う事に注意。
618の方が少なくて済むよ。画像サイズによりけりだけど。
636 :
デフォルトの名無しさん :05/01/21 18:40:53
カメラアプリで便乗質問。 カメラを使う上で要注意の端末があれば教えてください。 (有名なバグがある、組み方にちょっと工夫が必要となる、など) 特にBREW2.1、QVGA対応端末で。
638 :
デフォルトの名無しさん :05/01/21 22:44:43
>>637 コールバックされる順番が機種によって全然違う。気がする。
>>637 とりあえず、○ニーは注意してやった方が良いかも
>>638 俺はパラメータ別にあるGetParamの呼べるタイミングの
違いかなぁ
>>621 遅くなりましたがサンクスっ!
ばっちり設定できましたっ
641 :
デフォルトの名無しさん :05/01/22 01:21:05
ソフィアのゲームエンジンより安いライセンス製品知りませんか?
auのBREWアプリでポリモーフィズム使ってる人いる? 容量とか処理速度とか問題にならない? BREWアプリを外注したらif文だらけのコードがあがってきたんだが、 これって普通?
645 :
デフォルトの名無しさん :05/01/22 11:41:08
どうでもいいけどKDDIって韓国のBREW系HPに質問しまくりだな。 自分らで解らないこといっぱい聞いてるなぁ。 いっぱい書き込みあるなぁ。もうだめじゃん
今日こんなのがあるなんて初めて知って、興奮してたら…
俺がやりたかったことは見事
>>5 のFAQで儚く散った…
自分の携帯にすら入れられないとは…ちぇっ.
>>643 仮想関数呼び出しのメカニズムから勉強し直せ。
> 自分の携帯にすら BREWはさ、HDDレコーダとかカーナビとかのような、ちょっと電子部品が多めの 家電製品の一部であって、KもQも携帯マニアの楽しみなんて考えてないからな。 元々エンドユーザがプログラムするもんじゃないんだよ。 アプリの自作も、発表の手段も、持ち歩くことも、手段は他にいくらでも有んだから、 必ずしも全キャリアの端末が自作アプリ置き場である必要はないだろ。そこを敢えて ハッキングする!(←語源の方のハックね)というひとなら尊敬もされようが、自分の 活動環境があらかじめ用意されていないから失望した、なんてのは創造性がねえよ。 BREW導入開始当初なら兎も角、今更、こんな板にまで出張して愚痴たれられても…
てかちょっとでも悪用すると、便利な盗撮道具や ウィルスまがいのアプリが出来上がりってのは笑えないね。 もうちょい考えて環境整えろと。
まぁただの愚痴だったんで、住人の皆様の気分を害したならごめんなさい。 情報見付けた時に「おぉっ!」っと思ったんで、ちとがっかりしただけでして…。 大人しく今まで通りJavaいじってます。所詮趣味でプログラム書いてるだけなんで…。 C++の方が好きなんですけどね…。
652 :
デフォルトの名無しさん :05/01/22 18:30:45
よし、Cの標準関数移植するぞぉがんばるぞぉ。
>>650 648だけど、言い過ぎだった。
「新製品なのになんで動かないんだよ」「非対応は怠慢」から始まって
「自由に作らせろ」「Java VM乗せればいいじゃん」「無料にしろよボケ」まで
数々の有り難いご意見を、毎日毎日毎日毎日毎日頂戴しているせいか
過剰反応してやってしまった。今は反省している。
色んなしがらみが有って「うちはキャリアでも端末メーカーでもないよう」
程度の弁解すらなかなか言えんのよ。
遅RESだが。
>>625 PNGからの展開よりもCONVERTBMPの動作のほうが10倍以上速いよ。
#メモリ上のデータから画面に描画するまでで
端末にもよるがARM9端末なら大抵は。
JPEGは問題外。
速度は端末によってかなりバラバラ、さらにデコード待ちのコールバックがTIMERコールバックより優先度が低いらしく発生しない。
>>643 過去にも検証があった気がするがそんなに遅くは無い。
もちろん不要なところまでvirtual入れないようにはしといたほうが良いだろうが。
>>631 検証って行ってもKDDIの基準はQUALCOMMの基準より大分厳しいからな。
標準アプリはKDDIの基準ではNGでもQUALCOMM基準ではOKって可能性も多分にある。
てか、KDDIの基準は厳しすぎ。
神経質ユーザー対策のため、日本仕様になってるんだろう審査
実際にIDIBをサポートしないIBitmap実装を使ってる実機ってあるのかな。 手持ちの実機のDeviceBitmapもQueryInterfaceするまでもなく中身はIDIBだったし。
>>655 ファイルならISHELL_LoadBitmapがお手軽。
gzipかましてるなら、展開時間と展開前バッファとIDIBのコストを考慮。
DDBでいいならIDIBいらないけど、ヒープ余裕なのかな?
>>643 大量のif文(switch-caseに置き換えられないんだろうか?)を書くのと、virtualを使って書くのと。
果たしてどっちがコードサイズ小さくなるんだろうね?
うちは問題になるほど差は無いと思うし、最適化でジャンプテーブル化される余地のあるswitch-caseならともかく
大量のif-else書いて毎回分岐するくらいならvirtualで実装した方が速い気がする。
参考:Efficient C++
660 :
デフォルトの名無しさん :05/01/24 20:45:54
SMALL_FONTって、実機じゃないと動作しなかったりしますか? エミュだと ISHELL_CreateInstance() でのポインタの中身が0なんですけど。。。
>>661 ああっ、フォーラムにあったのか、手間取らせて申し訳です。
663 :
デフォルトの名無しさん :05/01/24 21:20:22
IStaticインタフェースを使用して、テキストと小さな画像を同時に表示して (テキストの続きに画像がきて、またテキストが続く)、その画面をスクロール したりとかは可能でしょうか? なんとなく無理そうだと感じてはいますが。 また、APIリファレンスを見ると、IStaticインタフェースでもIImageインタフェース から読み込んでる画像が表示できるらしいのですが、やり方がよくわかりません。 BREW SDK 3.1を使用しています。
> IStaticインタフェースを使用して、テキストと小さな画像を同時に表示して > (テキストの続きに画像がきて、またテキストが続く)、その画面をスクロール > したりとかは可能でしょうか? IStatic単体では無理です。 > なんとなく無理そうだと感じてはいますが。 > また、APIリファレンスを見ると、IStaticインタフェースでもIImageインタフェース > から読み込んでる画像が表示できるらしいのですが、やり方がよくわかりません。 いや、そんなことは出来ないはずです。 > BREW SDK 3.1を使用しています。 3.1で作ってもまだ対応する端末が無いですよ...。 やりたいことに一番近いのはIHTMLViewerでしょうね。 ゲーム以外でならそこそこ使いでのあるインタフェースです。 (というよりIControl/IDialogは総じて役に立ちません)
665 :
デフォルトの名無しさん :05/01/25 00:56:46
IHTMLViewerすらだめだ。自力でGeckoエンジン移植したい。 2D描画について詳しく書かれた文献はないですか?自分でWindow作ったり メニュー作ったりするので必要なのです。 DreixtX4以来振りなので何もかも忘れてしまってます。助けてください。
だいぶパニクってるようだがまず落ち着け 何を質問したいのか整理して
描画から入力まで 全て自前で用意するのが 間違いがなくていいだろうな。
でも標準フォント横最小10文字の世界で何をしたいのだろう…
669 :
デフォルトの名無しさん :05/01/25 09:33:39
>>664 ありがとうございました。やはり、無理なのですね。
>いや、そんなことは出来ないはずです。
APIリファレンス(SDK 3.0.1 日本語版) IStaticインタフェースの項の
--
3. BREWのリソースファイル、またはコード内に記述されたテキスト文字列
から、タイトル用テキストとテキストメッセージ文字列を取得します。テキ
ストメッセージの代わりにビットマップを使用する場合は、ビットマップを
読み込み、IIMAGE_SetParm()関数を使用してアニメーションのプロパティ
(フレーム数やアニメーションの速度など)を設定します。
--
ここの記述の意図は何なのでしょうか?
英語のフォーラムに似たようなことをやろうとしている方の投稿があった
のですが、フォローがついてなかったです。
>3.1で作ってもまだ対応する端末が無いですよ...。
3.1搭載の端末の開発を行っているものですから。
IHTMLViewerの方を調べてみます。
それでは、ありがとうございました。
>>669 すみません、調べてみたら出来るみたいです...ただ使い道と使い勝手は「?」ですが。
文字かイメージかの二者択一なので、混ぜてスクローリングはやっぱり無理です。
ここではさすがに回答できないので公式へポストしていただければゴニョゴニョ...。
BREWに戻りたいので必要もないのに保守してみる
検定不合格になるとどうなるんでしょうか? それを考えるとビクビクして、寝られません。
>>672 たしか優良コンテンツプロバイダの場合は2回落ちると優良コンテンツプロバイダからを降ろされちゃうんだっけ?
>>672 2回目までは無料。
3回目からは有料になる。
この検証不合格のカウントも機種単位じゃなくて、アプリ単位で数えるとか聞いたような覚えがある。
つまりはW21Kで1回不合格出すと、別機種でのチェックでは2回目からのカウントになるとか・・・
聞いた話だから信憑性は微妙だがな。
>>673 一発で優良が外れて、復帰には三連続合格が必要だったとおもた。
676 :
デフォルトの名無しさん :05/01/26 21:56:56
BREWってPCMの多重再生ってきますか?
間違えました。 BREWってPCMの多重再生って出来ますか?
>>677 端末によるけど、日本の機種はダメだったような気がする
更に他の機種もやってみた。 A5306ST : w = 96(12*8), len = 8 正常。 A1304T : w = 280(14*20), len = 7 w不正。 もう自前で関数用意するの飽きたよ(´д`)
680 :
デフォルトの名無しさん :05/01/27 01:08:23
>>680 20万
詳しくはKDDIに聞いてくれ('A`)
>>232 ここで聞いた症状だと、ブラウザじゃなくてBREWのIHTMLVIEWのバグですよ。
アプリカタログ内で詳細とか表示してるのは、OpenWaveのブラウザじゃなくて
BREWのIHTMLVIEWだから(Qualcomm製)。
あれっ、W21Tで ezurlto: がうまくいかない。。。 一瞬アイコンが砂時計に変わるけどすぐ消える。 なんだろ、謎だ。ez2urlto: 使うかー。 あー、機種判定して動作わけるのマンドクセ。
ま た T か
今日のビックリ新発見 ITransform で TRANSFORM_FLIP_X を指定したら 絵の上下が逆になった。
Σ(*゚ー゚)
他とスペック全然違ったり、おかしな動作したり、一体何がしたいんだT芝。
>>686 X軸でフリップするからそれで正しいのではw
>>689 言われてみたらそうかもな〜
でも、いままで触ったことのある環境では、FLIP_Xでは左右反転だったんで
面食らったw
こ・・・これは、堀江効果か? ちょっと経営側とプログラマーを勘違いしてるのかも・・・ しかし、情報系に興味持ってくれている子どもが多いってのは良い事だ たとえ最終的に文型職に進んだとしてもきっと役に立つだろうし
>>692 どう考えても標本になる人数少なすぎるだろ
>>693 の言うとおりだと思うが、笑いのネタとして受け取るなら
1位…プログラマー
20位…ゲームプログラマー
項目を分けた基準が何なのかってことと、順位差の原因が気になるかな?
人気(順位)よりも具体的にどういうイメージを持っているのかに興味があるな。
10代男子が思い浮かべるプログラマー像、システムエンジニア像、クリエイター像、
他、「コンピューター関係」は具体的に何を思い浮かべるのか。
695 :
デフォルトの名無しさん :05/01/28 22:31:52
brewプログラミング実践バイブルの本のスケジューラアプリのサンプルプログラムを 試しているのですがstatusというインターフェイスがなくてエラーが出てしまいます。 これは何なのでしょうか?誰か教えていただけませんか?ちなみにp104です。
>>695 ここらに記載されているサンプルは自前のクラスを使うので(つまりStatusはBREW標準のクラスではないので)、このソースだけコンパイルしようとしても通らないはず。
本(6ページ)に記載されてるURLからサンプルを丸ごと落とせば解るんじゃないか?
>>695 あの本はかなり前のページから内容引きずってるんで、
一部分だけソースコピってもマトモに動かないよ。
各章の頭から必要な関数やらを引っ張り出して、足りない部分補足しないと動かない。
で、それが出来るなら最初から見ない方が早いと思うw
698 :
デフォルトの名無しさん :05/01/29 05:41:05
アプリケーションからAPIなりを使用して、アプリケーションを更新(起動後 に最新版のアプリをダウンロードして、そのまま処理を続行する)すること は可能でしょうか? iアプリにはそういう機能があるらしく、BREWアプリでもできると助かるので すが。あるとしたらIShellインタフェースとかかと思い、APIリファレンスを みてみましたが、見つかりませんでした。 自分自身のバージョンを取得する関数はあるので、なんらかの仕組みはあるの かなぁと思っているのですが...。
>iアプリにはそういう機能があるらしく ねーよw 何ふきこまれたんだ iアプリでやれるのは 1.ダウンロード済みのアプリを、ユーザーが再度ダウンロードしようとした場合、 日付を判定してそれが新しいものだったら上書きでダウンロード(バージョンアップ)する。 2.動作中のアプリから別の(ダウンロード済みの)アプリを呼び出して、自分自身は終了する。 で、どの道、BREWでもアプリのダウンロードを指示するAPIはないし、 実行中のアプリを書き換えることができるはずもない。
ちょっとお尋ねしたいんですが、、、 新機種対応する時に、文字サイズが違う時は、 A.あらかじめ、色んなフォントサイズに合わせるようプログラミング B.文字サイズがちがう機種ごとに新バイナリで対応 のどちらが一般的でしょうか? 私、携帯のアプリ開発に初めて回されまして、 A.を提案したのですが、携帯はB.だよとメンバーに総叩きにあいましたw
>>700 特にこのスレ向きの質問ってことでもないようだが。
一般的にどちらってのは特にないんじゃないか。ケース・バイ・ケースで。
レイアウトやデザイン主体ならBかもしれないし、テキスト主体ならAかもしれないし。
というよりその問題はフォントサイズだけ見て決まることじゃないと思う。
702 :
デフォルトの名無しさん :05/01/30 19:18:58
金や暇があるならBでやれば?
703 :
デフォルトの名無しさん :05/01/30 19:33:25
>>699 どうもです。
iアプリでは、動作中のアプリから新しいアプリをダウンロードして、
古いほうは終了、新しい方を起動(引数?わたしで継続実行)みたい
なことができると(そういう仕様のアプリを作る予定)聞いたのです
が、BREWアプリでは難しいのでしょうか? iアプリの方はそういう
仕掛けがあるのかなぁと思ったのですが。
>2.動作中のアプリから別の(ダウンロード済みの)アプリを呼び出して、自分自身は終了する。
(ダウンロード済みの)アプリというのが、この場合新しいバージョンのアプリをダウンロードするアプリ
(標準でそういうのがあるのかな)になるのと思ったのですが。
今ちょっと調べてみたのですが(すみません)、iアプリ更新機能連携起動に相当する仕組み
がBREWアプリで(簡単に)できそうかな? というのが知りたいです。
BREWのフォントサイズひどくない? 端末メーカー自由奔放に作りすぎ 下請的にはBは考えられませんね。メッセージ等は自動調整。メニュー等は画像で持つのがいいな。
699です。
>>703 iアプリではアプリ実行中に新しいバージョンをダウンロードさせて再起動することができる。
失礼した。再起動後に途中から開始する(ように見せかける)のは作り込み次第で。
BREWアプリでは、サービスガイドやプログラミングガイドを見る限り同様の仕組みはない。
料金体系のことがあるしアプリマネージャーからの操作以外にバージョンアップさせる方法
はないような気が。EZアプリカタログを通す以外のダウンロード方法もないし。
いまいち役に立たない解答でスマン。フォローできる人いたらよろしく頼む。
ていうかアプリマネージャからの自動verうpじゃいけない理由があるのかと。 もし自前でDLしようとしても、認証関係で落とされるんじゃないか?
707 :
デフォルトの名無しさん :05/01/31 11:45:04
アプリマネージャからユーザが手動でバージョンアップさせにいくのではなくて、 アプリから自動でバージョンアップさせたいと考えています。 ですが、仕組みそのものがなさそうですし、認証とかはいるとなると難しいそう ですね。 せめて、アプリのバージョンアップを誘導できればいいと思うのですが、アプリ からEZアプリカタログに最新版があるかどうか調べる手段はあるのでしょうか? (やはり、これも認証とかが絡んでしまう?)
>>707 アプリカタログはあれはあれで一つのBREWアプリなので。
最新版の有無とかの確認が必要なら、自前でサーバ用意しておいてやるのが良いんじゃなかろうか。
まあ通信の必要が無いアプリだとそのためだけに通信させるのは馬鹿げてる気がするけどね。
もし自分で書き換えたいならアプリマネージャーのようなものを 自分で作って対象アプリ書き換える必要があるが、 KDDIの資料を(少しでも)読んでいるなら、 他のアプリのフォルダにアクセスするのは無理だとわかるだろう。 自分でローダーを作って、実行ファイルを自前でメモリに展開して実行すれば もちろん実行できるが、KDDIの認証で落とされる。 最新版か確認するだけなら自分とこでVer確認する鯖作れば?
名前間違えたごめんなさい
>704 同意。 docomoの方がフォント関連は楽だよナァ というかT端末文字デカ杉(;´Д⊂) もし端末開発の中の人見てたらアプリ制作現場からのお願いです。 各社端末仕様は出来るだけ統一してください。 ホントお願いします。
713 :
デフォルトの名無しさん :05/01/31 15:29:43
自分で書き換えたいと言うよりは、自アプリを契機に して更新したい方向です。(わかりづらくてすいません) 最新バージョンは、サーバ経由で取得できそうですの で、アプリカタログに誘導できれば、最低ラインには 到達できそうです。 WAPブラウザからは、アプリカタログまでは誘導できる ようですが、IHtmlViewer等でできるといいですけど。 (最悪、手動で更新してくださいとメッセージがだせれ ばよいですが) ちなみに、初回ダウンロード時には、生成されてない ファイルなどは、更新時に引き継げるのでしょうか? Start with Brew というドキュメントには、MIFやフォルダ 名は、数字の名前に置き換わるみたいな記述があり ますが。(同じフォルダにダウンロードされる?)
>>713 どうでもいいがそんなもんぁKDDIに聞け
こんなとこでうだうだやるより早かろ
書けない情報もあるだろうしな
いい加減引っかかりそうだしな
ちゃんと資料読んでりゃ、答えが書いてあるしな。
ところで、ヘッダには使い方まで説明してあるけど、 KDDIのリファレンスには無いAPIとかってどこまで使用していいの? こういうのも全部聞かないといけないのかね。
クライアントに資料ちゃんとそろえて貰いなさいょ KDDIのCP資料にだいたい書かれてる ところでBREW用のOpenGLを詳しく解説したサイトない? なんかもう英語しかなくて逝きそうなんだが
そもそもBREWって時点で日本語解説サイトがほとんど無かった覚えが・・・ 仕事でやってる奴がほとんどってのが問題なんだろうけど。
>>718 いや、CP資料に書かれてないAPIなんだけどね。
(うちの)実機でも動く。
ちなみにBREW3.0でアプリ側からアップロード指示できるようになるぞ。
よかったね
>>713
>>684 ez2系の方がパラメータ渡すのが楽だし、端末仕様でOKならそっち優先すべきじゃないかな。
>>700 技術レベルが低い職場だと大変だね。
Tだけ分けるって手もあるけど、コードサイズ大して変わらない気がする。
こんな現象起きた方おりませんでしょうか?(ノД`) 検証端末はW21Sが2つ。どちらも製造ロット2004年8月。 で次の動作を行います。 ・あるゲームアプリを起動しサスペンドにする。 ・(名前を言っていいものか分らんので)あるツールアプリを一発起動させAlermを選択し、ゲームアプリに戻る。 ・Alermでツールアプリが起動されるまで放置。 ・ツールアプリが起動されたら終了させ、ゲームアプリに戻る。 この動作を繰り返し行うと 1つ目のW21Sではゲームアプリの処理速度が落ちます…orz。 もう1つのW21Sでは何回やっても処理速度が落ちません。 当然、どちらも同一バイナリです。 後、処理速度の落ちた端末をしばらく放置しておくと なぜか元の処理速度に戻ります。 誰かご教授お願いします(´人`)
726 :
デフォルトの名無しさん :05/02/01 18:18:48
馬鹿な自分ではわからないのですが・・ 現在私はHTMLVIEWERを用いてプログラムやっています。 その後、ファイル処理のプログラム(sample.txtファイル作成しデータを書き込む関数を追加しました) を追加したのですが、 アプリケーションエラー「Priv Violation」sample.txt と出てプログラムがとまってしまうんです。 どういうことでしょうか?教えてください。
>>724 あー、EVT_APP_SUSPEND で true 返してないだけだった罠。
恥ずかしくて結果報告も出来なかったよ。w
>>725 Alerm って使用禁止じゃなかったっけか。
>>726 9割方MIFファイルが原因だと思う。
>>727 (`・ω・´)ヾらぢゃーです 隊ちょー
そのまま、検証へぶちこみます
>>729 いえいえ、ゲームアプリ自体では当然使用してないですよ〜
(正確には待受アプリで使っちゃ駄目なんじゃなかったっけかな?)
731 :
デフォルトの名無しさん :05/02/02 00:15:25
732 :
デフォルトの名無しさん :05/02/02 00:21:10
>>732 確認したいんだけど「特権レベル(Privilege Level)」という単語を知ってる?
>>732 ソフィのサンプル貼られてもねぇ・・・
とりあえずサービスガイド一通り目を通せ。
そんなんじゃ今後ずっと躓くぞ?
検証だそうとしたら 上司にぬっコロされそうになった(ノД`)あいーん だって原因わかんないんだもん 別機種から対応するか… (T_T )...トボトボ
>>735 どうしても駄目ならKDDIに聞け。
KDDIの方から端末メーカーに原因を聞きに行ってくれたりするぞ。
結果、糞仕様が明らかになる可能性も高いんだが('A`)
737 :
デフォルトの名無しさん :05/02/02 14:00:43
特権レベルですか・・・・ どのように権限がかけられているかわかるはずもなく、 1から自分で作りたいと思います。 経験不足でした。 皆様に感謝いたします。
>>729 がわざわざ「9割方MIFファイルが原因だと思う。」と書いてくれてるんだから先ずMIFファイルを開いて
隅から隅まで穴があくほど見てみれ。
それでも分からなければ二つのサンプルのMIFファイルを見比べてみれ。
IWebでネットアクセスした後ってアクセス終了した後もしばらく重くなる端末多いですよね。 アクセス終了後にIWebをリリースしたりしても回避できないし。 この辺の解決方法知ってる人いませんか?
>>739 ( ̄∇ ̄)え!?
通信した後、重くなる端末ってけっこうあるんすか?
おいらが試した端末は
A5306STとW21Sですが重くならなかったですよー。
W21Sは通信中も重くならないっす。
>>739 何かよく聞く話な気がするけど、漏れそういう現象見たこと無いんだけど…
具体的に遅くなる端末教えてもらえませんか?
ちなみにIWebその他全部、通信周りは利用ごとに解放してます。
使用機種は A5306ST、A1304T、A5504T、A5307ST、A5505SAかな。 ダウンロード直後に画面全体ポリライン描きまくって描画速度を出してるけど、 特に遅いと感じた事は無い。 蛇足だけど IDISPLAY_MeasureTextEx() の機種依存情報、 いくつか既出だったのね。オハズカシイ(´∩ω∩`)
IWebじゃないけど、テスト用にフレーム数表示するだけの アプリを動かした時に重くなったことがある。 そのときは、画像を読み込んだら軽くなった。 原因は不明・・・
744 :
713 :05/02/02 18:04:15
更新ダウンロードの件、サービスガイドに載っていました。すいませんでした。
>>720 3.0のリリースノートを見てみたのですが、アップロード指定の件、見つからなかった
のですが、もし可能でしたらどちらに記載されていたか教えていただけないでしょうか?
(話の流れだと、3.0のヘッダーファイルになるのでしょうか?)
745 :
デフォルトの名無しさん :05/02/02 23:59:13
ネットに繋げられない/ブラウザの使えないPCにBrew SDK2.1.1を入れたくてインストール済みのPCから フォルダ \BREW SDK v2.1.1 Ja と \BREW Addinsをコピーして、\BREW Addins\vs60の中身をVS6の \Common\MSDev98\Template にコピーしました。 新規作成ダイアログの途中、MIFファイルの作成で環境変数が未設定だとわかったので BREWDIR SDKをコピーしたフォルダ BREWSDK SDKをコピーしたフォルダ BREWSDK210JA SDKをコピーしたフォルダ BREWADDINS アドインのフォルダ を設定しましたが、それでもMIFエディタが立ち上がりません。 またMIFの作成をパスして終了したらAEEAPPGEN.C等のファイルが ..\..\..\..\..\..\..\SRC\AEEAPPGEN.C となっており実在するファイルへリンクが繋がっていません。 ウェブからのインストールと同じ状態にするには他に何を設定すればいいかご存知の方がいたら教えてください。
746 :
デフォルトの名無しさん :05/02/03 00:09:41
>>725 がんがってください。俺にいれるのはこれだけでつ。
あとはなにか分かったらここに報告してくれると
他の人が助かるかもしれないのでよろしくおながいします。
つーか遅くなるほうの機体が壊れてるんじゃねーの?
>>745 インストール済みのPCとHDDを取り替えれば?
747 :
デフォルトの名無しさん :05/02/03 01:14:33
yくぼさん改行忘れてるよ 怒ってるのかな?
>>740-741 とりあえず現象が確実に出るのがinfobar。
他にも海外端末(具体的に言うとモトローラV810とか)でも出ているらしいです。
限界速度近くで動かしているのもあり、微妙な速度低下でもFPSが落ちちゃって困ってるんですよね;;
あと、IWebアクセス中、アクセス後はQCELPの再生時にIMediaの状態がPLAYに
なっても実際音が鳴り始めるのが遅れるとか言う現象もあったり。
インジケータを見ていると、通信中のアイコン点滅がアクセス後も10秒くらい
続いているので、内部的に通信してる=チップセットに負荷が掛かるってことな
んだと思うんですが。
>>746 ふぁーい(´ω`)ノ
何かわかったら書込みしまっす〜
機種が壊れて…おれもそう思いたいっすけどね〜
CPにあるテスト機3機種で起きるみたいなのよね
おれの持ってる市販のW21Sだけ起きないw
>>748 INFOBARって中身A5306STだって噂を聞いたことあるけど
通信で重くなるって違いがあるってことは
その噂は間違いなのか…φ(._. )フムフム
噂ってオマエ…
ITRANSFORM_TransformBltSimpleを使用する前にしなければいけないことってありますか? TRANSFORM_*を指定するとA5503SAにて、上3分の1ほど描画されません。 他の機種では正常に描画されます。 わかるかたいらっしゃいますか?
>>751 ITRANSFORM_TransformBltSimple()は特に必要とする前処理はない。
そのカキコだけでは何とも言えないが、引数と元にする画像を再度チェックしてみてはどうか。
レスありがとうございます。 表示したいのはIBITMAP_CreateCompatibleBitmapで作った240*240画像です。 (そこにIImageを描画しています) ITRANSFORM_TransformBltSimple(m_pITransform,0,0,img,0,0,240,240,0,COMPOSITE_KEYCOLOR); では正常に表示され ITRANSFORM_TransformBltSimple(m_pITransform,0,0,img,0,0,240,240,TRANSFORM_FLIP_X,COMPOSITE_KEYCOLOR); などでは上3分の1ほど表示されません。 エミュでもA5501Tなど他の機種でも正常なのです。 今回はアプリでは使わなそうなので良いんですが…わけわかりません。
>>753 IBITMAP_Invalidate()かな
>>754 ありがとうございます。
しかしながら、マニュアルからこの関数の使い方がいまいちわかりません。
1) 240*240のIBitmapを作る
2) 1)で作ったIBitmapにIImageを描画
3) ITRANSFORM_TransformBltSimpleでIBitmapを描画
ですと、2)の後に使用すればいいんでしょうか?
>>755 あえて言うなら 3) の後
2) でも問題はない
(要はIDISPLAY_Update()までにターゲットのDDBのdirty rectを拡げときゃいいんだから)
>>756 ありがとうございます。
今日はできないようなので、来週にでも試してみたいと思います。
アプリ終了と同時にブラウザ起動で、指定URLに飛ぶ処理ってできます?
>>758 ez2urlto: 使えば出来るんちゃうか?
ezurlto: だと、アプリ終了時にメモリ解放しちゃうから駄目ぽ。
ez2urlto?? ググっても出てこないんですけど、KDDI拡張とか?かな。。
>>760 あー、まさにその通り。
ISHELL_BrouseURL() の KDDI仕様です。
↑ISHELL_BrowseURL() のまちがい。
あらっ、今週は誰も休日出勤してないのね保全。
みんなちゃんと寝たか? FFはやったか?
765 :
デフォルトの名無しさん :05/02/07 23:41:15
何かの役にたてば・・・全然関係なかったらスマヌ
http://hobby7.2ch.net/test/read.cgi/appli/1106984938/ 868 名前:非通知さん@アプリ起動中 投稿日:05/02/07 22:05:12 ID:2bpJt0lw
今発見したんだが、どうやらWebのキャッシュがたまってるとアプリの動作が遅くなるみたいだ。
電源切ってキャッシュ消した後にロックマンやったら動作が速くなった。
既出だったらスマン。
869 名前:非通知さん@アプリ起動中 投稿日:05/02/07 22:08:09 ID:6mA9h/9J
>>868 外出というより常識かと思われ。
ただし、W21CAなどのハイエンド機種では大差は無い。
>>767 で、そのインフォヴァー('A`)にはBREWは乗るのか?
>>761 何度もすみません。
ISHELL_BrowseURL(app->a.m_pIShell,"
http://www.yahoo.co.jp ");
こんな感じで使うんですよね?
エミュ、実機共に何も起きなくて悩んでおります。。
これらのドキュメントは、もしやCPしか見られないんですかね?
こまりんこ
>>769 エミュは何も起きない。でも、渡されたURLを確認することは出来た気がする。
というか、BREWの実装としてはシェルにURLを渡したらその先の実装はネイティブに依存。
URLがブラウザで見れるインターネットのサイトかどうかもわからん。
KDDIの端末ではブラウザを起動することも出来るが、
その詳細についてはCPにならないと教えてもらえない。
っていうか、そんなんだから優秀な学生プログラマがBREWに興味持ってくれないんだ。ヽ(`Д´)ノ
>っていうか、そんなんだから優秀な学生プログラマがBREWに興味持ってくれないんだ。ヽ(`Д´)ノ あ〜、769をけなしてるんじゃないよ。 qualcommがBREW有料にするからイクナイって言いたい訳。
>769-772 ezfactoryで配布しているプログラミングリファレンスにコードまで載ってる 4.1.1 ISHELLの(43)
と思ったらezurltoしか載ってないじゃんorz スマンカッタ
775 :
デフォルトの名無しさん :05/02/09 15:30:11
そうだ!スタートイベント時にこっそりデバックプリントフ"ぬるぽ"て書いとかないか?
なんどもx2すみません。 ブラウザは起動は無事成功いたしました。感謝 で、BREWアプリは終了させてブラウザのみ動いてほしいのですが こういうのは。。どうなんでしょう。 アプリを終了させると、ブラウザも終わってしまうので。
>778 ezurltoだと不可でez2urltoだとOKだな多分。 プログラミングガイド精読しる
いやそれは勘違いか...単に待ち受けで使えるだけか...? 漏れは使ってないからワカンネ。
サービスガイドに書いてあることを要約すると、 ・待ち受けアプリでezurltoを使ってブラウザ起動すると、 呼び出し元のアプリが終了してしまい、無事にアプリに戻れなくなる。 ・ez2urltoを使うと、待ち受けアプリからでもアプリを終了させずに ブラウザ起動できるようになる。 このことから、ezurltoもez2urltoも『アプリからブラウザを呼び出しても、 元のアプリに無事戻ってこられるように』という考えで用意されてると言える。 つまり、待ち受けでも待ち受けでなくても、ezurltoでもez2urltoでも、 「ブラウザを起動してアプリは終了させる」という動作はできない、と。 (わざわざ、そういう操作をできないようにしているのだと) …と、自分は理解しているんだが。マチガエテル?
ret_evt に EVT_APP_STOPを入れておいて、 ブラウザ終了時にアプリも終了させるのはダメ?
>>782 だめ。
まあカスタムイベント受信→イベントハンドラ内でISHELL_CloseApplet()で見た目としては閉じられそうだけど。
サービスガイドでezurlto周りの説明覚えてないが、 ezurlto使ってプログラミングガイド通りの記述をすると、 アプリはサスペンドに入るっぽいんだが。 サスペンドイベント捕まえてISHELL_CloseApplet()呼んでもアプリは終了しなかった。 ez2urltoは試してないんでわからん。
ez2urlto で ISHELL_BrowseURL() して、即 ISHELL_CloseApplet() じゃだめなん? ・・・自分で試してみれって話だな。w
>>785 いっしょにブラウザも終わってしまいますねー。
一応それっぽいことはできました。
ブラウザ起動で、サスペンド中は待機。
で、アプリに戻ってきた場合は、終了するclassに入っていく・・ような。
一瞬の間はできてしまいますが。
検証とおるかなー
787 :
デフォルトの名無しさん :05/02/13 23:43:47
なんだよみんな連休かよバーカ
(゚∀゚)アヒャヒャヒャヒャ 休日出勤頑張れ!
今はKDDI検証が渋滞中らしいからみんな暇なんかね?
790 :
デフォルトの名無しさん :05/02/14 14:12:29
ぶりゅっ
漏れも渋滞待ち ノ 今思えば、ちゃんと休み取っとくんだった・・・
乙。代休は取れへんのか?
794 :
デフォルトの名無しさん :05/02/16 13:13:28
誰が作ったかわかんないBREWアプリなんて どうせ怖くて落とせないだろうし無問題。
>795 いや、アプリゲットは公式コンテンツへもリンクできるから、公式コンテンツを宣伝できるってことでしょ。 勝手アプリなんて今のBREWでできるわけないし。
カメラの道は”無駄に”厳しいっす 端末仕様書に嘘が書いてあったりヘッダファイルにバグがあったり おまいら本当にCPにアプリ作らせる気があるのかと>K,Q
>>797 禿しく同意w
機種毎にフォントが違うのはどーにかするが、
カメラまわりの機種依存処理はホントひどいな。
半年ぶりにBREWに戻れそうです。おまいら、よろしく。 ところで半透明くらい使えるようになった?
おまいの脳内の中ではバリバリ半透明使えるぜ
アルファブレンディングくらい自分で書けと。 ところで、DBGPRINTFを使ってる人ってリリース時にどうやって削除してる? ILoggerはマクロで抑制できるけど、DBGPRINTFは無理だよね? 可変長引数を取るマクロってARMコンパイラで使えるの?
>>801 マクロじゃなくて置換で
#ifdef _DEBUG
#define TRACE DBGPRINTF
#else
#define TRACE if(0)DBGPRINTF
#endif
if(0)DBGPRINTFの方は常に偽なので最適化で削除される。
あまり誉められたやり方じゃないが、ARMコンパイラで警告出さずにやる方法はこれしか思いつかん
かった。#else〜#define TRACE〜#endifの空宣言にすると意味の無い文字列やシンボルがあります
とか警告出るのよね。
>>802 おーありがとう。
今は
#if defined(DBGPRINTF) && !defined(_DEBUG)
#undef DBGPRINTF
#define DBGPRINTF
#endif
ってやってて、Warningでまくってたわw
#define DBGPRINTF(fmt, ...)
が使えればいいんだけどねぇ。
>>802 BREW環境はよく知らない通りすがりですが
TRACE((fmt, ...));
と書いとけば
#ifdef _DEBUG
#define TRACE(args) DBGPRINTF args
#else
#define TRACE(args)
#endif
でいけるような。
>>804 なるほど、()で引数1つに纏めるわけですか。
しかしこれ、DBGPRINTFの第一引数はchar *固定なわけですがARMコンパイラだと
TRACE(("nullpo %d", 100));
を
DBGPRINTF(("nullpo %d", 100));
と展開しようとしてキャストエラー吐かれます(非0なconst intをポインタに変換できない)。
同様の手法でやるなら、IWEB_GetResponseの引数みたいに
#ifdef _DEBUG
#define TRACE(fmt, arg) DBGPRINTF(fmt, arg)
#else
#define TRACE(fmt, arg) /* nop */
#endif
と定義して、呼び出し側で
TRACE("ぬるぽ %sx%d", ("ガッ", 256));
みたいに呼ぶしかないんじゃないでしょうか。
>>805 > DBGPRINTF(("nullpo %d", 100));
TRACE(("nullpo %d", 100));
↓
#define TRACE(args) DBGPRINTF args
↓
DBGPRINTF ("nullpo %d", 100);
を期待したんですがARMのプリプロセッサの仕様かもしれないですね。
引数2つだとfmtだけのTRACEが書けないので、うーん。
一応確認ですがDBGPRINTFの後のargsに()は付けないんですよー。
#defie TRACE DBGPRINTF args でうまくいきました(*´д`)ゞ あーハズカシ…
おし、この勢いで行けばMIDPスレを超える!('з')
漏れの場合 #ifdef _DEBUG #define _DPRT0(fmt)DBGPRINTF("%s(%d):"fmt,_BN(__FILE__),__LINE__); #define _DPPRT1(fmt,a)DBGPRINTF("%s(%d):"fmt,_BN(__FILE__),__LINE__,a); #define _DPPRT2(fmt,a,b)DBGPRINTF("%s(%d):"fmt,_BN(__FILE__),__LINE__,a,b); #define _DPPRT3(fmt,a,b,c)DBGPRINTF("%s(%d):"fmt,_BN(__FILE__),__LINE__,a,b,c); #else #define _DPRT0(fmt) #define _DPRT1(fmt,a) #define _DPRT2(fmt,a,b) #define _DPRT3(fmt,a,b,c) #endif 見たいな感じにしてる。 ファイル名と行番号を自動で同じ行に出したいので、可変引数一括り方式だとうまく行かなくてね。 まあ3つ以上も引数とることなんてまず無いのでこれで用は足りるがほしければ定義増やせば良いだけだし。 ちなみに_BNはbasename的な機能を持たせたマクロね。
>>801 ごめん。ちょっと質問させて。
アルファブレンドを直接書いて、使い物になる速度って出ます?
たいがい広範囲にかぶせますよね?アルファ付きのものって
>>801 自分はこんな感じでやってます。
誰も書かないってことは、もしかして推奨されない方法?
それともトンデモ勘違いやらかしてる?
int debugprint(char* str,...)
{
#ifdef DEBUGLOG
va_list ap;
GP* gp;
gp = (GP*)(GETAPPINSTANCE());
va_start(ap,str);
VSNPRINTF(gp->gvarsDebugbuffer,128,str,ap);
va_end(ap);
DBGPRINTF(gp->gvarsDebugbuffer);
#endif
return(0);
}
悪い、トンデモ勘違いだった。
>>811 は忘れておくれ
javaに移植するとき面倒だからprintf構文を直接使うのはやめました
BREW→Javaって移植あるん?
#define TRACE !DEBUG ? (void)0 : DBGPRINTF
816 :
デフォルトの名無しさん :05/02/18 10:02:24
>>814 やったことあるよー、ゲーム下請けだけど
iアプリ→BREW→iアプリ
とか微妙な仕様変更付きでやったことがある。
当然iアプリ移植のときにサイズオーバーしたら仕様削減とか
してもらわんと入らないわけだが。
(,,゚Д゚)∩先生質問です ちょっとまえぐらいのレスでブラウザ起動について参考にさせていただきました。 で、W21Kなんですけど、起動しないんですよね。W21SとW21SAはできてるんです。 W21Kも、まったくできないわけでなく、電源を入れた直後ならできるという。。 メモリ周りなのか、ブラウザの履歴もおかしいような感じです。 ソースは、リファレンスのほとんどそのままです。 何か注意点あります?
>>818 メモリ周りっぽいなぁ。
EVT_APP_SUSPEND あたりで FALSE 返してるとか。
W21K だと ezurlto だから、ブラウザが起動してる間は
ShimBrowserInfo 構造体のヒープは解放しちゃいけないよん。
W21S と W21SA でうまくいってるのは、たまたま解放された
ヒープの内容が書き換えられてないだけだと思う。
>>725 あーウチと同じ症状だ。
CPからバグレポ着たとき「なんか見たことあるなぁ」と思ったら725さんの書き込みですた。
とりあえずW21Sのレジューム復帰後の処理落ち対処方法わかったけど
KDDIに確認するからってCPから検証止められた。
・・・・というか725さんと同じCPな気がする_| ̄|〇
質問お願いします。 端末のフォントサイズやフォントの種類を変更した場合 IHTMLVIEWERで作成した画面のテキストのフォントは追従し てくれますでしょうか? こういうのは機種(メーカー)依存?
822 :
デフォルトの名無しさん :05/02/19 00:37:26
ダイアログの作成をしようとしてますが、 ISHELL_CreateDialog(pi->a.m_pIShell, "dialog.bar", 6001, NULL); の戻り値がSUCCESSとなりません(コンパイル自体はできます)。 リソースIDやファイル名も合ってます。 ダイアログを作成するに留意する点ありませんでしょうか?
>822 EVT_DIALOG_INIT, EVT_DIALOG_START イベントにTRUEを返す。 IDialogは仕様が激しく糞であり、利用はまったく以ってオススメできません。 特にITextCtlを貼った場合、その動作ははっきり言って予測不能です。
824 :
デフォルトの名無しさん :05/02/20 00:43:35
IWEB_GetResponse()を使って同じLAN内のWEBサーバから画像を表示させようと しておりますが、表示に5秒ぐらい時間がかかってしまいます。 BREW出力ウィンドウを見ると、IWEB_GetResponse()を実行した後に ==>AEETAPI_cbCallEvent と表示され3秒ぐらい後にもう一回 ==>AEETAPI_cbCallEvent と表示されてます。 関数はこんな感じで実行してます。 IWEB_GetResponse(pi->web, (pi->web, &pi->piWResp, &pi->cb, pi->purl, WEBOPT_HEADER, "X-Method: GET\r\n", WEBOPT_METHOD, "GET", WEBOPT_END)); 表示速度を速める方法ありませんでしょうか?
先読みするぐらいしか考えつかないなあ。 事前にアクセスしといてメモリに置いとくのがいいのではないかと。 その場その場でネットワークからロードはオーバヘッドが大きすぎる気が。 ただGETでアクセスするだけでもIWebは時間がかかる。 ISocket使ってコネクション確立してhogehogeとやったほうがいいかも。
ああ…でも、ISocketでもその場その場でロードは 実用に耐えるか試したことないので、分からないな。 素直に先読みするのが賢いんではなかろうか。
っというか初回は遅いので空のドキュメントでもGET しとけばいいんじゃないの?
828 :
デフォルトの名無しさん :05/02/21 05:20:41
例えば、IBitmapからjpgファイルを出力するときってどうやってる?
>>828 こんにちは、坊や。
>>829 ピクセル参照してYUVに変換して8x8ブロックに切り出して、
DCTかけてACスキャンしてハフマン圧縮すればいいんじゃないか?
>>819 メモリの開放はしていないんです。
で、ブラウザが起動しないというよりは
接続できません
しばらくたってからリトライしてください
が出るんですよね。
画面には最後に表示したページのキャッシュ。
キャッシュを消して同じことをすると
延々とConnectingしているような感じです。
833 :
デフォルトの名無しさん :05/02/22 01:36:48
WindowsみたいにBitmapのボタンを作ろうとしているのですが、 簡単な方法ございませんでしょうか?
ボタン押とボタン通常の2パターン画像を用意する
プログラムで動的にアニメBCIを作りたいんですが、BCIフォーマットの説明資料 とかってどっかにないですかね?
>>833 Buttonクラスのようなものはないから、enabled/disabled、通常状態/押下状態
など各Bitmapを用意して自力で表示を切り替えて。
通常状態/押下状態の表現だけならBitmapで用意しなくても
IDISPLAY_FrameButton()でできる。これも表示の切り替えは自力でやるんだけど。
流れをぶった切って質問。 Extensionの中でイベントを処理したいときってどうすればいいの? イベントを受け取りたいExtensionをIAppletから継承すればいいのかね。
>>835 BCIの詳細な情報は非開示です。
>>837 AEE_* のイベントをExtensionが直接受け取ることは出来ません。
(イベントはアプレットのHandleEventに渡されるので)
アプレットからExtensionに渡す処理が必要になります。
(アプレットがIMENUCTL_HandleEvent()を呼び出すのと同じことです)
コールバックなら直接受け取ることも出来ますが...。
>>838 さんくす。
やっぱり
>(アプレットがIMENUCTL_HandleEvent()を呼び出すのと同じことです)
みたいなことしないといけないのか。
>>819 818じゃない別人ですが、質問です。
ShimBrowserInfo構造体の定義が見つからないんで、自分で定義しちゃいました。
とりあえずブラウザ起動したんですが、自分で定義するもんですか?
決められた構造体なのに、なんか気持ち悪いです・・・
>>840 普通に aeekddi.h に書いてあるように見えるのだが。
842 :
デフォルトの名無しさん :05/02/23 10:32:53
サンプルのFakeRPGのソース見ても理解できなかったので教えてください。 ISpriteインターフェースのタイルマッピング機能を使うと、 画面におさまらないほどのMAPでも管理してくれて、 さらに、スプライトする画像を動かすだけで、表示されてない部分に 移動したときでも、周り(MAP)も描画してくれますか? それとも、毎回毎回、 画面に表示できるだけのMAPデータをセットしないといけないのでしょうか?
844 :
デフォルトの名無しさん :05/02/23 16:19:26
端末のユーザー別のユニークなIDを取得する方法ってありますか? マニュアルを調べているんですけどなかなか見つからなくって。
>>844 IKDDIPHONESYSTEM_GetSubscriberID()
ではどうだろうか?
>>841 ありがとうございます。
ShimSample内に入っていたので、サンプルいらないから入れてませんでした。
サンプルは必ずインストールせよ、ってことですかね?
やはり、気持ち悪い・・・
>>844 ITAPI_GgetStatusのszMobileIDは?
一応電話番号を基本とするID取れるけど。(KDDIではまんま電話番号)
ただ、一度通信しないとこれが取れない端末とかあるけどね。
InfobarとかInfobarとかInfobarとか・・・
>>844 サブスクライバIDか端末電話番号か、e-mailアドレスのどれかだね。
849 :
844 :05/02/24 12:45:37
>>845 ,847,848
ありがとうございます。
早速試してみます。
850 :
デフォルトの名無しさん :05/02/24 15:12:43
質問です。 AEEClsCreateInstanceで作ったIApplet/AEEAppletのポインタを取得できる関数があった気がするのですが名前が思い出せません。 たしかヘッダーで g_pvtXXXX か何かを返していたと記憶していたのですが grep で見つけられませんでした(見つかったのはGET_HELPERのみ)。 どなたか教えてください。
事故レスです。すみません。 GETAPPINSTANCE()でした。書き込んだ後すぐに見つけました。以後気をつけます。
あー・・・ GETAPPINSTANCE()の存在知らずにずっとポインタ渡してたよorz まぁ・・・いっか
853 :
デフォルトの名無しさん :05/02/24 17:04:21
BREWなんか動きゃいんだよ
>>851-852 GETAPPINSTANCE()に関しては某機種の某コールバック中で正常に動作しない不具合が...。
なので過信しない方がいいっす。
>>854 どうせなら報告もかねてちゃんと機種を晒してくれw
>>855 いやKDDIのFAQに出とるし。ヒントは2.0端末。
GETAPPINSTANCE()で探せば出るでしょ。
BREWはCP通さないと落ちてこない情報とか特に多いから 面倒だよなぁ・・
>GETAPPINSTANCE()の存在知らずにずっとポインタ渡してたよorz 逆にその方がわかりやすい構造になる罠w 安易にどっからでもポインタを参照するよりはクラス(Cなら構造体)の 結び付きとか意識した設計になるっしょ。 …一概には言えないかな?
>>858 普段はそれでいいけど・・・
コールバック使うクラスはメンバにAEEAppletのポインタを持つ謎仕様orz
エミュでMA5のSMAFを再生するのは不可能でしょうか。 何も鳴らない・・・。 アプリにはそこまで必要ないってことなのか・・・。
3Dの表示をやっているんですがIMICRO3D_Render_drawFigure()が 失敗してるっぽい感じでモデルデータが表示されません。 失敗する原因、いくつかあると思いますが、 もし知っている方がいれば教えてもらえないでしょうか?
>>861 カメラがあさっての方向を向いてるんじゃないの?
もしくは遠すぎるか。
863 :
862 :05/02/25 22:01:41
あと、MascotCapsuleの描画領域はdirtyと判定されないようだから、 背景を何か描くか、明示的にIBITMAP_Invalidate()を呼ばないと駄目だった 気がする。
864 :
デフォルトの名無しさん :05/02/25 23:00:09
試験用端末を全部窓から投げ捨てろ!
865 :
デフォルトの名無しさん :05/02/25 23:32:19
iMona使えてる人いる?
iMonaって、JAVAアプリじゃないの? 移植して自分の端末だけに入れて楽しむの?
デスマの人手挙げてー?
ノ
∧_∧ ⊂(´・ω・`)つ-、 /// /_/:::::/ 大変だねぇ |:::|/⊂ヽノ|:::| /」 / ̄ ̄旦 ̄ ̄ ̄/| /______/ | | | |-----------| |
がんがれよ 検証マダー?
*と+をあっちこっちで記述ミス発見。 あはははははははははははfはふぉあうydfさhsdfpふじこp;@ 渋滞させてくれたみんな、サン糞!
>>862 レスありがとうございます。
IMICRO3D_Render_drawFigureの返値調べたらHI_FALSEになってるみたいです。
で、ちょっと質問なんですがFigureに正常にロードできてるか見る方法ってありますか?
あとdrawFigureをする前にしなきゃいけないこととかあります?
>>872 IMICRO3D_Figure_loadMbacDataの戻り値じゃなくて?
これでHI_TRUEが返ってれば大丈夫だと思うけど。
あとはサンプルのファイル名(とテクスチャ名)だけ差し替えてテストしてみるとか。
drawFigureの前ってカメラの行列設定くらいしか無かったような。場合によっては
setPattern/setTextureとか。
それがロードはできてるみたいなんですよ。 IMICRO3D_Figure_loadMbacDataではHI_TRUE返ってきてます。 Figure構造体の中のいくつかの変数見たんですが、ロード直後とIMICRO3D_Render_drawFigureの直前の数値が一緒でした。 なのでロードの失敗はないと思います。 この状況でIMICRO3D_Render_drawFigureを失敗するっていうのは何が原因なんでしょうか・・・orz
>>874 そんじゃ、やっぱしテクスチャがセットできてないとか、Renderの設定がおかしい
(setVramのあたりとか)じゃない?
876 :
デフォルトの名無しさん :05/02/28 16:46:22
アドバイスありがとうございました。なんとかできました。 なんとIMICRO3D_Render_initializeしてなかったです・・・。 たったこれだけで丸1日かけてしまっくぁwせdrftgyふじこlp;@:「
barファイル(もしくはbriファイル)の内部構造ってどっかに説明ころがってませんかね? 多言語対応でメッセージをすべてリソースから読むのは良いのですが、メッセージの種類が 増えたときとか、5つも6つもすべてのリソースに追加するのってかなり面倒で・・・ フォーマットが分かればCSVとかで用意して自動生成できるんですけどね〜 まあおそらく非公開なんだとは思いますが・・・
>878 ResourceEditor3.0から、中間フォーマットをXMLで吐くようになり、これから(コマンドラインで)barファイルを生成可能です。 XMLのフォーマットは見ればだいたい分かるものなので、推測して生成することはできると思います。 SDK3.0 インストールして使ってみてください...
いやまて、実際にどう動くかとかは使って無いからわからないけど、 コマンドラインでのbar生成ってQのサイトに以前から無かったか? 勘違いかな?
じゃあURLを書きなさい
>>881 以前
bri (フォーマット未公開、バイナリで解読困難)→bar
現在
bfx(フォーマット未公開だけどXMLベース、何とか解る)→bar
そんな訳で少しは使い易くなったはずです。
>>880-883 ありがとうございます〜
SDK3.0だとXMLなんですね。
それは知りませんでした。
XMLならかなりやりようがあるので、それで対応したいと思います。
>>879 ありがとうございます。
既存リソースファイル郡に1つだけ項目追加とかには今までWSHのsendkey
で対処してたんですが、中国語とか入ってくるともうだめぽって感じだったんで。
しかし、海外向けだと結構端末の癖があって泣かされますね。
#それでもJAVAよりはましだけど
電波はいらないと動かない端末とかあるし、サーバ連携周りはどうしても現地じゃ
ないとテストできないし。
886 :
デフォルトの名無しさん :05/03/01 23:05:55
例えばJAVAとBrewでftpソフトのような通信関連のアプリを作った場合 理想的にはどれくらい速度の差が出るのでしょうか?
BREW Browserのインストールディレクトリ\tools\barc.exe がコマンドライン版のbar生成ツールかなと思う 現在はもうサイトにも無い様子
BREWのリソース作成環境は嫌がらせとしか思えないよね。
>>887 BREW SDK 3.0には brewrc.exe が含まれており、こいつが883で書いたXML→barのコンバータです。
(883ではXMLファイルを.bfxと書きましたが .brxの間違いでした)
SDK3.0 の SDK User's Guide のリソースエディタ→BREWリソースファイルのコンパイル→
コマンドを入力してBREWリソースファイルをコンパイルする のページを参照してください。
BREW2.0とか2.1からでも、3.0で作ったbarを読み込んでも 問題無いもの?
>>890 RESTYPE_BINARY使わなければ大丈夫です...多分
RESTYPE_IMAGE、RESTYPE_STRINGは変わっていないです
>>890-891 とりあえず、SDK2.1のリソースエディタで作ったbriファイルを、SDK3.0のリソース
エディタで読み込みbrxで保存、brxをテキストエディタで修正してSDK3.0でbarを作っ
てみましたが、BREW2.1端末で普通に読めました。
おそらくIMAGEとSTRINGだけしか使わなければ大丈夫そうです。
やっと実機が来たので、とりあえず認証ファイルを取得しようとしたの ですが、0xaabbccddのフォーマットのESNが見当たらないです。 四角で囲ったアルファベットの後に、IDっぽいのが2行あるのですが、 これのうちのどちらかがそうなのでしょうか? あきらかに0xaabbccddのフォーマットではないのですけど。
>>893 TestSig取得のことか? 開発ツールガイドに出てるぞ。
>894 すみません。載ってました。 はずかしいなぁ。
IDATECTLで、YYYY/MM/DDのフォーマットで表示したいのですが、 IDATECTL_SetProperties( pMe->MyDate, DFMT_YYYY_MM_DD ); としても「3月 3, 2005」という表示になってしまいます。 他のフォーマットを指定しても表示が変わらないのですが、 何か見落としていると思われる点がありましたらご指摘願います。 環境 WinXP Pro SP2 VC++ 6.0 BREW SDK 2.1.1 端末:W21S
BREW2.0の機種なんか見捨てようと思います。
ちょっと聞きたいのですが サスペンドしたときに開放するメモリは MALLOCした部分だけでいいんですか? たとえば読み込んだbmpなども、一旦手放して 読み込みなおしですか?
回答:BMP含め不要なものは全て 解答:実際何が「必要」で何が「不要」かの判断はプログラマによるところなので 全部必要と思えば解放しなくて良いw
おお。じゃぁ開放できないんです!って粘ればおk?ウホホイ
開放するとリジューム時に不安定になります(゚∀゚) とか言う。
IMEDIAとかIWEBは握りっぱなしじゃまずいだろ
@以下のインスタンスは、サスペンド時に必ず解放しなければならない。 ・IFILE,IPOSDET,IKDDIPPP,IWEB,ISOCKET,INETMGR,IDNS,IMEDIA,ISOUND (通信系、サウンド系インタフェース全般) ・IKDDIPPP ・Extension A以下のインスタンスは、開放してはならない。 ・IFileCp,ITextCtl B以下の処理をしている場合は、必ずその処理を終了(停止)しなければならない。 ・サウンド(メロディ、ビープなど) ・アニメーション ・バイブレート ・バックライト ・ISHELL_SetTimer()したコールバック関数(キャンセルはISHELL_CancelTimer()) ・ファイル処理中[読み込み/書込み時](オープンされているファイルはクローズする) Cレジュームイベント中にしなければならない処理 ・レジューム要求”EVT_APP_RESUME”に対し、返却値として”必ず”TRUE”を返して下さい。 ”FALSE”を返却すると”EVT_APP_STOP”が送出されBREW アプリは終了してしまい、 BREW アプリは再起動されてしまします。
サービスガイドの「サスペンドとレジュームにおける留意点」を読んで判断せよ 少なくとも粘って言い張るとか言い訳を用意するとかそういうレベルの話じゃない
んだんだ。 最低限やらなきゃ行けない処理だけ施せばとりあえず検証は通る。 あとはレジューム時に上手くエラー処理しながら復元するぐらいかと。
int/long/int16/int32のsizeofを見て勘違いに気付く。Cで short または int といえば 'short int' のことで 2byte long といえば 'long int' のことで 4byte だと思ってたのでBREWでは int16(はshortだから) = int = 2byte int32(はlongだから) = 4byte であろうと… いやー int = long = 4byte だったとは。 4byteでありたい整数は律儀に全部 int32 と書いていたけどこれからは 普通に int でいいな。'int32'って書くの何か気持ち悪かったんだ実は。 …スンマセン 白状すると16bitCPU時代に身に付いたint=2byteの先入観がありました orz
あ"ぅーCPのチェックが通らないぃぃぃぃ 何でうちでチェックしたMAXヒープと向こうがチェックしたMAXヒープ違うんだ_| ̄|〇 しかも某チェックツールで確保したメモリも勝手に解放しちゃうし・・・ 某3Dくのいちゲーでも勝手に解放してたからBREW(というか某チェックツール?)の仕様なんじゃないかと・・・ しょうがない、もう一個の振る振るツールでチェックするか(;´Д⊂)
某チェックツールってのがK某だったら、奴はメモリ少なくなると落ちるぞ。 そういう時はS某を使うといいらしい。
909 :
デフォルトの名無しさん :05/03/04 18:48:26
ソフィアクレイドルのBREW圧縮ツールみたいなものを作りたいんですが、 それを作るために必要なBREW AEEの仕様みたいな資料は手に入らないでしょうか? ご存知の方いらっしゃいましたら、よろしくお願いします。
>>907 >>908 事前検証手順書、メモリ不足の備考欄。
退避起動でツールKが終了してしまう場合はツールSを使えと。
ツールSの振る舞いはサービスガイドP76に。
検証のメモリチェックはいくつかやればコツ覚えるから。がんばれ。
>>908 さん
>>910 さん
ありがとうございました。
やっぱりそれですよね。
ガイドとかサイトのFAQ読んでたんで知ってはいたんですが・・・
説明したらCPも納得したようなので問題解決です。
初回はすんなり検証通ったのに機種移植の段階でこんなに苦労するとは(;´Д⊂)
担当者がかわ(ごにょごにょ
担当者が可愛いのか。うらやますぃ。
913 :
デフォルトの名無しさん :05/03/05 01:29:08
1.ISHELL_SetTimer()でタイマーコールバックをセットする 2.別の処理Aを行う 3.処理Aの途中で1.でセットしたタイマーが作動する 4.3.で作動したコールバックが終了後、処理Aの途中から再開する タイマーを使えば普通にこういうことができると思ってたんですが、 処理Aの途中ではタイマーが作動しません。 イベントループに入って初めてタイマーが作動するようなんですが こういうものなんでしょうか。 もし1.〜4.のようなことができる方法ご存知でしたらお願いします。
914 :
デフォルトの名無しさん :05/03/05 01:32:16
できたらこまるでしょ
>>915 いやお恥ずかしい。
int32のtypedefがlongじゃなくてintだったら勘違いもなかったと思う。って言い訳だなw
アプリ内で生成したIBitmapオブジェクトをアプリ終了時にファイル保存し、 次回起動時にそのファイルを読み込んでIBitmapオブジェクトを得る、 という処理を考えています。やり方についてアドバイス願います。 読み込み時にISHELL_LoadBitmap()を使おうとする場合、IFILE_Write()の引数とする 「バッファとその長さ」と、保存しようとしているIBitmapの結び付けが思いつきません。 IBitmapを、ISHELL_LoadBitmap()で読み込める形のファイルで出力する場合、 どんなやり方になるでしょうか。 --- ISHELL_LoadBitmap()で読み込めるフォーマットってWindowsのBMP形式ですよね。 ということはIBitmapオブジェクトからWindowsのBMP形式を作り出して、それを保存 するということになりそうですが、手っ取り早くやるにはどうすれば… (実は上手い方法なんてなくて、皆さん自力で変換処理を組んでいるのでしょうか) また、読み込みでISHELL_LoadBitmap()にこだわらないなら、他にどのような やり方が考えられるでしょうか(どのインターフェイスが利用できるでしょうか)。
>>917 IBITMAP_QueryInterface()でIDIBを生成
IDIBからBMPファイルに保存する
って方法を取ってます
ヘッダを自分で生成したりしなくちゃいけないからめんどかったけど。。
>>913 割り込みじゃないからね。
Windowsのタイマーイベントだって基本的には同じでしょ。
それに、BREWは短い周期でフレームワークに処理を戻さないとウォッチドック
タイマに引っかかるからそれほど問題ないと思うし。
#もともとそんな高精度のタイマを期待しちゃいかんし
>>918 LoadBitmapとか使うのが前提じゃなければヘッダはなくてもいいんでない?
まあファイル読込処理は非同期で面倒だからヘッダ作ったほうが楽そうでは歩けど。
>>919 BREWの中だけでつかうのならヘッダはなくてもよかったのかな?
PC上で確認するためにはデータ部分だけじゃだめだったから
ヘッダ付与したりしてました・・・
ビルボードの作り方がわからない・・・_| ̄|○ 正方行列じゃないから逆行列使えないし。 どうすりゃいいんだろ?
>>922 ポイントスプライトってなんかまずいことないのん?重くなるとか。
DirectXとかだと汎用性があんまりないというかビルボードの方がいいとか言われてるっぽいんだが。
>>923 特に重いってことはないなぁ。
・自由変形ができない
・制御点がスプライトパターンの中心に固定
が不便じゃなきゃ、素直にポイントスプライトにしとくのが楽じゃないかなぁ。
頂点座標も計算しなくていいし、視点変換行列もワールドでいいし。
ちょっとお聞きしたいのですが、IMEDIA_Playで音楽を再生するときに かならず一瞬動作が遅くなるのですが、これはプログラムの書き方が 悪いからなのでしょうか? 勉強の一環でBREWでゲームをつくっているのですが、同時再生をする ことはできたのですが、効果音を鳴らすたびに一瞬動作が重くなるの はつらいので・・・
>>925 エミュレータ環境だとウチの所も曲のループの時とか処理落ちするね。
実機だったら、まず機種を言ってくれると助かる。
>>926 あ、やっぱりエミュレータだと処理落ちするみたいですね。
学生なので実機テストを行うことができませんので機種をいうことは
できないのですが、実機だとそのへんも普通に動くのでしょうか?
アイコンサイズって、26x26と16x16(一覧用)なの? アプリ選択時に表示される画像サイズは80x40くらい? いろいろ書かれてあって、どれが正しいのやらわからん。 BREW2.1以上だと、どのくらいですか?
端末仕様書とMIFエディタで表記違うのややこしいよね(´・ω・`) 余談だがアイコンサイズの限界に挑戦すると結構面白いぞ。 37ピクセルでOK、38ピクセルでNGとか訳わからん機種が結構ある。 Infobarは100ピクセルでも表示できる。 そーいうトコロだけ力入れんでも良いんだぞと。
>>929 ,930 みんなBREWの環境で苦労してんだね。
環境はまだまだ発展途上でしょ
>>927 とりあえず、ウチの所の実機では問題出てない。
>>928 BREW2.1になって今のところアイコンサイズは1種類で
対応できてるような気がする。
BREW2.0の時は2種類用意してたけど。
>>434 うーん、俺もデバッグできないな。
書いてあるとおりやってるんだが・・・
自分はVS .NET 2003。
「(パス)\BREW_Emulator.exe'にはデバッグ情報がありません。
続行する場合は[OK]を押してください」
のダイアログは俺も出た。
ソースはウィザードで作ったHelloBREW。
デバッガ起動すると、ブレークポイントがクエスチョンマークになる。
で、そこで止まってくれない。
BREWのバージョンはBREW SDK v2.1.1 Jaでつ。
アプレットディレクトリの変更を忘れてた・・・ あとmifを置くパスもサンプルと違った。解決。 チラシの裏日記でした(・∀・)
アドバイスありがとうございました。 ISHELL_LoadBitmap()は使わず、独自フォーマットのファイル読み書きで対処しました。 PCとのやり取りは不要なのでBMヘッダはなくても問題ありません。 基本的にはIBitmapから生成したIDIBをシリアライズして出力です。
>>933 そうですか、やっぱり実機テストができないとだめですね。
就職した先で必要となったらまたBREWを勉強しようと思います。
ありがとうございました。
939 :
デフォルトの名無しさん :05/03/10 15:19:28
>>933 A5502Kだと実機でも問題でましたよ;;
>>939 メモリ1M端末は相手にしn(ry
嘘です、ごめんなさい。
そういえばガイド読むとBREWフォルダ3M以上ならアプリサイズ600kまでオケー
3M以下なら300kだと思ったんだがタ○ムクラ○シスとか○言朱とかA5503SA(2M端末)で
300k超えてるんだけど・・・ええの?
ウチも最近アプリサイズが厳しいんだけど、300kの壁越えられるなら超えたい
>>940 大人の事情。本音と建前。
手っ取り早く300KBの壁を越えるための手段としてはgzip圧縮(IUnzipAStream)か。
リード&展開でローディング時間が増大、辞書のために瞬間的に40KBほどメモリ食うのが難点だけど。
.barファイルからだとgzip圧縮済みデータと展開後データで2重にメモリ使ってしまうのも嫌なところ。
逆にいえば.barからではなくファイルから直接読み込めば解決するけど、KDDIとしてはアプリ中で使う
データはできるだけ.barに置いて欲しいらしい。しかし絶対.barに収めなきゃいけないってわけでもないの
で交渉次第。
既にgzipまで組み込んでるならスマソ。
>>941 IUnzipAStream使ってみればわかるけど、展開は速いよ。
なんつーか、300kに抑える→300kなりのボリュームでつくる。 ってのが携帯ゲー製作のお手軽さ・楽しさじゃないかな? 少なくとも、うちみたいな弱小CPには、この制限はありがたいよ。
いいえ
>>941 さん
gzipですか。
たまに使いますが基本的に画像は絞りに絞ったPNG、数値データやテキスト系のデータはバイナリなのでほとんど圧縮されないので効果はイマイチなんですよね。
ファイルヘッダーの分だけ軽くなったりするけど劇的には減らないし・・・
>>943 さん
ゲームの種類によるんですよね。
パズルなんか300kもあれば十分なんですけどウチのジャンル的に
SRPGとかシミュレーション、ADVとかでリソースがデカイので苦戦中なんですよ。
PNGなんて使ったら、展開が遅くてかなわん。 BMP+gzipが一番バランスがいいと思った。微妙にサイズは増えるが。
947 :
デフォルトの名無しさん :05/03/11 17:35:34
>PNGなんて使ったら、展開が遅くてかなわん。 どんなアプリ作ってんの? ゲームでは問題ないけど。
>>948 起動に10秒待つのを問題があると考えるかどうか、だな。
>>949 なにそれ・・・
起動時にゆうに数十枚の画像開いて閉じてやってるが、
1秒もかかる機種見た事無いんだが。
pngの展開が遅いのも、gzipの展開が早いのも認めるが、
10倍以上も差がつくとは言えないと思う。
それ以前にやり方に問題があるに5000ガバス
>>950 いや、もちろん自分が作るものは、1秒かからず起動するように作るよ。
でも、作り方がまずくて10秒かかってるアプリを見ることもあるわけで。
ん〜? 俺はBMPでもPNGでも変わらないんだけど・・・ PNGの容量でもでかいのか?
>>951 その10秒の内訳が、PNG の展開処理であるのは確定なのか?
ソースを見れる立場ならば指摘してあげないのか?
このスレ的にはbciって使わないもの?
PNGもgzipも同じアルゴリズムなわけだが。
質問があるんだけどISHELL_BrowseURLを使ってアプリからwebブラウザに飛ばすのはどれが正しいの? urlto・ezurlto・ez2urltoがあるのは分かったのだが、どれを使えば分からない それとブラウザが起動したらSUSPENDが呼ばれるらしいんだが、呼ばれてないみたいだし… 実機で試せる環境じゃないからエミュで動かしてるんだけど、エミュだと詳しく分からないから教えてほしい…
>>951 フルスクリーンサイズのPNGをARM7端末で展開しても1秒間に10枚くらいはいけるけどね。
これで10秒って言うと100枚以上デコードさせてるってことかね?
ヒープが足りなくなる悪寒。
それ以前に10秒も処理占有したら、電源落ちる機種が大半だと思うが
普通は必要に応じて処理するよな 読み込み中でも同期とるようにするとか せめて"なぅろーでぃんぐ"ぐらいは出してるんだろな
すいません、質問です。 アプリ起動時のInitAppData()で、barからjpegファイルをロードするようにしているのですが、 jpegをロードするときはコールバック関数を使って、コールバック関数が呼ばれたら描画すると なってますよね(SONY端末以外はそんなことしなくても描画できますけど)。 複数jpegを起動時に一気読みしたいのですが、コールバック関数内で次のjpegをISHELL_LoadResImage() とIIMAGE_Notify()をする(を画像分コールバック関数用意して繰り返す)のではだめなのでしょうか。 実機で動かすと、リセット掛かるんですが・・・ よい方法がありましたら、教えてください。
追記です。 InitAppData()以外の場所(ある画面の描画時)に、コールバックで描画するのはでできました。 InitAppdata()内では、1画像だけコールバックで受け取るようにしてもリセットがかかりました。 よろしくお願いします・・・
全く自信ないが。 InitAppData()内でjpeg以外にbarから何か読み込み行ってるのとぶつかってるのかな・・?
いきなりInitAppdata()って言われても分からないぞw 多分スケルトンモデルで自動生成されるやつのことを言ってるのだろうけど。 で、それはCreateInstance()から呼ばれてるだろ。 この関数ってつまりコンストラクタだから、その中ではコールバックが必要な処理や 通信処理などはやらないもんだ。 起動時のタイミングでjpegが必要なら、(InitAppdata()を呼び出してる)CreateInstance() を抜けた後で読み込むようにするのが正解じゃないかな。
963さん> ありがとうございます。 barからの読み込みは、jpegロード以外に文字列を読み込んでいます。 でも、文字列ロード後にjpegをロードするようにしているので、ぶつかるということは ないかと思いますが、あっていますか? 964さん> たしかに!InitAppData()である必要は無いわけで・・・スマソ。 おっしゃるとおり、AEEClsCreateInstance()から呼ばれてます。 アドバイスのとおり、AEEClsCreateInstance()をAEE_SUCCESSで抜けたあとに処理を いれてみます。 場所としては、EVT_APP_STARTが適当ですかね。 ありがとうございました、結果はまたご報告します。
>>961 漏れの勘違いかもしれないが、機種によりぶつかる場合があるらしい。
状況が違うが、ファイルの読み込みとリソースの読み込みでぶつかった事ある。
AEE_SUCCESSに処理全部移して再現しないなら違うかな。
読み込みは非同期だったような…それで同時にアクセスして落ちてるのかな それはネットワーク関係だけだっけ?
終了時にどのメモリを解放するのか分からんorz 今までJavaやってきてメモリなんて気にした事ないからなぁ… MALLOCしたのは使わなくなったらFREE。イメージとかはRelease。 IWebはサスペンドの時にReleaseするとリジュム後に何故か使えなくなるorz ISHELL_CreateInstanceもどうすればいいのか分からんirz 誰かメモリ関係初心者に愛の鞭を…
969 :
デフォルトの名無しさん :05/03/15 01:32:42
プログラミングガイドでも読めば?
>>968 EVT_APP_SUSPENDでIWebをリリースした後、EVT_APP_RESUMEイベントで
ちゃんと、ISHELL_CreateInstance でIWebのインスタンスを作成している?
しかし、ヒープを理解していないのは BREWでは致命的。
そろそろ次スレの予感
>>970 >しかし、ヒープを理解していないのは BREWでは致命的
BREWどころかC系全般で致命的かと。
昔、JAVA上がりの香具師が作ったC++アプリを引き継いだらdeleteまったくして
なくて大変な目にあったよ…
むしろヒープがわからんとかってプログラマとして致命的だろう。 最近はJavaしか出来ないとかってPGが多いのか? っていうか、ソケットのコールバック、 インタフェース解放した後も呼ばれるんですが orz 解放→NULL代入→コールバック呼ばれる→NULLポインタにアクセス→リセット orz これってNULLで一度初期化するより、適当なデバッグ用関数に飛ぶようにしたほうがいいんじゃないだろうか?
コールバックでぬるぽチェックすりゃいいだけじゃね?
>>974 nullpoはチェックしてるけど、インスタンスをMALLOCで確保したりすると
解放した領域を他のとこで使われてnullpoじゃ無くなったりするじゃん?
こーいう場合はどうしようもないでしょ。
確認。 ISOCKET_Cancel 呼んでもダメって事?
>>973 うーん、ちょっとありえないですね。
ちなみに、ISocketのインスタンスを解放した時点で、ISocketに関する Connect、Readable、Writeableの
コールバックは解放されるはずです。(ISOCKET_Cancel()をコールする必要はないです。)
ただし、INetMgrレベルのコールバックはこの時点では解放されないので、INETMGR_OnEvent()の
SO_CLOSING/SO_CLOSED イベントは、旧ISocketポインタと共に通知されます。
(ここで通知されるISocketポインタの指す先は有効とは限らない、と3.1.2のAPIリファレンス
PFNNETMGREVENT のページに書いてあります)
>>977 エミュでは問題なく動いた(解放した後はコールバックが呼ばれない)
W21SAでは呼ばれる。
>>978 うーん、やっぱり「有り得ない」ですね。
どのコールバックが来ていますか?
IIMAGE_SetStream()とか、ISOURCEUTIL_SourceFromSocket()とかでリファレンスカウントが増えてたりしませんか?
>>979 Writeableだけ来るよ。
Refカウント増えてるんだったらエミュの時点で問題が出るはず。
>>980 いや、IImageのパフォーマンスとか実機とエミュで違うので、IImageの解放とISocketの解放の
順番が変わったりしているかと思いまして。
とりあえず、ISOCKET_Cancel( , NULL, NULL) を明示的に呼んで、あとリファレンスカウントが
本当に0になっているかどうかも戻り値で確認して、それでも直らないようであれば
BREWヘルプデスクに質問してください。
982 :
デフォルトの名無しさん :05/03/15 22:33:14
SUSPEND時についての質問です。 みなさん画像の開放してますか? ヒープ内の画像を全部開放してみたところ 着信時にて端末がおちるのですが・・・
>>982 画像を解放するかどうかはこのスレで同じ話出てるから読んでみて。
>着信時にて端末がおちるのですが・・・
画像を解放すること自体とは無関係。プログラムのどこか別の点に問題がある。
何とかエミュでI am Browser(URL付き)が表示されるようになったよ。 フォーラムを見てみたらエミュではurlto、実機ではez2urltoを使うといいみたいだな。 でも別の場所で問題っぽい事が起きて困っている。 ブラウザが起動する際にはSUSPENDが送られて、ブラウザを終了したらRESUMEされると思うんだが エミュでISHELL_BrowseURLを呼ぶとSUSPENDされて一度RESUMEに戻ってからSUSPENDされてブラウザが 起動してるみたいなんだ… ブラウザを起動させたらアプリを終了させたかったんだけど、過去ログを見ると無理っぽいから ブラウザから帰ってきてRESUMEされたらアプリを終了する形にしたいんだが 上記の動きをして望みの結果が得られない… 原因や対処方法が分かる人は教えて欲しい…
ブラウザ起動時に時間保存。2秒以上経ったら終了。ez2urltoは初期QVGA機は対応してないけどいいのかな。
なぁ、提出用の状態遷移表って、どんぐらい真面目に書けばいいもの? ゲーム中の状態とか、真面目に書いたらえらいことになるんだが・・・ ステート何百あると思ってるんだよ!!>KDDI
起動及び読み込み及び初期化→タイトル→ゲーム→ゲームオーバー ↓ ↓ クリア→エンディング→終了処理 ↓ タイトルへ戻る
細かく書け
>>986 マジでシューティングとかカードゲームとかRPGとか、まともに書いてると気が狂います。
987さんの遷移にエラー画面とサウンド処理を入れたレベルで何とかなりますよ。
全面ノーミスだと隠しステージとかいう鬼難易度の遷移を作ると デバッガーを泣かせることができるらしいという噂。
###2でNetDebugToolってのが起動するんですが(エミュでも確認できます) これの表示の意味ってどっかに載ってます? 色々探したけど見つからなくて・・・ ご存知の方いましたらよろしくです〜
誰か次スレを頼む
テンプレ自体は
>>1-6 (2除外)で変更ないかな
せっかくテンプレがあるので1にはテンプレを、 他いくつかコピっときました。 ミスってたらスマソ
ume
梅
998 :
産め :05/03/17 13:02:58
産め
999 :
膿め :05/03/17 13:03:19
膿め
1000っと
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。