GUIAAArc.c
上传用户:zbk8730
上传日期:2017-08-10
资源大小:12168k
文件大小:2k
源码类别:

uCOS

开发平台:

C/C++

  1. /*
  2. *********************************************************************************************************
  3. *                                                uC/GUI
  4. *                        Universal graphic software for embedded applications
  5. *
  6. *                       (c) Copyright 2002, Micrium Inc., Weston, FL
  7. *                       (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
  8. *
  9. *              礐/GUI is protected by international copyright laws. Knowledge of the
  10. *              source code may not be used to write a similar product. This file may
  11. *              only be used in accordance with a license and should not be redistributed
  12. *              in any way. We appreciate your understanding and fairness.
  13. *
  14. ----------------------------------------------------------------------
  15. File        : GUIArcAA.C
  16. Purpose     : Draw Arc routines with Antialiasing
  17. ----------------------------------------------------------------------
  18. Version-Date---Author-Explanation
  19. ----------------------------------------------------------------------
  20. 1.00.00 000728 RS     First release of the new algorithm
  21. ----------------------------------------------------------------------
  22. Known problems or limitations with current version
  23. ----------------------------------------------------------------------
  24. None.
  25. ----------------------------------------------------------------------
  26. Open issues
  27. ----------------------------------------------------------------------
  28. None
  29. ---------------------------END-OF-HEADER------------------------------
  30. */
  31. #include "GUI_Protected.h"
  32. #include <stdio.h>
  33. #include <stdlib.h>
  34. #include <string.h>
  35. #include <math.h>
  36. static void _DrawArcAA (int x0, int y0, int rx, int ry, int a0, int a1) {
  37.   int PenSizePrev = GUI_GetPenSize();
  38.   GUI_AA_Init(x0-rx-PenSizePrev, x0+rx+PenSizePrev);
  39.   GUI_SetPenSize(PenSizePrev * GUI_Context.AA_Factor);
  40.   GL_DrawArc(GUI_Context.AA_Factor*x0, GUI_Context.AA_Factor*y0, GUI_Context.AA_Factor*rx, GUI_Context.AA_Factor*ry,a0,a1);
  41.   GUI_SetPenSize(PenSizePrev);
  42.   /*
  43.   // Cleanup
  44.   */
  45.   GUI_AA_Exit();
  46. }
  47. void GUI_AA_DrawArc(int x0, int y0, int rx, int ry, int a0, int a1) {
  48.   #if (GUI_WINSUPPORT)
  49.     WM_LOCK();
  50.     WM_ADDORG(x0,y0);
  51.     WM_ITERATE_START(NULL) {
  52.   #endif
  53.   _DrawArcAA( x0, y0, rx, ry, a0, a1);
  54.   #if (GUI_WINSUPPORT)
  55.     } WM_ITERATE_END();
  56.     WM_UNLOCK();
  57.   #endif
  58. }