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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 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一区二区三区免费野_久草精品视频
国产女主播视频一区二区| 成人av资源网站| 欧美午夜电影在线播放| 亚洲人吸女人奶水| 久久精品72免费观看| proumb性欧美在线观看| 国产欧美精品在线观看| 成人妖精视频yjsp地址| 中文av一区特黄| 99国产精品99久久久久久| 国产精品久久久久久久久图文区| 国产精品一区二区在线播放| 久久综合九色综合97婷婷女人| 激情深爱一区二区| 久久久久久综合| 成人福利视频网站| 亚洲黄色片在线观看| 色噜噜久久综合| 亚洲精品视频观看| 91精品国产色综合久久不卡蜜臀| 日韩av网站免费在线| 精品sm捆绑视频| 成人免费黄色大片| 樱花影视一区二区| 欧美性大战久久久| 久久国产人妖系列| 国产欧美精品在线观看| 成人av在线播放网址| 亚洲乱码中文字幕综合| 欧美精品粉嫩高潮一区二区| 蜜桃精品视频在线观看| 日韩一级片在线播放| 美女尤物国产一区| 国产精品不卡在线观看| 欧美私人免费视频| 国产一区二区精品久久99| 国产精品网友自拍| 欧美日韩一区三区| 国内精品视频666| 国产精品成人免费在线| 欧美日韩在线直播| 国产91综合网| 丝袜a∨在线一区二区三区不卡| 日韩精品一区二区三区老鸭窝| 国产成人鲁色资源国产91色综| 中文字幕在线不卡| 欧美一二三四区在线| 99亚偷拍自图区亚洲| 青青草精品视频| 亚洲日本va在线观看| 日韩你懂的在线观看| 91在线观看美女| 麻豆91精品91久久久的内涵| 1024成人网色www| 欧美高清视频不卡网| 懂色av一区二区在线播放| 亚洲综合激情网| 久久久蜜桃精品| 色呦呦网站一区| 国产一区二区剧情av在线| 亚洲一区二区三区在线| 国产精品色哟哟| 日韩精品在线一区| 欧美性受xxxx| 99久久精品免费精品国产| 蜜桃精品视频在线观看| 亚洲黄色尤物视频| 国产精品天美传媒| 26uuu亚洲| 日韩一级黄色大片| 欧美日韩成人一区| 成人av网在线| 成人免费va视频| 美腿丝袜一区二区三区| 亚洲最色的网站| 国产精品乱码一区二区三区软件| 欧美精品一区二区在线播放| 欧美日韩成人在线| 色综合久久88色综合天天6| 国产ts人妖一区二区| 韩国精品主播一区二区在线观看 | 久久女同精品一区二区| 欧美军同video69gay| 色中色一区二区| 91影院在线观看| 91亚洲精华国产精华精华液| 激情五月婷婷综合网| 麻豆精品在线播放| 美女高潮久久久| 美女视频免费一区| 久久99九九99精品| 精品亚洲免费视频| 韩日精品视频一区| 国产一区视频网站| 国产精品99久久久久久似苏梦涵 | 中文字幕亚洲精品在线观看| 欧美一区二区三区免费| 欧美三级在线看| 成人福利在线看| 粉嫩绯色av一区二区在线观看| 欧美一区二区成人6969| 欧美videos中文字幕| 99re热视频精品| 欧美一区二区三区视频免费| 欧美激情一区二区三区在线| 亚洲在线观看免费| 三级成人在线视频| 韩国女主播成人在线| 欧美在线观看18| 久久综合久久综合久久综合| 日韩理论片在线| 极品少妇一区二区| 欧美优质美女网站| 国产精品麻豆网站| 毛片不卡一区二区| 91黄色小视频| 国产无一区二区| 午夜伊人狠狠久久| 99视频国产精品| 日韩亚洲欧美成人一区| 一区二区三区中文在线| 国产91富婆露脸刺激对白| 91精品国产一区二区三区蜜臀| 成人欧美一区二区三区| 精品午夜一区二区三区在线观看| 日本韩国视频一区二区| 国产三级久久久| 精品一区二区三区在线观看国产| 欧美在线一区二区三区| 日韩一区在线播放| 国产精品18久久久久久久久久久久| 欧美性xxxxx极品少妇| 亚洲猫色日本管| 99久久精品国产导航| 国产精品污www在线观看| 国产麻豆视频一区| 欧美大片一区二区| 一区二区欧美精品| 高清在线观看日韩| 国产婷婷色一区二区三区| 美女精品一区二区| 日韩美女天天操| 麻豆久久久久久| 日韩一区二区三区av| 视频在线观看91| 欧美人伦禁忌dvd放荡欲情| 亚洲美女电影在线| 色成人在线视频| 亚洲丝袜自拍清纯另类| 91在线云播放| 亚洲免费在线电影| 欧美亚洲国产一区二区三区va | 首页亚洲欧美制服丝腿| 91精品国产综合久久香蕉麻豆| 青青国产91久久久久久| 精品国产91亚洲一区二区三区婷婷| 国产一区啦啦啦在线观看| ...xxx性欧美| 欧美日韩精品欧美日韩精品| 日本亚洲视频在线| 久久婷婷成人综合色| 一本一道综合狠狠老| 日韩高清国产一区在线| 欧美国产欧美综合| 欧美日韩在线不卡| 国内精品第一页| 亚洲天堂成人在线观看| 日韩一区二区三区在线视频| 成人h动漫精品一区二| 性久久久久久久久| 中文字幕不卡在线播放| 欧美日韩国产三级| 国产精品一区一区三区| 亚洲永久精品国产| 国产亚洲一二三区| 欧美日韩亚洲综合| 国产成人精品午夜视频免费| 一区二区高清视频在线观看| 精品久久久久香蕉网| 欧洲国内综合视频| 国产精品18久久久久久vr| 亚洲一区电影777| 欧美激情综合五月色丁香小说| 欧美揉bbbbb揉bbbbb| 国产成人福利片| 男男成人高潮片免费网站| 国产精品久久久一区麻豆最新章节| 3atv在线一区二区三区| 成人毛片视频在线观看| 久久99国产乱子伦精品免费| 一片黄亚洲嫩模| 国产精品无码永久免费888| 欧美成人女星排名| 欧美精品在线一区二区三区| 不卡区在线中文字幕| 国产一区三区三区| 日韩精品高清不卡| 亚洲成av人**亚洲成av**| 亚洲天堂av老司机| 国产精品毛片无遮挡高清|