ホーム > デベロッパ > BREW プログラミング入門 > さらに描画のおはなし > - 2 / 2 -

さらに描画のおはなし - 2 / 2 -

static void Graphix_TransformSimple(GraphixApplet* app)
{
  IShell*  shell = app->a.m_pIShell;
  IDisplay*  display = app->a.m_pIDisplay;
  IBitmap*  dev;
  IBitmap*  tmp;
  IBitmap*  bmp;
  ITransform*  transform;

  // 画面を緑色でクリア
  IDISPLAY_SetColor(display,CLR_USER_BACKGROUND,MAKE_RGB(0xCC,0xFF,0xCC));
  IDISPLAY_ClearScreen(display);

  // デバイスのビットマップを取得
  IDISPLAY_GetDeviceBitmap(display,&dev);

  // デバイスビットマップと互換性のある作業用ビットマップを作成
  IBITMAP_CreateCompatibleBitmap(dev,&tmp,100,100);

  // リソース ファイルからビットマップを取得
  bmp = ISHELL_LoadResBitmap(shell,GRAPHIX_RES_FILE,TILE);
  if (bmp != NULL) {

    // 作業用ビットマップにビットマップを描画
    IBITMAP_BltIn(tmp,0,0,100,100,bmp,0,0,AEE_RO_COPY);

    // デバイスビットマップから ITransform インターフェースを作成
    IBITMAP_QueryInterface(dev,AEECLSID_TRANSFORM,&transform);

    // 作業用ビットマップからデバイスビットマップへ変形転送
    ITRANSFORM_TransformBltSimple(transform,          // オブジェクト
                                  0,                  // 転送先の X 座標
                                  0,                  // 転送先の Y 座標
                                  tmp,                // 転送元のビットマップ
                                  0,                  // 転送元の転送開始 X 座標
                                  0,                  // 転送元の転送開始 Y 座標
                                  100,                // 転送元の幅
                                  100,                // 転送元の高さ
                                  TRANSFORM_ROTATE_90 | TRANSFORM_SCALE_2,   // 変形方法
                                  COMPOSITE_OPAQUE);  // 転送モード

    // ITransform インターフェース破棄
    ITRANSFORM_Release(transform);

    // ビットマップ破棄
    IBITMAP_Release(bmp);
  }

  // 画面更新
  IDISPLAY_Update(display);

  // 作業用ビットマップ破棄
  IBITMAP_Release(tmp);

  // デバイスビットマップ破棄
  IBITMAP_Release(dev);
  return;
}