⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd_l0_generic.c

📁 uc-gui.rar
💻 C
字号:
/**********************************************************************                SEGGER MICROCONTROLLER SYSTEME GmbH                 **        Solutions for real time microcontroller applications        ************************************************************************                                                                    **        (c) 2002         SEGGER Microcontroller Systeme GmbH        **                                                                    **        Internet: www.segger.com    Support:  support@segger.com    **                                                                    *************************************************************************** emWin/GSC Grafical user interface for embedded applications ****emWin is protected by international copyright laws. Knowledge of thesource code may not be used to write a similar product. This file mayonly be used in accordance with a license and should not be re-distributed in any way. We appreciate your understanding and fairness.----------------------------------------------------------------------File        : LCD_L0_Generic.hPurpose     : Color conversion routines for LCD-drivers              This file may not be compiled by itself, bud needs              to be included in every LCD driver---------------------------END-OF-HEADER------------------------------*/#include <stddef.h>           /* needed for definition of NULL */#include "LCD_Private.H"      /* private modul definitions & config */#include "GUI_Private.H"#include "GUIDebug.h"/*        *********************************************************        *                                                       *        *                  Color info                           *        *                                                       *        **********************************************************/#if (LCD_FIXEDPALETTE==0)  static   #if !LCD_PHYSCOLORS_IN_RAM    const  #endif  LCD_COLOR       LCD_PhysColors[] = { LCD_PHYSCOLORS };  const LCD_PHYSPALETTE LCD_PhysPal      = { LCD_NUM_COLORS, &LCD_PhysColors[0] };#endif#if LCD_NUM_DISPLAYS > 1  #if (LCD_FIXEDPALETTE_1 == 0)    static  const LCD_COLOR       LCD_PhysColors_[] = { LCD_PHYSCOLORS_1 };            const LCD_PHYSPALETTE LCD_PhysPal_      = { LCD_NUM_COLORS_1, &LCD_PhysColors_1[0] };  #endif#endif/*      *************************************************      *                                               *      *             LCD Device                        *			*       (if memory devices are supported)       *      *                                               *      **************************************************/#if GUI_SUPPORT_MEMDEVconst tLCDDEV_APIList LCD_L0_APIList = {#if LCD_YMAG==1  LCD_L0_Color2Index,  LCD_L0_DrawBitmap,  LCD_L0_DrawHLine,  LCD_L0_DrawVLine,  LCD_L0_FillRect,  LCD_L0_GetPixelIndex,  LCD_L0_GetRect,  LCD_L0_Index2Color,  LCD_L0_SetPixelIndex,  LCD_L0_XorPixel#else  LCD_L0_Color2Index,  LCD_L0_MAG_DrawBitmap,  LCD_L0_MAG_DrawHLine,  LCD_L0_MAG_DrawVLine,  LCD_L0_MAG_FillRect,  LCD_L0_MAG_GetPixelIndex,  LCD_L0_GetRect,          /* Original routine is o.k. here, since we use the logical                                 coordinates for clipping, which are not magnified */  LCD_L0_Index2Color,  LCD_L0_MAG_SetPixelIndex,  LCD_L0_MAG_XorPixel,#endif};#endif/***********************************************************************           Color conversion routines display 0************************************************************************/#if   LCD_FIXEDPALETTE == 0  #define COLOR2INDEX(Color) LCD_Color2Index_0(Color, &LCD_PhysPal)  #define INDEX2COLOR(Index) LCD_Index2Color_0(Index, &LCD_PhysPal)#elif LCD_FIXEDPALETTE == 1  #define COLOR2INDEX(Color) LCD_Color2Index_1(Color)  #define INDEX2COLOR(Index) LCD_Index2Color_1(Index)#elif LCD_FIXEDPALETTE == 2  #define COLOR2INDEX(Color) LCD_Color2Index_2(Color)  #define INDEX2COLOR(Index) LCD_Index2Color_2(Index)#elif LCD_FIXEDPALETTE == 4  #define COLOR2INDEX(Color) LCD_Color2Index_4(Color)  #define INDEX2COLOR(Index) LCD_Index2Color_4(Index)#elif (LCD_FIXEDPALETTE == 111) && (LCD_SWAP_RB==0)  #define COLOR2INDEX(Color) LCD_Color2Index_111(Color)  #define INDEX2COLOR(Index) LCD_Index2Color_111(Index)#elif (LCD_FIXEDPALETTE == 111) && (LCD_SWAP_RB)  #define COLOR2INDEX(Color) LCD_Color2Index_M111(Color)  #define INDEX2COLOR(Index) LCD_Index2Color_M111(Index)#elif (LCD_FIXEDPALETTE == 222) && (LCD_SWAP_RB==0)  #define COLOR2INDEX(Color) LCD_Color2Index_222(Color)  #define INDEX2COLOR(Index) LCD_Index2Color_222(Index)#elif (LCD_FIXEDPALETTE == 222) && (LCD_SWAP_RB==1)  #define COLOR2INDEX(Color) LCD_Color2Index_M222(Color)  #define INDEX2COLOR(Index) LCD_Index2Color_M222(Index)#elif (LCD_FIXEDPALETTE == 233) && (LCD_SWAP_RB==0)  #define COLOR2INDEX(Color) LCD_Color2Index_233(Color)  #define INDEX2COLOR(Index) LCD_Index2Color_233(Index)#elif (LCD_FIXEDPALETTE == 233) && (LCD_SWAP_RB==1)  #define COLOR2INDEX(Color) LCD_Color2Index_M233(Color)  #define INDEX2COLOR(Index) LCD_Index2Color_M233(Index)#elif (LCD_FIXEDPALETTE == 323) && (LCD_SWAP_RB==0)  #define COLOR2INDEX(Color) LCD_Color2Index_323(Color)  #define INDEX2COLOR(Index) LCD_Index2Color_323(Index)#elif (LCD_FIXEDPALETTE == 323) && (LCD_SWAP_RB==1)  #define COLOR2INDEX(Color) LCD_Color2Index_M323(Color)  #define INDEX2COLOR(Index) LCD_Index2Color_M323(Index)#elif (LCD_FIXEDPALETTE == 332) && (LCD_SWAP_RB==0)  #define COLOR2INDEX(Color) LCD_Color2Index_332(Color)  #define INDEX2COLOR(Index) LCD_Index2Color_332(Index)#elif (LCD_FIXEDPALETTE == 332) && (LCD_SWAP_RB==1)  #define COLOR2INDEX(Color) LCD_Color2Index_M332(Color)  #define INDEX2COLOR(Index) LCD_Index2Color_M332(Index)#elif (LCD_FIXEDPALETTE == 444)  && (LCD_SWAP_RB==0)  #define COLOR2INDEX(Color) LCD_Color2Index_444(Color)  #define INDEX2COLOR(Index) LCD_Index2Color_444(Index)#elif (LCD_FIXEDPALETTE == 555)  && (LCD_SWAP_RB==0)  #define COLOR2INDEX(Color) LCD_Color2Index_555(Color)  #define INDEX2COLOR(Index) LCD_Index2Color_555(Index)#elif (LCD_FIXEDPALETTE == 555)  && (LCD_SWAP_RB)  #define COLOR2INDEX(Color) LCD_Color2Index_M555(Color)  #define INDEX2COLOR(Index) LCD_Index2Color_M555(Index)#elif (LCD_FIXEDPALETTE == 565) && (LCD_SWAP_RB==0)  #define COLOR2INDEX(Color) LCD_Color2Index_565(Color)  #define INDEX2COLOR(Index) LCD_Index2Color_565(Index)#elif (LCD_FIXEDPALETTE == 565) && (LCD_SWAP_RB)  #define COLOR2INDEX(Color) LCD_Color2Index_M565(Color)  #define INDEX2COLOR(Index) LCD_Index2Color_M565(Index)#elif LCD_FIXEDPALETTE == 8666  #define COLOR2INDEX(Color) LCD_Color2Index_8666(Color)  #define INDEX2COLOR(Index) LCD_Index2Color_8666(Index)#else  #error Unsupported color mode#endifunsigned int LCD_L0_Color2Index(LCD_COLOR Color) {  unsigned int Index;  Index = COLOR2INDEX(Color);  #if LCD_REVERSE    Index ^= ((1<<LCD_BITSPERPIXEL)-1);  #endif  return Index;}LCD_COLOR LCD_L0_Index2Color(int Index) {  #if LCD_REVERSE    Index ^= ((1<<LCD_BITSPERPIXEL)-1);  #endif  return INDEX2COLOR(Index);}/***********************************************************************           LCD_L0_GetRect************************************************************************/void LCD_L0_GetRect (LCD_RECT *pRect) {  pRect->x0 = 0;  pRect->y0 = 0;  pRect->x1 = LCD_XSIZE-1;  pRect->y1 = LCD_YSIZE-1;}/***********************************************************************           Color conversion routines display 1************************************************************************/#if LCD_NUM_DISPLAYS > 1  #undef COLOR2INDEX  #undef INDEX2COLOR  #if   LCD_FIXEDPALETTE_1 == 0    #define COLOR2INDEX(Color) LCD_Color2Index_0(Color, &LCD_PhysPal)    #define INDEX2COLOR(Index) LCD_Index2Color_0(Index, &LCD_PhysPal)  #elif LCD_FIXEDPALETTE_1 == 1    #define COLOR2INDEX(Color) LCD_Color2Index_1(Color)    #define INDEX2COLOR(Index) LCD_Index2Color_1(Index)  #elif LCD_FIXEDPALETTE_1 == 2    #define COLOR2INDEX(Color) LCD_Color2Index_2(Color)    #define INDEX2COLOR(Index) LCD_Index2Color_2(Index)  #elif LCD_FIXEDPALETTE_1 == 4    #define COLOR2INDEX(Color) LCD_Color2Index_4(Color)    #define INDEX2COLOR(Index) LCD_Index2Color_4(Index)  #elif (LCD_FIXEDPALETTE_1 == 111) && (LCD_SWAP_RB_1==0)    #define COLOR2INDEX(Color) LCD_Color2Index_111(Color)    #define INDEX2COLOR(Index) LCD_Index2Color_111(Index)  #elif (LCD_FIXEDPALETTE_1 == 111) && (LCD_SWAP_RB_1)    #define COLOR2INDEX(Color) LCD_Color2Index_M111(Color)    #define INDEX2COLOR(Index) LCD_Index2Color_M111(Index)  #elif (LCD_FIXEDPALETTE_1 == 222) && (LCD_SWAP_RB_1==0)    #define COLOR2INDEX(Color) LCD_Color2Index_222(Color)    #define INDEX2COLOR(Index) LCD_Index2Color_222(Index)  #elif (LCD_FIXEDPALETTE_1 == 222) && (LCD_SWAP_RB_1==1)    #define COLOR2INDEX(Color) LCD_Color2Index_M222(Color)    #define INDEX2COLOR(Index) LCD_Index2Color_M222(Index)  #elif (LCD_FIXEDPALETTE_1 == 233) && (LCD_SWAP_RB_1==0)    #define COLOR2INDEX(Color) LCD_Color2Index_233(Color)    #define INDEX2COLOR(Index) LCD_Index2Color_233(Index)  #elif (LCD_FIXEDPALETTE_1 == 233) && (LCD_SWAP_RB_1==1)    #define COLOR2INDEX(Color) LCD_Color2Index_M233(Color)    #define INDEX2COLOR(Index) LCD_Index2Color_M233(Index)  #elif (LCD_FIXEDPALETTE_1 == 323) && (LCD_SWAP_RB_1==0)    #define COLOR2INDEX(Color) LCD_Color2Index_323(Color)    #define INDEX2COLOR(Index) LCD_Index2Color_323(Index)  #elif (LCD_FIXEDPALETTE_1 == 323) && (LCD_SWAP_RB_1==1)    #define COLOR2INDEX(Color) LCD_Color2Index_M323(Color)    #define INDEX2COLOR(Index) LCD_Index2Color_M323(Index)  #elif (LCD_FIXEDPALETTE_1 == 332) && (LCD_SWAP_RB_1==0)    #define COLOR2INDEX(Color) LCD_Color2Index_332(Color)    #define INDEX2COLOR(Index) LCD_Index2Color_332(Index)  #elif (LCD_FIXEDPALETTE_1 == 332) && (LCD_SWAP_RB_1==1)    #define COLOR2INDEX(Color) LCD_Color2Index_M332(Color)    #define INDEX2COLOR(Index) LCD_Index2Color_M332(Index)  #elif (LCD_FIXEDPALETTE_1 == 555)  && (LCD_SWAP_RB_1==0)    #define COLOR2INDEX(Color) LCD_Color2Index_555(Color)    #define INDEX2COLOR(Index) LCD_Index2Color_555(Index)  #elif (LCD_FIXEDPALETTE_1 == 555)  && (LCD_SWAP_RB_1)    #define COLOR2INDEX(Color) LCD_Color2Index_M555(Color)    #define INDEX2COLOR(Index) LCD_Index2Color_M555(Index)  #elif (LCD_FIXEDPALETTE_1 == 565) && (LCD_SWAP_RB_1==0)    #define COLOR2INDEX(Color) LCD_Color2Index_565(Color)    #define INDEX2COLOR(Index) LCD_Index2Color_565(Index)  #elif (LCD_FIXEDPALETTE_1 == 565) && (LCD_SWAP_RB_1)    #define COLOR2INDEX(Color) LCD_Color2Index_M565(Color)    #define INDEX2COLOR(Index) LCD_Index2Color_M565(Index)  #elif LCD_FIXEDPALETTE_1 == 8666    #define COLOR2INDEX(Color) LCD_Color2Index_8666(Color)    #define INDEX2COLOR(Index) LCD_Index2Color_8666(Index)  #else    #error Unsupported color mode  #endif  unsigned int LCD_L0_1_Color2Index(LCD_COLOR Color) {    unsigned int Index;    Index = COLOR2INDEX(Color);    #if LCD_REVERSE      Index ^= ((1<<LCD_BITSPERPIXEL)-1);    #endif    return Index;  }  LCD_COLOR LCD_L0_1_Index2Color(int Index) {    #if LCD_REVERSE      Index ^= ((1<<LCD_BITSPERPIXEL)-1);    #endif    return INDEX2COLOR(Index);  }  /*********************************************************************  *  *           LCD_L0_1_GetRect  *  **********************************************************************  */  void LCD_L0_1_GetRect (LCD_RECT *pRect) {    pRect->x0 = 0;    pRect->y0 = 0;    pRect->x1 = LCD_XSIZE_1 - 1;    pRect->y1 = LCD_YSIZE_1 - 1;  }#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -