亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? lcdwin.c

?? uCOS/uCGUI在2440上的移植
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
*********************************************************************************************************
*                                                uC/GUI
*                        Universal graphic software for embedded applications
*
*                       (c) Copyright 2002, Micrium Inc., Weston, FL
*                       (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
*
*              礐/GUI is protected by international copyright laws. Knowledge of the
*              source code may not be used to write a similar product. This file may
*              only be used in accordance with a license and should not be redistributed
*              in any way. We appreciate your understanding and fairness.
*
----------------------------------------------------------------------
File        : LCDWin.C
Purpose     : Driver for Simulator under Windows
----------------------------------------------------------------------
Version-Date---Author-Explanation
----------------------------------------------------------------------
2.00    010402 RS     a) LCD_GetDevCaps removed from driver
                         (now LCD.c)
1.30c   000529 JE     a) Interface changed
1.30b   000428 RS     a) DIB class eliminated
                      b) Internal cleanups, support for high color
1.30a   000417 RS     a) Major cleanup in DIB class
1.30    000309 RS     a) Interface change for emWIn V1.30
                         (LCD_L0_SetLUTEntry, LCD_GetDevCap)
1.10a   000121 RS     a) RECTHEIGHT, RECTWIDTH modified in order to
                         fix bug which would at some time prevent
												 displaying the first line of the display.
1.10.00 000110 RS     a) Modifications in order to make it easy to
                         implement driver in any windows program
1.04.02 991118 RS     a) additional assertion added
                         LCD_MAX_LOG_COLORS
1.04.01 991018 RS     a) Support for LCD_FIXEDPALETTE added
                         with Anitaliasing enabled
1.04.00 991013 JE/RS  a) Support for LCD_FIXEDPALETTE added
                      b) Driver now accepts the same LCDConf.h as
											   the embedded system
											c) Bugfix for ..
1.02.02 990831 RS     a) Small optimization added for 16-color bitmaps
1.02.01 990726 RS     a) Transparency support for 16-color bitmpas
                         added
1.02.00 990212 RS     a) New interface version 1.02 supported
1.00    990118 RS     First release
----------------------------------------------------------------------
Known problems or limitations with current version
----------------------------------------------------------------------
---------------------------END-OF-HEADER------------------------------
*/


#if defined(WIN32) && !defined(LCD_SIMCONTROLLER)

#include <windows.h>
#include "LCD.h"
#include "LCD_Private.h"              /* include LCDConf.h */
#include "LCDSim.h"
#include "GUI_Private.h"

#include "memory.h"

#if LCD_BITSPERPIXEL <= 8
  #define PIXELINDEX U8
#else
  #define PIXELINDEX WORD
#endif

#ifdef WIN32
  #ifndef ASSERT
    #define ASSERT(Val) \
    if (!(Val)) \
      MessageBox(NULL,"...in file "__FILE__,"Assertion failed...",MB_OK);
  #endif
#endif

#ifdef LCD_ASSERT
  #undef LCD_ASSERT
#endif
#define LCD_ASSERT(v) ASSERT(v)

#ifndef LCD_DISPLAY_INDEX
  #define LCD_DISPLAY_INDEX 0
#endif


/*
        *********************************************************
        *                                                       *
        *       Macros for internal use                         *
        *                                                       *
        *********************************************************
*/

#define SETPIXEL(x, y, c) LCDSIM_SetPixelIndex(x, y, c)
#define GETPIXEL(x, y)    LCD_GetPixel(x,y)
#define XORPIXEL(x, y)    XorPixel(x,y)

#if LCD_DISPLAY_INDEX == 1     /* Second display in a multi-display configuration */
  #define LCDSIM_SetPixelIndex  LCDSIM_1_SetPixelIndex
  #define LCDSIM_SetLUTEntry    LCDSIM_1_SetLUTEntry
#endif

/*
        *********************************************************
        *                                                       *
        *       ID translation table                            *
        *                                                       *
        *********************************************************

This table contains 0, 1, 2, ... and serves as translation table for DDBs

*/

#define INTS(Base)  Base+0,Base+1,Base+2,Base+3,Base+4,Base+5,   \
                    Base+6,Base+7,Base+8,Base+9,Base+10,Base+11, \
                    Base+12,Base+13,Base+14,Base+15

static void XorPixel   (int x, int y) {
  unsigned int Index = LCD_L0_GetPixelIndex(x,y);
  LCDSIM_SetPixelIndex(x, y, LCD_NUM_COLORS-1-Index);
}


/*
        *********************************************************
        *                                                       *
        *       LCD_L0_SetColorIndex                            *
        *       LCD_L0_SetBkColorIndex                          *
        *                                                       *
        *********************************************************
*/


#define   COLORINDEX LCD_COLORINDEX
#define BKCOLORINDEX LCD_BKCOLORINDEX

/*
        *********************************************************
        *                                                       *
        *       LCD_L0_DrawPixel                                   *
        *                                                       *
        *********************************************************

Purpose:  This routine is called by emWin. It writes 1 pixel into the
          display.

*/


void LCD_L0_DrawPixel(int x, int y) {
  if (GUI_Context.DrawMode & LCD_DRAWMODE_XOR) {
    XORPIXEL(x, y);
  } else {
    SETPIXEL(x, y, COLORINDEX);
  }
}

/*
        *********************************************************
        *                                                       *
        *          LCD_DrawLine  vertical/horizontal            *
        *          LCD_DrawRect                                 *
        *                                                       *
        *********************************************************
*/

void LCD_L0_DrawHLine  (int x0, int y,  int x1) {
  if (GUI_Context.DrawMode & LCD_DRAWMODE_XOR) {
    for (;x0 <= x1; x0++) {
      XORPIXEL(x0, y);
    }
  } else {
//    LCDSIM_FillLine(x0,y,x1,COLORINDEX);
    for (;x0 <= x1; x0++) {
      SETPIXEL(x0, y, COLORINDEX);
    }
  }
}

void LCD_L0_DrawVLine  (int x, int y0,  int y1) {
  if (GUI_Context.DrawMode & LCD_DRAWMODE_XOR) {
    while (y0 <= y1) {
      XORPIXEL(x, y0);
      y0++;
    }
  } else {
    while (y0 <= y1) {
      SETPIXEL(x, y0, COLORINDEX);
      y0++;
    }
  }
}

void LCD_L0_FillRect(int x0, int y0, int x1, int y1) {
  for (; y0 <= y1; y0++) {
    LCD_L0_DrawHLine(x0,y0, x1);
  }
}



/*
  ***************************************************************
  *                                                             *
  *            Internal bitmap routines                         *
  *                                                             *
  ***************************************************************

*/


/*
    *********************************************
    *                                           *
    *      Draw Bitmap 1 BPP                    *
    *                                           *
    *********************************************
*/

static void  DrawBitLine1BPP(int x, int y, U8 const*p, int Diff, int xsize, const LCD_PIXELINDEX*pTrans) {
  LCD_PIXELINDEX Index0 = *(pTrans+0);
  LCD_PIXELINDEX Index1 = *(pTrans+1);
  x+=Diff;
/*
// Jump to right entry point
*/
  switch (GUI_Context.DrawMode & (LCD_DRAWMODE_TRANS|LCD_DRAWMODE_XOR)) {
  case 0:    /* Write mode */
    do {
      LCDSIM_SetPixelIndex(x++,y, (*p & (0x80>>Diff)) ? Index1 : Index0);
			if (++Diff==8) {
        Diff=0;
				p++;
			}
		} while (--xsize);
    break;
  case LCD_DRAWMODE_TRANS:
    do {
  		if (*p & (0x80>>Diff))
        LCDSIM_SetPixelIndex(x,y, Index1);
      x++;
			if (++Diff==8) {
        Diff=0;
				p++;
			}
		} while (--xsize);
    break;
  case LCD_DRAWMODE_XOR:;
    do {
  		if (*p & (0x80>>Diff)) {
        int Pixel = LCDSIM_GetPixelIndex(x,y);
        LCDSIM_SetPixelIndex(x,y, LCD_NUM_COLORS-1-Pixel);
      }
      x++;
			if (++Diff==8) {
        Diff=0;
				p++;
			}
		} while (--xsize);
    break;
	}
}

/*
    *********************************************
    *                                           *
    *      Draw Bitmap 2 BPP                    *
    *                                           *
    *********************************************
*/

#if (LCD_MAX_LOG_COLORS > 2)
static void  DrawBitLine2BPP(int x, int y, U8 const*p, int Diff, int xsize, const LCD_PIXELINDEX*pTrans) {
  PIXELINDEX pixels;
/*
// Jump to right entry point
*/
  pixels = *p;
  if (GUI_Context.DrawMode & LCD_DRAWMODE_TRANS) switch (Diff&3) {
  case 0:
    goto WriteTBit0;
  case 1:
    goto WriteTBit1;
  case 2:
    goto WriteTBit2;
  default:
    goto WriteTBit3;
  } else switch (Diff&3) {
  case 0:
    goto WriteBit0;
  case 1:
    goto WriteBit1;
  case 2:
    goto WriteBit2;
  default:
    goto WriteBit3;
  }
/*
        Write without transparency
*/
WriteBit0:
  SETPIXEL(x+0, y, *(pTrans+(pixels>>6)));
  if (!--xsize)
    return;
WriteBit1:
  SETPIXEL(x+1, y, *(pTrans+(3&(pixels>>4))));
  if (!--xsize)
    return;
WriteBit2:
  SETPIXEL(x+2, y, *(pTrans+(3&(pixels>>2))));
  if (!--xsize)
    return;
WriteBit3:
  SETPIXEL(x+3, y, *(pTrans+(3&(pixels))));
  if (!--xsize)
    return;
  pixels = *(++p);
  x+=4;
  goto WriteBit0;
/*
        Write with transparency
*/
WriteTBit0:
  if (pixels&(3<<6))
    SETPIXEL(x+0, y, *(pTrans+(pixels>>6)));
  if (!--xsize)
    return;
WriteTBit1:
  if (pixels&(3<<4))
    SETPIXEL(x+1, y, *(pTrans+(3&(pixels>>4))));
  if (!--xsize)
    return;
WriteTBit2:
  if (pixels&(3<<2))
    SETPIXEL(x+2, y, *(pTrans+(3&(pixels>>2))));
  if (!--xsize)
    return;
WriteTBit3:
  if (pixels&(3<<0))
    SETPIXEL(x+3, y, *(pTrans+(3&(pixels))));
  if (!--xsize)
    return;
  pixels = *(++p);
  x+=4;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲mv在线观看| 精品视频一区三区九区| 97se亚洲国产综合自在线| 色94色欧美sute亚洲线路一久| 欧美人伦禁忌dvd放荡欲情| 亚洲国产高清不卡| 日韩va欧美va亚洲va久久| caoporn国产一区二区| 欧美一级欧美一级在线播放| 亚洲欧美成人一区二区三区| 国产乱码精品1区2区3区| 在线不卡免费av| 亚洲一区二区精品久久av| 国产成人8x视频一区二区| 日韩欧美一卡二卡| 亚洲国产综合在线| 91视频www| 国产精品美日韩| 国产成人夜色高潮福利影视| 久久综合狠狠综合久久激情| 蜜臀av性久久久久蜜臀aⅴ | 一区二区三区四区蜜桃| 成人少妇影院yyyy| 久久亚洲捆绑美女| 久久机这里只有精品| 8x8x8国产精品| 天天综合天天做天天综合| 欧美丝袜自拍制服另类| 亚洲午夜免费电影| 欧美午夜精品久久久久久超碰| 伊人性伊人情综合网| 色天天综合久久久久综合片| 亚洲欧美日韩国产一区二区三区| 成人性生交大片免费看中文| 欧美国产乱子伦| av在线这里只有精品| 欧美国产在线观看| 成人黄色av电影| 亚洲精品日产精品乱码不卡| 91婷婷韩国欧美一区二区| 亚洲视频在线观看三级| 色琪琪一区二区三区亚洲区| 亚洲国产成人porn| 欧美剧情片在线观看| 日韩电影在线一区| 精品久久久久久综合日本欧美| 国内成人精品2018免费看| 精品盗摄一区二区三区| 国产成人在线视频播放| 亚洲国产精品激情在线观看| 成人h精品动漫一区二区三区| 国产精品久久久久永久免费观看 | 久久久久久麻豆| 不卡的av电影在线观看| 亚洲精品v日韩精品| 欧美日韩一卡二卡| 久久aⅴ国产欧美74aaa| 久久天天做天天爱综合色| 成人白浆超碰人人人人| 一区二区三区日韩欧美精品| 91精品国产综合久久久久久久久久| 免费视频一区二区| 久久精品一区二区| 在线精品亚洲一区二区不卡| 久久草av在线| 亚洲精品视频免费观看| 制服.丝袜.亚洲.中文.综合| 国产经典欧美精品| 亚洲激情自拍偷拍| 精品国产91久久久久久久妲己 | 亚洲日本护士毛茸茸| 欧美精品一二三四| 东方aⅴ免费观看久久av| 国产精品美女久久久久久久久久久 | 免费xxxx性欧美18vr| 日本一区二区三区免费乱视频| 欧美在线你懂的| 国产麻豆视频一区| 亚洲午夜精品网| 亚洲国产精品ⅴa在线观看| 欧美日韩国产高清一区二区 | 美腿丝袜亚洲三区| 亚洲视频在线一区观看| 欧美精品一区二区三区很污很色的| 99精品视频在线观看| 精品一区二区三区不卡| 亚洲激情网站免费观看| 国产日韩欧美a| 日韩精品中文字幕一区| 欧洲人成人精品| 北条麻妃一区二区三区| 精品亚洲国产成人av制服丝袜| 亚洲成人7777| 亚洲视频一区二区在线观看| 久久精品欧美日韩| 日韩精品一区二区三区视频在线观看 | 亚洲私人黄色宅男| 国产三级精品视频| 日韩精品中文字幕一区二区三区| 欧美日韩一区二区在线视频| 色综合视频一区二区三区高清| 国产福利91精品一区二区三区| 六月婷婷色综合| 日韩在线一区二区| 亚洲综合小说图片| 亚洲欧美日韩中文播放| 亚洲欧洲日韩女同| 中文一区二区在线观看| 国产欧美一区二区精品性| 久久综合五月天婷婷伊人| 日韩区在线观看| 日韩欧美另类在线| 欧美大片在线观看| 日韩精品一区二区三区四区 | 欧美日韩一区二区在线观看| 欧美在线不卡视频| 欧美午夜视频网站| 欧美日本韩国一区| 欧美一区二区视频观看视频| 欧美猛男男办公室激情| 欧美理论电影在线| 欧美电影影音先锋| 欧美一级二级在线观看| 日韩视频在线一区二区| 欧美成人vr18sexvr| 久久久久亚洲蜜桃| 国产精品国产三级国产aⅴ原创| 国产精品久久久久精k8| 一区二区三区在线观看视频| 亚洲图片欧美综合| 免费欧美高清视频| 国产精品影视在线观看| av亚洲精华国产精华精华 | 精品系列免费在线观看| 国产麻豆91精品| 91麻豆国产香蕉久久精品| 欧美午夜寂寞影院| 日韩一级成人av| 久久精品亚洲精品国产欧美| 亚洲男同性恋视频| 日韩精品视频网站| 国产美女精品在线| 99精品欧美一区二区三区小说 | 国产精品综合一区二区| av中文字幕一区| 8x8x8国产精品| 中文av一区特黄| 亚洲1区2区3区视频| 韩国成人福利片在线播放| 99久久99久久免费精品蜜臀| 欧美日韩成人一区| 久久久久久久电影| 一区二区日韩电影| 精品一区二区三区免费| 91蝌蚪porny九色| 日韩欧美黄色影院| 亚洲精品视频观看| 久久99久久精品欧美| 色系网站成人免费| 久久影院午夜论| 亚洲成人一区在线| 国产二区国产一区在线观看| 欧美日韩成人综合天天影院| 国产精品每日更新| 极品瑜伽女神91| 欧美性videosxxxxx| 国产视频一区二区在线观看| 天堂在线亚洲视频| 91美女福利视频| 国产亚洲一本大道中文在线| 五月天中文字幕一区二区| av在线不卡电影| 久久久久久9999| 日本不卡视频一二三区| 欧美自拍偷拍一区| 国产精品蜜臀av| 国产一区二区伦理| 欧美一区二区三区播放老司机| 亚洲精品视频在线看| 成人的网站免费观看| 久久久午夜电影| 精品一区二区日韩| 51午夜精品国产| 亚洲二区视频在线| 97se亚洲国产综合自在线| 亚洲国产精品高清| 国产麻豆9l精品三级站| 欧美电视剧在线观看完整版| 午夜欧美大尺度福利影院在线看| 色综合天天综合色综合av| 国产精品乱码久久久久久| 免费看欧美女人艹b| 在线综合视频播放| 亚洲1区2区3区视频| 欧美日韩精品高清| 视频在线在亚洲| 91精品国产综合久久精品| 日韩1区2区日韩1区2区| 欧美精品一二三| 青椒成人免费视频|