/*******************************************************************
*
*       _Draw

  This function draws the non high resolution pointer
*/
static void _Draw(void * p) {
  PARAM * pParam = (PARAM *)p;
  if (pParam->AutoInfo.DrawFixed) {
    GUI_ClearRect(160, 60, 259, 159);
  }
  GUI_AA_FillPolygon(pParam->aPoints, countof(_aPointer), 165, 155);
}
/*******************************************************************
*
*       _DrawHiRes

  This function draws the high resolution pointer
*/
static void _DrawHiRes(void * p) {
  PARAM * pParam = (PARAM *)p;
  if (pParam->AutoInfo.DrawFixed) {
    GUI_ClearRect(60, 60, 159, 159);
  }
  GUI_AA_FillPolygon(pParam->aPoints, 
                     countof(_aPointer), 
                     65  * pParam->Factor, 
                     155 * pParam->Factor);
}
/*******************************************************************
*
*       _cbWindow

  This is the callback for the window. A callback was used
  for memory devices.
*/
static void _cbWindow(WM_MESSAGE* pMsg) {
    switch (pMsg->MsgId) {
    case WM_PAINT:
        GUI_SetBkColor(_color_a);
        GUI_ClearRect( 0, 0, 250, 14);
        GUI_SetBkColor(_color_b);
        GUI_ClearRect( 0, 15, 250, 29);
        GUI_SetBkColor(GUI_BLACK);
        GUI_ClearRect( 0, 30, 250, 60);
        GUI_SetColor(_color_c);
        GUI_FillPolygon(_aPolygon, POLY_POINTS, _pos_x1, _pos_y1);
        GUI_AA_FillPolygon(_aPolygon, POLY_POINTS, _pos_x2, _pos_y2);
        GUI_AA_EnableHiRes();
        GUI_AA_FillPolygon(_aPolygonHiRes, POLY_POINTS, _pos_x3, _pos_y3);
        GUI_AA_DisableHiRes();
        break;
    default:
        WM_DefaultProc(pMsg);
    }
}
示例#4
0
/*********************************************************************
*Function name	: Draw
*Parameters     : void *p
*Return value	: NULL
*Description	: Draw the watch
**********************************************************************/
static void Draw(void * p)
{
	PARAM * pParam = (PARAM *)p;
	if (pParam->AutoDevInfo.DrawFixed)
	{
		/* Draw fixed background */
		GUI_ClearRect(37, 0, 30+ bmwatch.XSize, bmwatch.YSize);
		GUI_DrawBitmap(&bmwatch, 37, 0);
	}

	/* Draw moving objects */
	GUI_SetColor(GUI_BLACK);
	GUI_AA_FillPolygon(pParam->aPoint1, GUI_COUNTOF(_aNeedle[0]), MAG * LCD_GetXSize() / 2, MAG * (LCD_GetYSize() / 2));
	GUI_AA_FillPolygon(pParam->aPoint2, GUI_COUNTOF(_aNeedle[1]), MAG * LCD_GetXSize() / 2, MAG * (LCD_GetYSize() / 2));
	GUI_AA_FillPolygon(pParam->aPoint3, GUI_COUNTOF(_aNeedle[2]), MAG * LCD_GetXSize() / 2, MAG * (LCD_GetYSize() / 2));

	if (pParam->AutoDevInfo.DrawFixed)
	{
		/* Draw fixed foreground (if needed) */
		GUI_SetColor(GUI_BLACK);
		GUI_FillCircle(160, 120, 3);
	}
}
void GUIDEMO_DemoPolygon(void) {
  int XMid = LCD_GetXSize() / 2;
  int YMid = LCD_GetYSize() / 2;
  GUIDEMO_ShowIntro("Arbitrary Polygons", 
                    "\nStandard and antialiased");
  GUI_SetColor(GUI_WHITE);
  GUI_SetFont(&GUI_FontComic18B_ASCII);
  #if GUIDEMO_LARGE
    GUI_DispStringAt("Arbitrary\nPolygons", 0, 0);
  #endif
  GUI_FillPolygon(&_aArrow[0], 7, XMid - 50, YMid + 40);
  GUI_FillPolygon(&_aArrow[0], 7, XMid + 50, YMid + 40);
  GUI_SetColor(GUI_GREEN);
  GUI_FillPolygon(&_aTriangle[0], 3, XMid, YMid + 60);
  GUI_SetColor(GUI_WHITE);
  #if GUI_SUPPORT_AA
    GUI_AA_EnableHiRes();
    GUI_AA_FillPolygon(&_aiCursor[0], 4, XMid * 3, (YMid - 40) * 3);
  #endif
  GUIDEMO_Wait();
}