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

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

static void Graphix_UseIGraphicsAndIDisplay(GraphixApplet* app)
{
  IGraphics*  graphics = app->g;
  IShell*  shell = app->a.m_pIShell;
  IDisplay*  display = app->a.m_pIDisplay;
  IBitmap*  bmp;
  AEEClip  clip;
  AEECircle  circle;
  const AECHAR  str[] = {'B','R','E','W',' ','B','R','E','W',' ','B','R','E','W','\0'};

  // 画面を緑色でクリア
  IGRAPHICS_SetBackground(graphics,0xCC,0xFF,0xCC);
  IGRAPHICS_ClearViewport(graphics);

  // クリッピング領域を四角形に設定
  clip.type = CLIPPING_RECT;
  clip.shape.rect.x = 20;
  clip.shape.rect.y = 20;
  clip.shape.rect.dx = 80;
  clip.shape.rect.dy = 80;
  IGRAPHICS_SetClip(graphics,&clip,0);
  IDISPLAY_SetClipRect(display,&clip.shape.rect);

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

    // ビットマップを描画
    IDISPLAY_BitBlt(display,0,0,100,100,bmp,0,0,AEE_RO_COPY);

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

  // 塗り潰しモードを設定
  IGRAPHICS_SetFillMode(graphics,TRUE);

  // 描画色を青色に設定
  IGRAPHICS_SetColor(graphics,0x88,0x88,0xFF,0x00);
  IGRAPHICS_SetFillColor(graphics,0xCC,0xCC,0xFF,0x00);

  // 円を描画
  circle.cx = 80;
  circle.cy = 70;
  circle.r = 40;
  IGRAPHICS_DrawCircle(graphics,&circle);

  // 文字色を黒色に設定
  IDISPLAY_SetColor(display,CLR_USER_TEXT,MAKE_RGB(0x00,0x00,0x00));

  // 文字列を描画
  IDISPLAY_DrawText(display,AEE_FONT_NORMAL,str,-1,0,55,NULL,IDF_TEXT_TRANSPARENT);
  IDISPLAY_DrawText(display,AEE_FONT_NORMAL,str,-1,20,70,NULL,IDF_TEXT_TRANSPARENT);

  // クリッピング領域をリセット
  IGRAPHICS_SetClip(graphics,NULL,0);
  IDISPLAY_SetClipRect(display,NULL);

  // 画面更新
  IGRAPHICS_Update(graphics);
  IDISPLAY_Update(display);
  return;
}