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

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

?? lcdmemc.c

?? 這是我移植到GBA游戲機上的uCGUI3.24 可以通過模擬器仿真
?? C
?? 第 1 頁 / 共 4 頁
字號:
/*
*********************************************************************************************************
*                                                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        : LCDMem.C
Purpose     : Driver for LCDs using internal memory
----------------------------------------------------------------------
Version-Date---Author-Explanation
----------------------------------------------------------------------
2.01a   010927 JE     a) Reworked to work with LCD_MIRROR_...
                         and LCD_SWAP_XY
2.01    010814 JE     a) Support for 6bpp added,
                         HLine & 1bpp optimized
2.00    010402 RS     a) LCD_GetDevCaps removed from driver
                         (now LCD.c)
0.92    000122 RS     _GetPixel functionality written
0.91    000121 RS     Default for LCD_VRAMTYPE defined
0.90    991205 RS     Driver accelerated
0.00    990118 RS     First release. 
----------------------------------------------------------------------
Known problems or limitations with current version
----------------------------------------------------------------------
None.
---------------------------LIST OF CONFIG SWITCHES--------------------
The following is a list of additional configuration switches for this
driver. These switches might not be listed in the manual, because
the manual mainly covers the general config switches which are
supported by all drivers.
----------------------------------------------------------------------
define ----------------------Explanation------------------------------
LCD_LSB_SHIFT                Support for both big and little endian
                             systems.
                             0 for little endian (default),
                             8 for big endian.
LCD_OPTIMIZE                 Controls the use of optimized routines.
                             If 1, several (speed) optimizations are used.
                             Default: ON (1)
LCD_VRAMTYPE                 Controls storage area of VRAM
---------------------------END-OF-HEADER------------------------------
*/

#define LCDMEMC_C

#include <string.h>             /* for memset */
#include <stddef.h>           /* needed for definition of NULL */
#include "LCD_Private.h"      /* private modul definitions & config */
#include "GUI_Private.h"
#include "GUIDebug.h"
#include "LCD_0.h"            /* Defines for first display */

#ifndef LCD_VRAMTYPE
  #define LCD_VRAMTYPE
#endif



#if (LCD_CONTROLLER   == 0) && ((LCD_FIXEDPALETTE == 111) || (LCD_FIXEDPALETTE == 222)) \
      && (!defined(WIN32) | defined(LCD_SIMCONTROLLER))



   /* Generate code only if selected ! */

#define LCD_BYTESPERLINE (3*(((LCD_VXSIZE_PHYS)+7)/8))

#ifndef WIN32
  #if   (LCD_BITSPERPIXEL == 3)
    LCD_VRAMTYPE U8 LCD_VRam[LCD_BITSPERPIXEL/3][LCD_VYSIZE_PHYS * LCD_BYTESPERLINE];
  #elif (LCD_BITSPERPIXEL == 6)
    LCD_VRAMTYPE U8 LCD_VRam_0[LCD_VYSIZE_PHYS * LCD_BYTESPERLINE];
    LCD_VRAMTYPE U8 LCD_VRam_1[LCD_VYSIZE_PHYS * LCD_BYTESPERLINE];
  #endif
#else
  U8* GetpVRam(int);
  #if   (LCD_BITSPERPIXEL == 3)
    U8* pVRam;
  #elif (LCD_BITSPERPIXEL == 6)
    U8* pVRam_0;
    U8* pVRam_1;
  #endif
#endif



/*
  ********************************************************************
  *                                                                  *
  *            Defaults for configuration                            *
  *                                                                  *
  ********************************************************************

Please be aware that not all configuration errors can be captured !

*/
#ifndef LCD_VERIFY
  #define LCD_VERIFY (0)
#endif

/* Switch for support of multiple pages.
 Only available with certain LCD-controllers */
#ifndef LCD_SUPPORT_PAGING
  #define LCD_SUPPORT_PAGING            (0)
#endif

/* Switch for support of run-time inversion of display. */
#ifndef LCD_SUPPORT_REVERSEMODE
  #define LCD_SUPPORT_REVERSEMODE       (0)
#endif

/* Switch support for the LCD_SetOrg function of the driver */
#ifndef LCD_SUPPORT_SETORG
  #define LCD_SUPPORT_SETORG            (1)
#endif

#ifndef LCD_SUPPORT_PALETTE
  #define LCD_SUPPORT_PALETTE            (1)
#endif

#ifndef LCD_SCHEDULE_CNT
  #define LCD_SCHEDULE_CNT        (0)
#endif

#ifndef LCD_ISRDATA
  #define LCD_ISRDATA
#endif
  
/* Bit position of least sig. byte when accessing words */
#ifndef LCD_LSB_SHIFT
  #define LCD_LSB_SHIFT                 (0)
#endif

#ifndef LCD_OPTIMIZE
  #define LCD_OPTIMIZE                (1)
#endif

/*
  ********************************************************************
  *                                                                  *
  *                Support for Segment/COMLUTs                       *
  *                                                                  *
  ********************************************************************
*/

/* For compatibility with older configs, define defaults */
#ifndef LCD_SUPPORT_COMTRANS
  #define LCD_SUPPORT_COMTRANS 0
#endif
#ifndef LCD_SUPPORT_SEGTRANS
  #define LCD_SUPPORT_SEGTRANS 0
#endif

#if LCD_SUPPORT_COMTRANS
  extern U8 LCD__aLine2Com0[LCD_LASTCOM0-LCD_FIRSTCOM0+1];
#endif

#if LCD_SUPPORT_SEGTRANS
  extern U8 LCD__aRow2Seg0[LCD_LASTSEG0-LCD_FIRSTSEG0+1];
#endif


/*
  ********************************************************************
  *                                                                  *
  *                 Macro calculations                               *
  *                                                                  *
  ********************************************************************
*/

/* Define number of used coms/segments per controller */
#define LCD_NUM_SEGS0 (LCD_LASTSEG0-LCD_FIRSTSEG0+1)
#define LCD_NUM_COMS0 (LCD_LASTCOM0-LCD_FIRSTCOM0+1)
/* Define total number of used coms/segments */
#define LCD_NUM_SEGS LCD_NUM_SEGS0
#define LCD_NUM_COMS LCD_NUM_COMS0

#define BKCOLOR LCD_BKCOLORINDEX
#define   COLOR LCD_COLORINDEX

/*
  ********************************************************************
  *                                                                  *
  *            Configuration switch checking                         *
  *                                                                  *
  ********************************************************************

Please be aware that not all configuration errors can be captured !

*/

#if (LCD_BITSPERPIXEL != 3) && (LCD_BITSPERPIXEL != 6)
  #error this value for LCD_BITSPERPIXEL not yet supported
#endif

/* Check if number of segments / coms equals resolution */
#if (LCD_NUM_SEGS < LCD_XSIZE_PHYS)
/*  #error Please check segment setup of controller 0 and X/YSIZE !!!*/
#endif
#if (LCD_NUM_COMS < LCD_YSIZE_PHYS)
/*  #error Please check com setup of controller 0 and X/YSIZE !!!*/
#endif


/*
  ********************************************************************
  *                                                                  *
  *       EXPORTs for ISR                                            *
  *                                                                  *
  ********************************************************************
*/

#ifndef LCD_TIMERINIT1
  #define LCD_TIMERINIT1  1599
#endif
#ifndef LCD_TIMERINIT0
  #define LCD_TIMERINIT0  1065
#endif

LCD_ISRDATA U16 LCD__BitsPerPixel = LCD_BITSPERPIXEL/3;
LCD_ISRDATA U8 LCD_VRAMTYPE* LCD__apVRam[LCD_BITSPERPIXEL/3];
LCD_ISRDATA U16 LCD__aTimerReload[LCD_BITSPERPIXEL/3] = {
  LCD_TIMERINIT0
  #if LCD_BITSPERPIXEL/3 >1
		,LCD_TIMERINIT1
  #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 const LCD_PIXELINDEX aID[] = {
  INTS(0),
  #if LCD_MAX_LOG_COLORS > 0x10
    INTS(0x10),
  #endif
  #if LCD_MAX_LOG_COLORS > 0x20
    INTS(0x20),
    INTS(0x30),
  #endif
  #if LCD_MAX_LOG_COLORS > 0x40
    INTS(0x40),
    INTS(0x50),
    INTS(0x60),
    INTS(0x70),
  #endif
  #if LCD_MAX_LOG_COLORS > 0x80
    INTS(0x80),
    INTS(0x90),
    INTS(0xa0),
    INTS(0xb0),
    INTS(0xc0),
    INTS(0xd0),
    INTS(0xe0),
    INTS(0xf0)
  #endif
};


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

#if (LCD_SUPPORT_COMTRANS)
  #if (LCD_MIRROR_Y)
    #error LCD_MIRROR_Y not supported with COMTrans !
  #endif
  #if (LCD_MIRROR_X)
    #error LCD_MIRROR_X not supported with COMTrans !
  #endif
#endif

#if (!LCD_SUPPORT_COMTRANS && !LCD_SUPPORT_SEGTRANS)
  #if   (!LCD_MIRROR_X && !LCD_MIRROR_Y && !LCD_SWAP_XY) 
    #define SETPIXEL(x, y, c)      SETPIXELPHYS        ((x), (y), (c))
    #define SETPIXELFAST(x, y, c)  SETPIXELPHYS        ((x), (y), (c))
    #define GETPIXEL(x, y)         GetPixel            ((x), (y))
    #define XORPIXEL(x, y)         XorPixel            ((x), (y))
  #elif (!LCD_MIRROR_X && !LCD_MIRROR_Y &&  LCD_SWAP_XY) 
    #define SETPIXEL(x, y, c)      SETPIXELPHYS        ((y), (x), (c))
    #define SETPIXELFAST(x, y, c)  SETPIXELPHYS        ((y), (x), (c))
    #define GETPIXEL(x, y)         GetPixel            ((y), (x))
    #define XORPIXEL(x, y)         XorPixel            ((y), (x))
  #elif (!LCD_MIRROR_X &&  LCD_MIRROR_Y && !LCD_SWAP_XY) 
    #define SETPIXEL(x, y, c)      SETPIXELPHYS        ((x), (LCD_YSIZE-1-(y)), (c))
    #define SETPIXELFAST(x, y, c)  SETPIXELPHYS        ((x), (LCD_YSIZE-1-(y)), (c))
    #define GETPIXEL(x, y)         GetPixel            ((x), (LCD_YSIZE-1-(y)))
    #define XORPIXEL(x, y)         XorPixel            ((x), (LCD_YSIZE-1-(y)))
  #elif (!LCD_MIRROR_X &&  LCD_MIRROR_Y &&  LCD_SWAP_XY) 
    #define SETPIXEL(x, y, c)      SETPIXELPHYS        ((LCD_YSIZE-1-(y)), (x), (c))
    #define SETPIXELFAST(x, y, c)  SETPIXELPHYS        ((LCD_YSIZE-1-(y)), (x), (c))
    #define GETPIXEL(x, y)         GetPixel            ((LCD_YSIZE-1-(y)), (x))
    #define XORPIXEL(x, y)         XorPixel            ((LCD_YSIZE-1-(y)), (x))
  #elif ( LCD_MIRROR_X && !LCD_MIRROR_Y && !LCD_SWAP_XY) 
    #define SETPIXEL(x, y, c)      SETPIXELPHYS        ((LCD_XSIZE-1-(x)), (y), (c))
    #define SETPIXELFAST(x, y, c)  SETPIXELPHYS        ((LCD_XSIZE-1-(x)), (y), (c))
    #define GETPIXEL(x, y)         GetPixel            ((LCD_XSIZE-1-(x)), (y))
    #define XORPIXEL(x, y)         XorPixel            ((LCD_XSIZE-1-(x)), (y))
  #elif ( LCD_MIRROR_X && !LCD_MIRROR_Y &&  LCD_SWAP_XY) 
    #define SETPIXEL(x, y, c)      SETPIXELPHYS        ((y), (LCD_XSIZE-1-(x)), (c))
    #define SETPIXELFAST(x, y, c)  SETPIXELPHYS        ((y), (LCD_XSIZE-1-(x)), (c))
    #define GETPIXEL(x, y)         GetPixel            ((y), (LCD_XSIZE-1-(x)))
    #define XORPIXEL(x, y)         XorPixel            ((y), (LCD_XSIZE-1-(x)))
  #elif ( LCD_MIRROR_X &&  LCD_MIRROR_Y && !LCD_SWAP_XY) 
    #define SETPIXEL(x, y, c)      SETPIXELPHYS        ((LCD_XSIZE-1-(x)), (LCD_YSIZE-1-(y)), (c))
    #define SETPIXELFAST(x, y, c)  SETPIXELPHYS        ((LCD_XSIZE-1-(x)), (LCD_YSIZE-1-(y)), (c))
    #define GETPIXEL(x, y)         GetPixel            ((LCD_XSIZE-1-(x)), (LCD_YSIZE-1-(y)))
    #define XORPIXEL(x, y)         XorPixel            ((LCD_XSIZE-1-(x)), (LCD_YSIZE-1-(y)))
  #elif ( LCD_MIRROR_X &&  LCD_MIRROR_Y &&  LCD_SWAP_XY) 
    #error This combination of mirroring/swapping not yet supported
  #endif
#elif (LCD_SUPPORT_COMTRANS && !LCD_SUPPORT_SEGTRANS)
  #if (!LCD_SWAP_XY)
    #define SETPIXEL(x, y, c)      SetPixelPhys(x,LCD__aLine2Com0[y], c)
    #define SETPIXELFAST(x, y, c)  SETPIXELPHYS(x,LCD__aLine2Com0[y], c)
    #define GETPIXEL(x, y)     LCD_L0_GetPixelIndex(x,LCD__aLine2Com0[y])
    #define XORPIXEL(x, y)      XorPixel(x,LCD__aLine2Com0[y])
  #else
    #define SETPIXEL(x, y, c)      SetPixelPhys(y,LCD__aLine2Com0[x], c)
    #define SETPIXELFAST(x, y, c)  SETPIXELPHYS(y,LCD__aLine2Com0[x], c)
    #define GETPIXEL(x, y)     LCD_L0_GetPixelIndex(y,LCD__aLine2Com0[x])
    #define XORPIXEL(x, y)      XorPixel(y,LCD__aLine2Com0[x])
  #endif
#else
  #error This combination of switches not yet supported
#endif

#define XY2OFF(x,y) (y*LCD_BYTESPERLINE+3*(x>>3))

#ifndef WIN32
  #if   (LCD_BITSPERPIXEL == 3)
    #define OFF2PTR(Off) &LCD_VRam[0][Off]
  #elif (LCD_BITSPERPIXEL == 6)
    #define OFF2PTR_0(Off) &LCD_VRam_0[Off]
    #define OFF2PTR_1(Off) &LCD_VRam_1[Off]
  #endif
#else
  #if   (LCD_BITSPERPIXEL == 3)
    #define OFF2PTR(Off) (pVRam+Off)
  #elif (LCD_BITSPERPIXEL == 6)
    #define OFF2PTR_0(Off) (pVRam_0+Off)
    #define OFF2PTR_1(Off) (pVRam_1+Off)
  #endif
#endif





/*
        *********************************************************
        *                                                       *
        *       Internal set pixel routines                     *
        *                                                       *
        *********************************************************
*/

#if (LCD_BITSPERPIXEL == 3)

#define SETPIXELPHYS(x,y,c)                       \
{                                                 \
   U8 LCD_VRAMTYPE* p = OFF2PTR(XY2OFF(x,y));     \
  switch (x&7) {                                  \
  case 0:                                         \
    *p = (*p&~(7<<5))|(c<<5);                     \
    break;                                        \
  case 1:                                         \
    *p = (*p&~(7<<2))|(c<<2);                     \
    break;                                        \
  case 2:                                         \
    *p   = (*p&~(3))|(c>>1);                      \
    p++;                                          \
    *p = (*p &~(1<<7))|(c<<7);                    \
    break;                                        \
  case 3:                                         \
    p++;                                          \
    *p = (*p&~(7<<4))|(c<<4);                     \
    break;                                        \
  case 4:                                         \
    p++;                                          \
    *p = (*p&~(7<<1))|(c<<1);                     \
    break;                                        \
  case 5:                                         \
    p++;                                          \
    *p   = (*p&~(1))|(c>>2);                      \
    p++;                                          \
    *p = (*p &~(3<<6))|(c<<6);                    \
    break;                                        \
  case 6:                                         \
    p+=2;                                         \
    *p = (*p&~(7<<3))|(c<<3);                     \
    break;                                        \

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品亚洲一区二区三区免费| 欧美国产一区在线| 天天色 色综合| 欧美精品亚洲一区二区在线播放| 午夜国产精品一区| 日韩欧美成人激情| 国产乱码字幕精品高清av| 中文字幕高清一区| 欧美在线一区二区| 久久成人av少妇免费| 久久精品免视看| 一本大道久久a久久精品综合| 亚洲一区二区三区四区不卡| 日韩你懂的在线播放| 国产成人午夜精品影院观看视频 | 粉嫩av一区二区三区| 亚洲色大成网站www久久九九| 欧美亚洲国产一区二区三区| 毛片av一区二区| 一区二区中文视频| 91精品在线观看入口| 国产.精品.日韩.另类.中文.在线.播放| 中文字幕制服丝袜一区二区三区 | 国产精品三级视频| 欧美三级电影一区| 极品少妇一区二区| 亚洲自拍偷拍网站| 亚洲精品一区二区在线观看| 国产成都精品91一区二区三| 亚洲成人免费看| 久久久久久久久久电影| 欧美三级在线播放| 成人涩涩免费视频| 蜜臀av性久久久久av蜜臀妖精 | 久久99精品久久久久久动态图| 国产精品久久久久三级| 日韩午夜小视频| 在线观看www91| 国产精品一区二区三区99| 午夜免费久久看| 中文字幕日本不卡| 久久久久国产精品麻豆ai换脸| 欧美日韩精品二区第二页| 99视频精品免费视频| 激情综合五月婷婷| 日韩中文字幕1| 亚洲蜜桃精久久久久久久| 久久美女艺术照精彩视频福利播放| 欧美日韩色一区| 一本色道久久加勒比精品| 成人性生交大片免费看中文| 精品一区二区三区久久久| 亚洲成a人片综合在线| 亚洲美女电影在线| 亚洲四区在线观看| 中文字幕国产一区| 国产日韩欧美一区二区三区乱码| 欧美性淫爽ww久久久久无| 色综合久久久网| 95精品视频在线| 成人亚洲精品久久久久软件| 国产精品白丝jk黑袜喷水| 久久电影国产免费久久电影| 美女久久久精品| 久久99久久精品| 久久爱另类一区二区小说| 麻豆精品视频在线| 久久99国产精品尤物| 精品一区二区三区视频| 日韩高清欧美激情| 秋霞av亚洲一区二区三| 美国一区二区三区在线播放| 日本免费新一区视频| 青草国产精品久久久久久| 美日韩一级片在线观看| 久久国产精品99久久久久久老狼| 日韩av电影一区| 久久精品国产网站| 国产在线观看一区二区| 国产精品系列在线观看| 国产黄色91视频| 成人动漫一区二区| 色先锋aa成人| 欧美三日本三级三级在线播放| 欧美视频在线一区| 欧美一区二区啪啪| 精品国产一区二区亚洲人成毛片| 2023国产精华国产精品| 亚洲国产激情av| 亚洲黄色性网站| 丝袜亚洲另类欧美| 激情文学综合网| 波多野洁衣一区| 欧美日韩在线三级| 欧美一区二区三区在线观看| 久久久国产一区二区三区四区小说| 国产农村妇女精品| 亚洲黄一区二区三区| 天堂久久一区二区三区| 国产精品小仙女| 欧美午夜精品一区二区蜜桃| 6080国产精品一区二区| 久久亚洲影视婷婷| 一区二区三区四区中文字幕| 五月激情丁香一区二区三区| 国模冰冰炮一区二区| 色丁香久综合在线久综合在线观看| 欧美日韩一二区| 国产视频在线观看一区二区三区| 一区二区三区免费| 久久er99精品| 色婷婷综合视频在线观看| 欧美精品18+| 中文欧美字幕免费| 亚洲曰韩产成在线| 国产主播一区二区| 色老汉一区二区三区| 精品少妇一区二区三区日产乱码 | 中文字幕一区二区日韩精品绯色| 亚洲大片精品永久免费| 丰满放荡岳乱妇91ww| 欧美一级搡bbbb搡bbbb| 亚洲三级在线看| 国产精品一区专区| 欧美男生操女生| 亚洲免费三区一区二区| 国产一区二区三区精品欧美日韩一区二区三区| kk眼镜猥琐国模调教系列一区二区 | 一区二区三区小说| 国产aⅴ综合色| 欧美一区二区三区人| 亚洲在线免费播放| 成人激情免费视频| 日韩一区二区在线观看视频| 亚洲精品国产无套在线观| 国产很黄免费观看久久| 在线成人午夜影院| 一区二区不卡在线播放| 成人黄色国产精品网站大全在线免费观看| 6080国产精品一区二区| 亚洲综合图片区| 91丨porny丨蝌蚪视频| 国产欧美视频一区二区三区| 美女爽到高潮91| 欧美肥大bbwbbw高潮| 亚洲一区二区欧美| 91麻豆123| 国产精品久久久久四虎| 国产成人自拍在线| 久久蜜桃一区二区| 极品尤物av久久免费看| 欧美一区二区视频观看视频| 亚洲国产欧美在线| 在线观看av一区二区| 日韩一区日韩二区| av爱爱亚洲一区| 国产精品久久久久久久午夜片| 国产一区二区三区在线观看免费视频| 3atv一区二区三区| 麻豆成人91精品二区三区| 日韩一区二区三区三四区视频在线观看 | 欧美在线一区二区三区| 一区二区三区四区精品在线视频| 不卡视频一二三四| 中文字幕中文字幕一区二区| www.欧美亚洲| 亚洲精品第1页| 欧美丝袜自拍制服另类| 天堂影院一区二区| 在线不卡一区二区| 热久久久久久久| 精品成人免费观看| 国产不卡高清在线观看视频| 国产亚洲婷婷免费| 成人午夜看片网址| ...xxx性欧美| 欧美亚洲动漫另类| 日本中文一区二区三区| 精品国产第一区二区三区观看体验| 久久99精品久久久| 国产校园另类小说区| 成人性生交大片免费| 国产欧美日产一区| 成人激情综合网站| 一区二区三区在线看| 91精品国产综合久久香蕉的特点| 男人操女人的视频在线观看欧美| 精品处破学生在线二十三| 成人黄色免费短视频| 一个色综合av| 日韩免费观看高清完整版| 国产另类ts人妖一区二区| 亚洲天堂a在线| 欧美一区二区三区四区五区| 国产精品一区二区久久精品爱涩 | 日韩欧美中文一区| 国产精品888| 亚洲一区二区av电影| 日韩一区二区免费电影| 成人av在线资源网站|