GLS Developer's BBS
  新規投稿 ┃ ツリー表示 ┃ 一覧表示 ┃ トピック表示 ┃ 検索 ┃ 設定 ┃ ホーム  
18 / 44 ←次へ | 前へ→

Re:クリッピング画像のテクスチャ利用
 knockedout  - 04/2/1(日) 0:25 -

引用なし
パスワード
   返答ありがとうございます

▼L.Entis(開発者)さん:
> で、クリップ画像を描画する方法ですが、rp.dwFlags に E3DRP_RENDER_REV_IMAGE を指定した場合には、rp.pSrcImage に元の画像(ReadImageFile 関数で読み込んだり CreateImage 関数で生成したものなど)を指定し、rp.rev.nViewVertexes, rp.rev.nViewVertexes メンバをつかってクリップして表示したい領域を囲んだ凹でない多角形を指定すれば実現できますので、元の画像バッファへのポインタと矩形情報を管理しておけば良いのではないでしょうか?

というわけで

E3D_RENDER_PARAM    rp ;
::eslFillMemory( &rp, 0, sizeof(rp) ) ;
EGL_POINT    ptHotSpot = m_Image.GetHotSpot( ) ;

rp.dwFlags = E3DRP_RENDER_REV_IMAGE | E3DSAF_TEXTURE_SMOOTH ;
rp.rgbaColor.rgbMul.dwPixelCode = 0x00FFFFFF ;
rp.rgbaColor.rgbAdd.dwPixelCode = 0;

rp.pSrcImage = m_Image;

E3D_VECTOR_2D ViewVertexes[4];
ViewVertexes[0].x = (REAL32)(ptRect->left);
ViewVertexes[0].y = (REAL32)(ptRect->top);
ViewVertexes[1].x = (REAL32)(ptRect->right);
ViewVertexes[1].y = (REAL32)(ptRect->top);
ViewVertexes[2].x = (REAL32)(ptRect->right);
ViewVertexes[2].y = (REAL32)(ptRect->bottom);
ViewVertexes[3].x = (REAL32)(ptRect->left);
ViewVertexes[3].y = (REAL32)(ptRect->bottom);

rp.rev.vRenderPos = vPos ;
rp.rev.vRevCenter.x = (REAL32) ptHotSpot.x ;
rp.rev.vRevCenter.y = (REAL32) ptHotSpot.y ;
rp.rev.pRevMatrix = matrix ;
rp.rev.nViewVertexes = 4;
rp.rev.pViewVertexes = ViewVertexes;

こんな風にして見ました。
今度は省略無しです(笑)
このときPrepareRenderParamは無事動いているのですが
バッファに何も描画されません。
ちなみに
rp.rev.nViewVertexes = 0;
とした場合はキチンと画像全体が表示されます。

97 hits
<Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; i-NavFourF)@YahooBB219015025008.bbtec.net>

クリッピング画像のテクスチャ利用 knockedout 04/1/31(土) 1:04
┗ Re:クリッピング画像のテクスチャ利用 L.Entis(開発者) 04/1/31(土) 14:15
 ┗ Re:クリッピング画像のテクスチャ利用 knockedout 04/2/1(日) 0:25
  ┗ Re:クリッピング画像のテクスチャ利用 L.Entis(開発者) 04/2/1(日) 9:06
   ┗ Re:クリッピング画像のテクスチャ利用 knockedout 04/2/1(日) 17:25
    ┗ Re:クリッピング画像のテクスチャ利用 L.Entis(開発者) 04/2/1(日) 21:52

  新規投稿 ┃ ツリー表示 ┃ 一覧表示 ┃ トピック表示 ┃ 検索 ┃ 設定 ┃ ホーム  
18 / 44 ←次へ | 前へ→
ページ:  ┃  記事番号:
9038 C-BOARD v3.02 is not Free?