fsGUIX.c
上传用户:poi891205
上传日期:2013-07-15
资源大小:9745k
文件大小:1k
源码类别:

DVD

开发平台:

C/C++

  1. //
  2. // FILE
  3. // fsGUIX.c
  4. //
  5. #include "global.h"
  6. #include "func.h"
  7. #include "memmap.h"
  8. #include "graph.h"
  9. #include "framebuf.h"
  10. #include "fsGUIX.h"
  11. //
  12. // PIXEL
  13. //
  14. void
  15. FSGUI_DrawPixel(unsigned x, unsigned y, unsigned __y, unsigned __c)
  16. {
  17.     *Y_XY(x, y) = __y;
  18.     *C_XY(x, y) = __c;
  19. }
  20. /*
  21. void
  22. FSGUI_DrawPixel2(unsigned x, unsigned y, unsigned c)
  23. {
  24.     *Y_XY(x, y) = c>>16;        // bit [23:16]
  25.     *C_XY(x, y) = c;            // bit [15:0]
  26. }
  27. */ 
  28. //
  29. // ICON
  30. //
  31. void
  32. FSGUI_DrawIcon(int x, int y, const UINT8 *icon, const UINT8 cluty[], const UINT16 clutc[], UINT32 opt)
  33. {
  34.     int w = icon[0];
  35.     int h = icon[1];
  36.     int c = icon[2];
  37.     int t = icon[3];
  38.     int i, j;
  39.     icon+=4;
  40.     for (j=0;j<h;j++) {
  41.         for (i=0;i<w;i++) {
  42.             int cc, xx, yy;
  43.             cc = *icon++;
  44.             if (cc!=t && cc<c) {
  45.                 if (opt&FSGUI_ICON_MONO) cc=0;
  46.                 xx = x + ((opt&FSGUI_ICON_XFLIP) ? w-1-i: i);
  47.                 yy = y + ((opt&FSGUI_ICON_YFLIP) ? h-1-j: j);
  48.                 FSGUI_DrawPixel(xx, yy, cluty[cc], clutc[cc]);
  49.             }
  50.         }
  51.     }
  52. }